From f8b03c55543e9cedc246e6f4ea8d890f0f7cb5f2 Mon Sep 17 00:00:00 2001 From: "Antoine Vandevenne (anv)" Date: Wed, 22 Jun 2022 12:07:05 +0000 Subject: [PATCH] [IMP] redirects: split redirects.txt into multiple, per-version, files The `redirects.txt` file used to specify redirect rules for renamed or moved documentation pages is starting to grow too big to be easily maintainable. The main reason is that the number of redirect rules that were thought to be required has been largely underestimated when implementing the 'redirects' extension. At first, we believed that no guidelines or structure were necessary because only a small amount of redirect rules would be specified. This proved wrong and the file is now becoming a mess, making it increasingly difficult to figure out where, why, when, and if a redirect rule is specified in the file. As the file is versioned, another issue emerges: conflicts occur every time a commit is forward-ported to a later version if that commit adds a redirect rule at the end of the file or at a line that was changed in the later version. As redirect rules are frequently added, and since blocks of redirect rules for new versions are added at the end of the file, this tends to happen a lot. This commit attempts to hit two birds with one stone by splitting the `redirects.txt` file into multiple files, one per version. While doing so, the existing redirect rules are ordered alphabetically and moved into contextual blocks. Instructions and guidelines on how to create redirect rules are also listed in the `redirects/MANUAL.md` file. By sorting the redirect rules and adding them in different files, the number of conflicts should decrease by a lot. task-2891912 closes odoo/documentation#2287 X-original-commit: cc88da1bbaa169a51b53e4f1e06fa26b9de1876e Signed-off-by: Antoine Vandevenne (anv) --- conf.py | 4 +- content/contributing/documentation.rst | 21 +- extensions/redirects/__init__.py | 76 ++--- redirects/11.0.txt | 3 + redirects/12.0.txt | 16 + redirects.txt => redirects/13.0.txt | 402 ++++++++++--------------- redirects/14.0.txt | 28 ++ redirects/15.0.txt | 56 ++++ redirects/MANUAL.md | 59 ++++ redirects/saas-15.1.txt | 0 redirects/saas-15.2.txt | 0 11 files changed, 370 insertions(+), 295 deletions(-) create mode 100644 redirects/11.0.txt create mode 100644 redirects/12.0.txt rename redirects.txt => redirects/13.0.txt (79%) create mode 100644 redirects/14.0.txt create mode 100644 redirects/15.0.txt create mode 100644 redirects/MANUAL.md create mode 100644 redirects/saas-15.1.txt create mode 100644 redirects/saas-15.2.txt diff --git a/conf.py b/conf.py index 9205a60b7..7e5106b59 100644 --- a/conf.py +++ b/conf.py @@ -208,8 +208,8 @@ languages_names = { 'zh_CN': 'ZH', } -# The specifications of redirect rules used by the redirects extension. -redirects_file = 'redirects.txt' +# The directory in which files holding redirect rules used by the 'redirects' extension are listed. +redirects_dir = 'redirects/' sphinx_tabs_disable_tab_closing = True sphinx_tabs_disable_css_loading = True diff --git a/content/contributing/documentation.rst b/content/contributing/documentation.rst index ff591f9fb..c75dee5d7 100644 --- a/content/contributing/documentation.rst +++ b/content/contributing/documentation.rst @@ -313,19 +313,22 @@ with :abbr:`RST (reStructuredText)` syntax (see :doc:`documentation/rst_cheat_sh guidelines. .. important:: - If your changes include the addition of a new image, for instance :file:`my_image.png`, proceed - as follows: + - If your changes include the addition of a new image, for instance :file:`my-image.png`, proceed + as follows: - #. Make sure that the image is in ``.png`` format. - #. Execute the following commands in a terminal: + #. Make sure that the image is in ``.png`` format. + #. Execute the following commands in a terminal: - .. code-block:: console + .. code-block:: console - $ cd path-to-the-directory-of-the-image/ - $ pngquant my_image.png + $ cd path/to/the/directory/of/the/image/ + $ pngquant my-image.png - #. Delete :file:`my_image.png`. - #. Rename :file:`my_image-fs8.png` to :file:`my_image.png`. + #. Delete :file:`my-image.png`. + #. Rename :file:`my-image-fs8.png` to :file:`my-image.png`. + - If your changes include renaming or moving an RST file to a new location, follow the `manual + for redirect rules `_ to + create the appropriate redirect rule(s). .. _contributing/preview-changes: diff --git a/extensions/redirects/__init__.py b/extensions/redirects/__init__.py index 054baf733..d186a855e 100644 --- a/extensions/redirects/__init__.py +++ b/extensions/redirects/__init__.py @@ -11,56 +11,60 @@ TEMPLATE = '< logger = logging.getLogger(__name__) -def generate_redirects(app): - path = os.path.join(app.confdir, app.config.redirects_file) - if not os.path.exists(path): - logger.warning("Could not find redirects file at '%s'", path) - return - source_suffix = next(iter(app.config.source_suffix)) +def generate_redirects(app): + redirects_dir = Path(app.confdir, app.config.redirects_dir) + if not redirects_dir.exists(): + logger.warning("Could not find redirects dir at '%s'", redirects_dir) + return if not type(app.builder) == builders.StandaloneHTMLBuilder: logger.info("Redirects are only supported by the 'html' builder. Skipping...") return - with open(path) as redirects: - escaped_source_suffix = source_suffix.replace('.', '\.') - pattern = re.compile( - r'^[ \t]*([\w\-/]+{0})[ \t]+([\w\-/]+{0})[ \t]*(#.*)?$'.format(escaped_source_suffix) - ) - for line in redirects.readlines(): - # Exclude comment or empty lines - if not line.rstrip() or line.startswith('#'): - continue + source_suffix = next(iter(app.config.source_suffix)) + escaped_source_suffix = source_suffix.replace('.', '\.') + pattern = re.compile( + r'^[ \t]*([\w\-/]+{0})[ \t]+([\w\-/]+{0})[ \t]*(?:#.*)?$'.format(escaped_source_suffix) + ) + for redirects_file in redirects_dir.iterdir(): + if redirects_file.is_dir() or redirects_file.suffix != '.txt': + continue - match_result = pattern.match(line) + with redirects_file.open(mode='r') as f: + for line in f.readlines(): + # Exclude comment or empty lines. + if not line.rstrip() or line.startswith('#'): + continue - # Log malformed rules - if not match_result: - logger.error( - "Ignoring malformed redirection: {0}" - "Please use this format: old_page{1} new_page{1} # optional comment".format( - line, source_suffix) - ) - continue + # Match a redirect rule in the line. + match_result = pattern.match(line) - # Parse the rule - from_file, to_file, _ = match_result.groups() - logger.debug("Redirecting '%s' to '%s'", from_file, to_file) + # Exclude malformed rules. + if not match_result: + logger.error( + "Ignoring malformed redirect rule: %s\n" + "See redirects/MANUAL.md to learn how to make redirect rules.", line + ) + continue - # Prepare source and destination paths - to_path_prefix = '../' * from_file.count('/') - from_html_file = from_file.replace(source_suffix, '.html') - to_html_file = to_path_prefix + to_file.replace(source_suffix, '.html') - absolute_from_path = Path(app.builder.outdir) / from_html_file + # Parse the rule. + from_file, to_file = match_result.groups() + logger.debug("Redirecting '%s' to '%s'", from_file, to_file) - # Create the redirection - absolute_from_path.parent.mkdir(parents=True, exist_ok=True) - absolute_from_path.write_text(TEMPLATE % to_html_file) + # Prepare the source and destination paths. + to_path_prefix = '../' * from_file.count('/') + from_html_file = from_file.replace(source_suffix, '.html') + to_html_file = to_path_prefix + to_file.replace(source_suffix, '.html') + absolute_from_path = Path(app.builder.outdir) / from_html_file + + # Create the redirection. + absolute_from_path.parent.mkdir(parents=True, exist_ok=True) + absolute_from_path.write_text(TEMPLATE % to_html_file) def setup(app): - app.add_config_value('redirects_file', 'redirects', 'env') + app.add_config_value('redirects_dir', 'redirects', 'env') app.connect('builder-inited', generate_redirects) return { diff --git a/redirects/11.0.txt b/redirects/11.0.txt new file mode 100644 index 000000000..021b9d932 --- /dev/null +++ b/redirects/11.0.txt @@ -0,0 +1,3 @@ +# contributing/ + +contributing/documentation/guidelines.rst contributing/documentation/rst_guidelines.rst # guidelines --> rst_guidelines \ No newline at end of file diff --git a/redirects/12.0.txt b/redirects/12.0.txt new file mode 100644 index 000000000..32318ea99 --- /dev/null +++ b/redirects/12.0.txt @@ -0,0 +1,16 @@ +# administration/ + +administration/odoo_sh/documentation.rst administration/odoo_sh.rst # moved during doc-apocalypse (#945) + +# contributing/ + +contributing/documentation/introduction_guide.rst contributing/documentation.rst # flatten hierarchy: introduction_guide --> ../ + +# developer/ + +developer/misc/api/upgrade.rst administration/upgrade/process.rst # removed incorrect page +developer/webservices/upgrade.rst administration/upgrade/process.rst # removed incorrect page + +# others + +support/user_doc.rst contributing/documentation/introduction_guide.rst # removed in forward-port of #544 (b109c3af) \ No newline at end of file diff --git a/redirects.txt b/redirects/13.0.txt similarity index 79% rename from redirects.txt rename to redirects/13.0.txt index 783c77c48..8a77a4ec2 100644 --- a/redirects.txt +++ b/redirects/13.0.txt @@ -1,55 +1,68 @@ -# REDIRECT RULES # +# applications/finance -# Each line in this file specifies a redirect rule that redirects users from one URL to another. -# -# Redirect rules must follow this pattern: old_file.rst new_file.rst # optional comment -# Both parts are file paths and must thus include the full path of the file starting from the root -# of the documentation to the file name, including the .rst extension. -# If you consider it necessary, add a comment after the symbol '#' to explain why the redirection is -# needed. -# -# A redirect rule must be added to this file in the following cases: -# -# 1. An RST file is moved from one location to another. -# Example: The documentation of the Sales app is moved from sale_app/ to sales/ . -# Rules: sale_app/send_quotations.rst sales/send_quotations.rst -# sale_app/send_quotations/quote_template.rst sales/send_quotations/quote_template.rst -# sale_app/invoicing.rst sales/invoicing.rst # ...and so on. -# -# 2. An RST file is renamed. -# Example: The file create_quotations.rst in sales/ is renamed to quotations.rst. -# Rule: sales/create_quotations.rst sales/quotations.rst # no longer limited to creating quotes -# -# Write your rules in the section below corresponding to your target version. All rules are active -# no matter the version. The section's only purpose is to help with the triage. -# Consider indicating the reference of the PR (#123) that made a rule necessary, if any. +applications/finance/accounting/overview/main_concepts/in_odoo.rst applications/finance/accounting.rst # finance/accounting/overview/main_concepts/in_odoo -> finance/accounting.rst +applications/finance/accounting/overview/main_concepts/memento.rst applications/finance/accounting/getting_started/memento.rst # overview/main_concepts/* -> getting_started/* +applications/finance/accounting/overview/getting_started/chart_of_accounts.rst applications/finance/accounting/getting_started/initial_configuration/chart_of_accounts.rst # overview/getting_started/* -> getting_started/initial_configuration/* +applications/finance/accounting/overview/getting_started/setup.rst applications/finance/accounting/getting_started/initial_configuration/setup.rst # overview/getting_started/* -> getting_started/initial_configuration/* +applications/finance/accounting/overview/process_overview/customer_invoice.rst applications/finance/accounting/getting_started/process_overview/customer_invoice.rst # overview/* -> getting_started/* +applications/finance/accounting/overview/process_overview/supplier_bill.rst applications/finance/accounting/getting_started/process_overview/supplier_bill.rst # overview/* -> getting_started/* -# Redirections introduced in 11.0 : +applications/finance/expense/expense.rst applications/finance/expenses.rst #expense/expense -> expenses -contributing/documentation/guidelines.rst contributing/documentation/rst_guidelines.rst # guidelines --> rst_guidelines +applications/finance/sign/overview/signature_validity.rst applications/finance/sign.rst # sign/overview/signature_validity -> sign/* -# Redirections introduced in 12.0 : +# applications/general -administration/odoo_sh/documentation.rst administration/odoo_sh.rst # moved during doc-apocalypse (#945) +applications/general/auth/google_spreadsheets.rst applications/sales/crm/performance/google_spreadsheets.rst # general/auth/* -> sales/crm/performance/ -developer/webservices/upgrade.rst administration/upgrade/process.rst # removed incorrect page -developer/misc/api/upgrade.rst administration/upgrade/process.rst # removed incorrect page +applications/general/base_import.rst applications/general/export_import_data.rst # base_import -> export_import_data +applications/general/base_import/import_faq.rst applications/general/export_import_data.rst +applications/general/base_import/adapt_template.rst applications/general/export_import_data.rst -support/user_doc.rst contributing/documentation/introduction_guide.rst # removed in forward-port of #544 (b109c3af) +applications/general/developer_mode/activate.rst applications/general/developer_mode.rst # developer_mode/activate -> developer_mode -contributing/documentation/introduction_guide.rst contributing/documentation.rst # flatten hierarchy: introduction_guide --> ../ +applications/general/in_app_purchase/in_app_purchase.rst applications/general/in_app_purchase.rst # in_app_purchase/in_app_purchase -> in_app_purchase -# Redirections introduced in 13.0 : +applications/general/mobile.rst applications/general.rst # general/mobile -> general -sales/sale_amazon.rst applications/sales/sales/amazon_connector.rst # sale_amazon -> amazon_connector (#524) -sales/sale_amazon/apply.rst applications/sales/sales/amazon_connector/apply.rst # sale_amazon/* -> amazon_connector/* (#524) -sales/sale_amazon/setup.rst applications/sales/sales/amazon_connector/setup.rst # sale_amazon/* -> amazon_connector/* (#524) -sales/sale_amazon/manage.rst applications/sales/sales/amazon_connector/manage.rst # sale_amazon/* -> amazon_connector/* (#524) -sales/amazon_connector/apply.rst applications/sales/sales/amazon_connector/update.rst # (#728) -sales/sale_ebay.rst applications/sales/sales/ebay_connector.rst # sale_ebay -> ebay_connector (#524) -sales/ebay/setup.rst applications/sales/sales/ebay_connector/setup.rst # ebay/* moved to ebay_connector/* (#524) -sales/ebay/manage.rst applications/sales/sales/ebay_connector/manage.rst # ebay/* moved to ebay_connector/* (#524) -sales/send_quotations/optional_items.rst applications/sales/sales/send_quotations/optional_products.rst # (#533) +applications/general/multi_companies/manage_multi_companies.rst applications/general/companies.rst # multi_companies/manage_multi_companies -> companies +applications/general/multi_companies.rst applications/general/users/companies.rst # multi_companies -> companies + +applications/general/odoo_basics/choose_language.rst applications/general/users/language.rst # odoo_basics/choose_language -> users/language +applications/general/odoo_basics/export-data.rst applications/general/export_import_data.rst # odoo_basics/export-data -> export_import_data +applications/general/odoo_basics/users.rst applications/general/users.rst # odoo_basics/users -> users + +applications/general/payment_acquirers/payment_acquirers.rst applications/finance/payment_acquirers.rst # general/payment_acquirers/payment_acquirers -> finance/payment_acquirers +applications/general/payment_acquirers.rst applications/finance/payment_acquirers.rst # general/payment_acquirers/* --> finance/payment_acquirers/* +applications/general/payment_acquirers/authorize.rst applications/finance/payment_acquirers/authorize.rst # general/payment_acquirers/* --> finance/payment_acquirers/* +applications/general/payment_acquirers/paypal.rst applications/finance/payment_acquirers/paypal.rst # general/payment_acquirers/* --> finance/payment_acquirers/* +applications/general/payment_acquirers/stripe.rst applications/finance/payment_acquirers/stripe.rst # general/payment_acquirers/* --> finance/payment_acquirers/* +applications/general/payment_acquirers/wire_transfer.rst applications/finance/payment_acquirers/wire_transfer.rst # general/payment_acquirers/* --> finance/payment_acquirers/* + +applications/general/unsplash/unsplash_access_key.rst applications/websites/website/optimize/unsplash.rst # general/unsplash/unsplash_access_key -> general/unsplash +applications/general/unsplash/unsplash_application_id.rst applications/websites/website/optimize/unsplash.rst # general/unsplash/unsplash_application_id -> general/unsplash +applications/general/unsplash.rst applications/websites/website/optimize/unsplash.rst # general/unsplash -> websites/website/optimize/unsplash + +# applications/marketing + +applications/marketing/survey/overview/create.rst applications/marketing/surveys/overview/create.rst # /survey/* -> /surveys/* +applications/marketing/survey/overview/scoring.rst applications/marketing/surveys/overview/scoring.rst # /survey/* -> /surveys/* +applications/marketing/survey/overview/time_random.rst applications/marketing/surveys/overview/time_random.rst # /survey/* -> /surveys/* + +# applications/productivity + +applications/productivity/discuss/advanced/email_servers.rst applications/general/email_communication/email_servers.rst # productivity/discuss/advanced/* -> general/email_communication/* +applications/productivity/discuss/advanced/email_template.rst applications/general/email_communication/email_template.rst # productivity/discuss/advanced/* -> general/email_communication/* + +# applications/settings + +applications/settings/users_and_features.rst applications/general.rst # settings/users_and_features -> general + +# services + +services/support/supported_versions.rst administration/maintain/supported_versions.rst # services/support/* -> administration/maintain/* + +# others accounting/localizations/nederlands.rst applications/finance/accounting/localizations/netherlands.rst # (#514) accounting/receivables/customer_invoices/refund.rst applications/finance/accounting/receivables/customer_invoices/credit_notes.rst # refund --> credit_notes (#475) @@ -106,52 +119,70 @@ accounting/fiscality/taxes/retention.rst applications/finance/accounting/taxatio accounting/fiscality/taxes/taxcloud.rst applications/finance/accounting/taxation/taxes/taxcloud.rst # fiscality/* -> taxation/* accounting/fiscality/taxes/taxes.rst applications/finance/accounting/taxation/taxes/taxes.rst # fiscality/* -> taxation/* accounting/fiscality/taxes/vat_validation.rst applications/finance/accounting/taxation/taxes/vat_validation.rst # fiscality/* -> taxation/* -applications/finance/accounting/overview/main_concepts/in_odoo.rst applications/finance/accounting.rst # finance/accounting/overview/main_concepts/in_odoo -> finance/accounting.rst -applications/finance/accounting/overview/main_concepts/memento.rst applications/finance/accounting/getting_started/memento.rst # overview/main_concepts/* -> getting_started/* -applications/finance/accounting/overview/getting_started/chart_of_accounts.rst applications/finance/accounting/getting_started/initial_configuration/chart_of_accounts.rst # overview/getting_started/* -> getting_started/initial_configuration/* -applications/finance/accounting/overview/getting_started/setup.rst applications/finance/accounting/getting_started/initial_configuration/setup.rst # overview/getting_started/* -> getting_started/initial_configuration/* -applications/finance/accounting/overview/process_overview/customer_invoice.rst applications/finance/accounting/getting_started/process_overview/customer_invoice.rst # overview/* -> getting_started/* -applications/finance/accounting/overview/process_overview/supplier_bill.rst applications/finance/accounting/getting_started/process_overview/supplier_bill.rst # overview/* -> getting_started/* -applications/finance/expense/expense.rst applications/finance/expenses.rst #expense/expense -> expenses +administration/db_management/db_online.rst administration/maintain/online.rst # /db_management/db_online -> /maintain/online +administration/db_management/db_premise.rst administration/maintain/db_premise.rst # /db_management/* -> /maintain/* +administration/db_management/hosting_changes.rst administration/maintain/hosting_changes.rst # /db_management/* -> /maintain/* +administration/db_upgrade.rst administration/upgrade/process.rst # db_upgrade -> /upgrade/process +administration/enterprise.rst administration/maintain/enterprise.rst # /* -> /maintain/* +administration/update.rst administration/maintain/update.rst # administration/* -> administration/maintain/* +administration/install.rst administration/install/install.rst # /* -> /install/* +administration/deployment/cdn.rst administration/install/cdn.rst # /deployment/* -> /install/* +administration/deployment/deploy.rst administration/install/deploy.rst # /deployment/* -> /install/* +administration/deployment/email_gateway.rst administration/install/email_gateway.rst # /deployment/* -> /install/* +administration/deployment/install.rst administration/install/install.rst # /deployment/* -> /install/* +administration/maintain/db_premise.rst administration/maintain/on_premise.rst # db_premise -> on_premise +administration/maintain/db_upgrade.rst administration/upgrade/process.rst # maintain/db_upgrade -> upgrade/process +administration/odoo_sh/advanced/upgrade_your_database.rst administration/upgrade/odoo_sh.rst # odoo_sh/advanced/upgrade_your_database -> upgrade/odoo_sh +applications/websites/website/publish/domain_name.rst administration/maintain/domain_names.rst # applications/[...]/domain_name -> administration/maintain/domain_names +administration/upgrade/process.rst administration/upgrade.rst # upgrade/process -> upgrade +administration/upgrade/service_level.rst administration/upgrade.rst # upgrade/service_level -> upgrade -social_marketing/social_marketing.rst applications/marketing/social_marketing/overview.rst # social_marketing/* -> overview/* (#578) +crm/optimize/onsip.rst applications/general/voip/onsip.rst # crm/optimize/* --> general/voip/* +crm/optimize/setup.rst applications/general/voip/asterisk.rst # crm/optimize/setup --> general/voip/asterisk -project/planning/assignments.rst applications/services/project/planning/forecast.rst # assignments/* -> forecast/* (#583) -project/overview/main_concepts/introduction.rst applications/services/project/overview/setup.rst # main_concepts/* -> overview/* (#581) -project/configuration/collaboration.rst applications/services/project/tasks/collaborate.rst # configuration/collaboration -> tasks/collaborate (#581) -project/application/intro.rst applications/services/project/record_and_invoice/time_record.rst # application/intro -> record_and_invoice/time_record (#581) -project/configuration/setup.rst applications/services/project/overview/setup.rst # configuration/setup -> overview/setup (#581) -project/configuration/visualization.rst applications/services/project/tasks/get_started.rst # configuration/visualization -> tasks/get_started (#581) -project/configuration/time_record.rst applications/services/project/record_and_invoice/time_record.rst # configuration/time_record -> record_and_invoice/time_record (#581) +developer/webservices/iap.rst developer/misc/api/iap.rst +developer/webservices/odoo.rst developer/misc/api/odoo.rst +developer/webservices/localizations.rst developer/misc/i18n/localization.rst +developer/reference/translations.rst developer/misc/i18n/translations.rst +developer/reference/cmdline.rst developer/misc/other/cmdline.rst +developer/reference/guidelines.rst developer/misc/other/guidelines.rst +developer/reference/iot.rst developer/misc/other/iot.rst +developer/reference/actions.rst developer/reference/addons/actions.rst +developer/reference/data.rst developer/reference/addons/data.rst +developer/reference/http.rst developer/reference/addons/http.rst +developer/reference/mixins.rst developer/reference/addons/mixins.rst +developer/reference/module.rst developer/reference/addons/module.rst +developer/reference/orm.rst developer/reference/addons/orm.rst +developer/reference/reports.rst developer/reference/addons/reports.rst +developer/reference/security.rst developer/reference/addons/security.rst +developer/reference/testing.rst developer/reference/addons/testing.rst +developer/reference/views.rst developer/reference/addons/views.rst +developer/reference/javascript_cheatsheet.rst developer/reference/javascript/javascript_cheatsheet.rst +developer/reference/javascript_reference.rst developer/reference/javascript/javascript_reference.rst +developer/reference/mobile.rst developer/reference/javascript/mobile.rst +developer/reference/qweb.rst developer/reference/javascript/qweb.rst -livechat/livechat.rst applications/websites/livechat/overview.rst # livechat/* -> overveiw/* (#601) +discuss/monitoring.rst applications/productivity/discuss/overview/get_started.rst # (#655) +discuss/mentions.rst applications/productivity/discuss/overview/get_started.rst # (#655) +discuss/tracking.rst applications/services/project/tasks/collaborate.rst # (#655) +discuss/email_servers.rst applications/general/email_communication/email_servers.rst # (#655) +discuss/plan_activities.rst applications/productivity/discuss/overview/plan_activities.rst # (#655) +discuss/team_communication.rst applications/productivity/discuss/overview/team_communication.rst # (#655) +discuss/overview.rst applications/productivity/discuss/overview/get_started.rst # (#655) -point_of_sale/advanced/barcode.rst applications/sales/point_of_sale/shop/barcode.rst # advanced/* --> shop/* (#612) -point_of_sale/advanced/multicashiers.rst applications/sales/point_of_sale/shop/multicashiers.rst # advanced/* --> shop/* (#612) -point_of_sale/advanced/reprint.rst applications/sales/point_of_sale/shop/reprint.rst # advanced/* --> shop/* (#612) -point_of_sale/advanced/cash_rounding.rst applications/sales/point_of_sale/shop/cash_rounding.rst # advanced/* --> shop/* (#612) -point_of_sale/overview/start.rst applications/sales/point_of_sale/overview/getting_started.rst # start --> getting_started (#600) -point_of_sale/shop/refund.rst applications/sales/point_of_sale/overview/getting_started.rst # shop/refund --> overview/getting_started (#600) -point_of_sale/analyze/statistics.rst applications/sales/point_of_sale/overview/getting_started.rst # analyze/statistics --> overview/getting_started (#600) -point_of_sale/advanced_pricing_features/manual_discount.rst applications/sales/point_of_sale/advanced_pricing_features/discounts.rst # manual_discount --> discounts (#611) -point_of_sale/advanced_pricing_features/seasonal_discount.rst applications/sales/point_of_sale/advanced_pricing_features/discounts.rst # seasonal_discount --> discounts (#611) -point_of_sale/restaurant/setup.rst applications/sales/point_of_sale/restaurant/restaurant.rst # setup --> restaurant (#610) -point_of_sale/restaurant/table.rst applications/sales/point_of_sale/restaurant/restaurant.rst # table --> restaurant (#610) -point_of_sale/restaurant/multi_orders.rst applications/sales/point_of_sale/restaurant/restaurant.rst # multi_orders --> restaurant (#610) -point_of_sale/restaurant/transfer.rst applications/sales/point_of_sale/restaurant/restaurant.rst # transfer --> restaurant (#610) +ecommerce/shopper_experience/payment.rst applications/finance/payment_acquirers.rst # ecommerce/shopper_experience/payment --> finance/payment_acquirers/payment_acquirers +ecommerce/shopper_experience/authorize.rst applications/finance/payment_acquirers/authorize.rst # ecommerce/shopper_experience/* --> finance/payment_acquirers/* +ecommerce/shopper_experience/paypal.rst applications/finance/payment_acquirers/paypal.rst # ecommerce/shopper_experience/* --> finance/payment_acquirers/* +ecommerce/shopper_experience/wire_transfer.rst applications/finance/payment_acquirers/wire_transfer.rst # ecommerce/shopper_experience/* --> finance/payment_acquirers/* -quality/control_points.rst applications/inventory_and_mrp/quality/control/control_points.rst # /* --> control/* (#469) -quality/alert_mo.rst applications/inventory_and_mrp/quality/alert/alert_mo.rst # /* --> alert/* (#469) -quality/alert_transfer.rst applications/inventory_and_mrp/quality/alert/alert_transfer.rst # /* --> alert/* (#469) -quality/quality_mo.rst applications/inventory_and_mrp/quality/checks/quality_mo.rst # /* --> checks/* (#469) -quality/quality_transfers.rst applications/inventory_and_mrp/quality/checks/quality_transfers.rst # /* --> checks/* (#469) +general/odoo_basics/add_user.rst applications/general/odoo_basics/users.rst # add_user -> users -iot/connect.rst applications/productivity/iot/config/connect.rst # /* --> config/* (#446) -iot/pos.rst applications/productivity/iot/config/pos.rst # /* --> config/* (#446) -iot/iot_notfound.rst applications/productivity/iot/config/iot_notfound.rst # /* --> config/* (#446) -iot/flash_sdcard.rst applications/productivity/iot/config/flash_sdcard.rst # /* --> config/* (#446) -iot/devices/payment_terminal.rst applications/sales/point_of_sale/payment/ingenico.rst # iot/devices/payment_terminal --> applications/sales/point_of_sale/payment/ingenico (#446) +helpdesk/getting_started.rst applications/services/helpdesk/overview/getting_started.rst # (#565) +helpdesk/after_sales.rst applications/services/helpdesk/advanced/after_sales.rst # (#565) +helpdesk/close_tickets.rst applications/services/helpdesk/advanced/close_tickets.rst # (#565) +helpdesk/invoice_time.rst applications/services/helpdesk/timesheet_and_invoice/invoice_time.rst # (#565) +helpdesk/reinvoice_from_project.rst applications/services/helpdesk/timesheet_and_invoice/reinvoice_from_project.rst # (#565) inventory/barcode/operations/delivery.rst applications/inventory_and_mrp/inventory/barcode/operations/internal.rst # delivery --> internal (#436) inventory/barcode/operations/receipts.rst applications/inventory_and_mrp/inventory/barcode/operations/internal.rst # delivery --> internal (#436) @@ -176,178 +207,53 @@ inventory/routes/concept/procurement_rule.rst applications/inventory_and_mrp/inv inventory/routes/concept/push_rule.rst applications/inventory_and_mrp/inventory/routes/concepts/use-routes.rst # push_rule --> use-routes (#693) inventory/routes/concept/use_routes.rst applications/inventory_and_mrp/inventory/routes/concepts/use-routes.rst # use_routes --> use-routes (#693) -helpdesk/getting_started.rst applications/services/helpdesk/overview/getting_started.rst # (#565) -helpdesk/after_sales.rst applications/services/helpdesk/advanced/after_sales.rst # (#565) -helpdesk/close_tickets.rst applications/services/helpdesk/advanced/close_tickets.rst # (#565) -helpdesk/invoice_time.rst applications/services/helpdesk/timesheet_and_invoice/invoice_time.rst # (#565) -helpdesk/reinvoice_from_project.rst applications/services/helpdesk/timesheet_and_invoice/reinvoice_from_project.rst # (#565) +iot/connect.rst applications/productivity/iot/config/connect.rst # /* --> config/* (#446) +iot/pos.rst applications/productivity/iot/config/pos.rst # /* --> config/* (#446) +iot/iot_notfound.rst applications/productivity/iot/config/iot_notfound.rst # /* --> config/* (#446) +iot/flash_sdcard.rst applications/productivity/iot/config/flash_sdcard.rst # /* --> config/* (#446) +iot/devices/payment_terminal.rst applications/sales/point_of_sale/payment/ingenico.rst # iot/devices/payment_terminal --> applications/sales/point_of_sale/payment/ingenico (#446) + +livechat/livechat.rst applications/websites/livechat/overview.rst # livechat/* -> overveiw/* (#601) planning/duplicate_a_planning.rst applications/services/planning/overview/duplicate_a_planning.rst # (#567) planning/send_planned_shifts.rst applications/services/planning/overview/send_planned_shifts.rst # (#567) -# PAYMENT ACQUIRERS -ecommerce/shopper_experience/payment.rst applications/finance/payment_acquirers.rst # ecommerce/shopper_experience/payment --> finance/payment_acquirers/payment_acquirers -ecommerce/shopper_experience/authorize.rst applications/finance/payment_acquirers/authorize.rst # ecommerce/shopper_experience/* --> finance/payment_acquirers/* -ecommerce/shopper_experience/paypal.rst applications/finance/payment_acquirers/paypal.rst # ecommerce/shopper_experience/* --> finance/payment_acquirers/* -ecommerce/shopper_experience/wire_transfer.rst applications/finance/payment_acquirers/wire_transfer.rst # ecommerce/shopper_experience/* --> finance/payment_acquirers/* -applications/general/payment_acquirers/payment_acquirers.rst applications/finance/payment_acquirers.rst # general/payment_acquirers/payment_acquirers -> finance/payment_acquirers -applications/general/payment_acquirers.rst applications/finance/payment_acquirers.rst # general/payment_acquirers/* --> finance/payment_acquirers/* -applications/general/payment_acquirers/authorize.rst applications/finance/payment_acquirers/authorize.rst # general/payment_acquirers/* --> finance/payment_acquirers/* -applications/general/payment_acquirers/paypal.rst applications/finance/payment_acquirers/paypal.rst # general/payment_acquirers/* --> finance/payment_acquirers/* -applications/general/payment_acquirers/stripe.rst applications/finance/payment_acquirers/stripe.rst # general/payment_acquirers/* --> finance/payment_acquirers/* -applications/general/payment_acquirers/wire_transfer.rst applications/finance/payment_acquirers/wire_transfer.rst # general/payment_acquirers/* --> finance/payment_acquirers/* +point_of_sale/advanced/barcode.rst applications/sales/point_of_sale/shop/barcode.rst # advanced/* --> shop/* (#612) +point_of_sale/advanced/multicashiers.rst applications/sales/point_of_sale/shop/multicashiers.rst # advanced/* --> shop/* (#612) +point_of_sale/advanced/reprint.rst applications/sales/point_of_sale/shop/reprint.rst # advanced/* --> shop/* (#612) +point_of_sale/advanced/cash_rounding.rst applications/sales/point_of_sale/shop/cash_rounding.rst # advanced/* --> shop/* (#612) +point_of_sale/overview/start.rst applications/sales/point_of_sale/overview/getting_started.rst # start --> getting_started (#600) +point_of_sale/shop/refund.rst applications/sales/point_of_sale/overview/getting_started.rst # shop/refund --> overview/getting_started (#600) +point_of_sale/analyze/statistics.rst applications/sales/point_of_sale/overview/getting_started.rst # analyze/statistics --> overview/getting_started (#600) +point_of_sale/advanced_pricing_features/manual_discount.rst applications/sales/point_of_sale/advanced_pricing_features/discounts.rst # manual_discount --> discounts (#611) +point_of_sale/advanced_pricing_features/seasonal_discount.rst applications/sales/point_of_sale/advanced_pricing_features/discounts.rst # seasonal_discount --> discounts (#611) +point_of_sale/restaurant/setup.rst applications/sales/point_of_sale/restaurant/restaurant.rst # setup --> restaurant (#610) +point_of_sale/restaurant/table.rst applications/sales/point_of_sale/restaurant/restaurant.rst # table --> restaurant (#610) +point_of_sale/restaurant/multi_orders.rst applications/sales/point_of_sale/restaurant/restaurant.rst # multi_orders --> restaurant (#610) +point_of_sale/restaurant/transfer.rst applications/sales/point_of_sale/restaurant/restaurant.rst # transfer --> restaurant (#610) -discuss/monitoring.rst applications/productivity/discuss/overview/get_started.rst # (#655) -discuss/mentions.rst applications/productivity/discuss/overview/get_started.rst # (#655) -discuss/tracking.rst applications/services/project/tasks/collaborate.rst # (#655) -discuss/email_servers.rst applications/general/email_communication/email_servers.rst # (#655) -discuss/plan_activities.rst applications/productivity/discuss/overview/plan_activities.rst # (#655) -discuss/team_communication.rst applications/productivity/discuss/overview/team_communication.rst # (#655) -discuss/overview.rst applications/productivity/discuss/overview/get_started.rst # (#655) +project/planning/assignments.rst applications/services/project/planning/forecast.rst # assignments/* -> forecast/* (#583) +project/overview/main_concepts/introduction.rst applications/services/project/overview/setup.rst # main_concepts/* -> overview/* (#581) +project/configuration/collaboration.rst applications/services/project/tasks/collaborate.rst # configuration/collaboration -> tasks/collaborate (#581) +project/application/intro.rst applications/services/project/record_and_invoice/time_record.rst # application/intro -> record_and_invoice/time_record (#581) +project/configuration/setup.rst applications/services/project/overview/setup.rst # configuration/setup -> overview/setup (#581) +project/configuration/visualization.rst applications/services/project/tasks/get_started.rst # configuration/visualization -> tasks/get_started (#581) +project/configuration/time_record.rst applications/services/project/record_and_invoice/time_record.rst # configuration/time_record -> record_and_invoice/time_record (#581) -crm/optimize/onsip.rst applications/general/voip/onsip.rst # crm/optimize/* --> general/voip/* -crm/optimize/setup.rst applications/general/voip/asterisk.rst # crm/optimize/setup --> general/voip/asterisk +quality/control_points.rst applications/inventory_and_mrp/quality/control/control_points.rst # /* --> control/* (#469) +quality/alert_mo.rst applications/inventory_and_mrp/quality/alert/alert_mo.rst # /* --> alert/* (#469) +quality/alert_transfer.rst applications/inventory_and_mrp/quality/alert/alert_transfer.rst # /* --> alert/* (#469) +quality/quality_mo.rst applications/inventory_and_mrp/quality/checks/quality_mo.rst # /* --> checks/* (#469) +quality/quality_transfers.rst applications/inventory_and_mrp/quality/checks/quality_transfers.rst # /* --> checks/* (#469) -general/odoo_basics/add_user.rst applications/general/odoo_basics/users.rst # add_user -> users -applications/general/in_app_purchase/in_app_purchase.rst applications/general/in_app_purchase.rst # in_app_purchase/in_app_purchase -> in_app_purchase -applications/general/multi_companies/manage_multi_companies.rst applications/general/companies.rst # multi_companies/manage_multi_companies -> companies -applications/general/multi_companies.rst applications/general/users/companies.rst # multi_companies -> companies -applications/general/unsplash/unsplash_access_key.rst applications/websites/website/optimize/unsplash.rst # general/unsplash/unsplash_access_key -> general/unsplash -applications/general/unsplash/unsplash_application_id.rst applications/websites/website/optimize/unsplash.rst # general/unsplash/unsplash_application_id -> general/unsplash -applications/general/unsplash.rst applications/websites/website/optimize/unsplash.rst # general/unsplash -> websites/website/optimize/unsplash -applications/general/base_import.rst applications/general/export_import_data.rst # base_import -> export_import_data -applications/general/base_import/import_faq.rst applications/general/export_import_data.rst -applications/general/base_import/adapt_template.rst applications/general/export_import_data.rst -applications/general/odoo_basics/export-data.rst applications/general/export_import_data.rst # odoo_basics/export-data -> export_import_data -applications/settings/users_and_features.rst applications/general.rst # settings/users_and_features -> general -applications/general/mobile.rst applications/general.rst # general/mobile -> general -applications/general/developer_mode/activate.rst applications/general/developer_mode.rst # developer_mode/activate -> developer_mode -applications/general/odoo_basics/users.rst applications/general/users.rst # odoo_basics/users -> users -applications/general/odoo_basics/choose_language.rst applications/general/users/language.rst # odoo_basics/choose_language -> users/language -applications/general/auth/google_spreadsheets.rst applications/sales/crm/performance/google_spreadsheets.rst # general/auth/* -> sales/crm/performance/ -applications/productivity/discuss/advanced/email_servers.rst applications/general/email_communication/email_servers.rst # productivity/discuss/advanced/* -> general/email_communication/* -applications/productivity/discuss/advanced/email_template.rst applications/general/email_communication/email_template.rst # productivity/discuss/advanced/* -> general/email_communication/* +sales/sale_amazon.rst applications/sales/sales/amazon_connector.rst # sale_amazon -> amazon_connector (#524) +sales/sale_amazon/apply.rst applications/sales/sales/amazon_connector/apply.rst # sale_amazon/* -> amazon_connector/* (#524) +sales/sale_amazon/setup.rst applications/sales/sales/amazon_connector/setup.rst # sale_amazon/* -> amazon_connector/* (#524) +sales/sale_amazon/manage.rst applications/sales/sales/amazon_connector/manage.rst # sale_amazon/* -> amazon_connector/* (#524) +sales/amazon_connector/apply.rst applications/sales/sales/amazon_connector/update.rst # (#728) +sales/sale_ebay.rst applications/sales/sales/ebay_connector.rst # sale_ebay -> ebay_connector (#524) +sales/ebay/setup.rst applications/sales/sales/ebay_connector/setup.rst # ebay/* moved to ebay_connector/* (#524) +sales/ebay/manage.rst applications/sales/sales/ebay_connector/manage.rst # ebay/* moved to ebay_connector/* (#524) +sales/send_quotations/optional_items.rst applications/sales/sales/send_quotations/optional_products.rst # (#533) -applications/finance/sign/overview/signature_validity.rst applications/finance/sign.rst # sign/overview/signature_validity -> sign/* - -applications/marketing/survey/overview/create.rst applications/marketing/surveys/overview/create.rst # /survey/* -> /surveys/* -applications/marketing/survey/overview/scoring.rst applications/marketing/surveys/overview/scoring.rst # /survey/* -> /surveys/* -applications/marketing/survey/overview/time_random.rst applications/marketing/surveys/overview/time_random.rst # /survey/* -> /surveys/* - -administration/db_management/db_online.rst administration/maintain/online.rst # /db_management/db_online -> /maintain/online -administration/db_management/db_premise.rst administration/maintain/db_premise.rst # /db_management/* -> /maintain/* -administration/db_management/hosting_changes.rst administration/maintain/hosting_changes.rst # /db_management/* -> /maintain/* -administration/db_upgrade.rst administration/upgrade/process.rst # db_upgrade -> /upgrade/process -administration/enterprise.rst administration/maintain/enterprise.rst # /* -> /maintain/* -administration/update.rst administration/maintain/update.rst # administration/* -> administration/maintain/* -administration/install.rst administration/install/install.rst # /* -> /install/* -administration/deployment/cdn.rst administration/install/cdn.rst # /deployment/* -> /install/* -administration/deployment/deploy.rst administration/install/deploy.rst # /deployment/* -> /install/* -administration/deployment/email_gateway.rst administration/install/email_gateway.rst # /deployment/* -> /install/* -administration/deployment/install.rst administration/install/install.rst # /deployment/* -> /install/* -administration/maintain/db_premise.rst administration/maintain/on_premise.rst # db_premise -> on_premise -administration/maintain/db_upgrade.rst administration/upgrade/process.rst # maintain/db_upgrade -> upgrade/process -administration/odoo_sh/advanced/upgrade_your_database.rst administration/upgrade/odoo_sh.rst # odoo_sh/advanced/upgrade_your_database -> upgrade/odoo_sh -applications/websites/website/publish/domain_name.rst administration/maintain/domain_names.rst # applications/[...]/domain_name -> administration/maintain/domain_names -administration/upgrade/process.rst administration/upgrade.rst # upgrade/process -> upgrade -administration/upgrade/service_level.rst administration/upgrade.rst # upgrade/service_level -> upgrade - -developer/webservices/iap.rst developer/misc/api/iap.rst -developer/webservices/odoo.rst developer/misc/api/external_api.rst -developer/webservices/localizations.rst developer/misc/i18n/localization.rst -developer/reference/translations.rst developer/misc/i18n/translations.rst -developer/reference/cmdline.rst developer/misc/other/cmdline.rst -developer/reference/guidelines.rst developer/misc/other/guidelines.rst -developer/reference/iot.rst developer/misc/other/iot.rst -developer/reference/actions.rst developer/reference/addons/actions.rst -developer/reference/data.rst developer/reference/addons/data.rst -developer/reference/http.rst developer/reference/addons/http.rst -developer/reference/mixins.rst developer/reference/addons/mixins.rst -developer/reference/module.rst developer/reference/addons/module.rst -developer/reference/orm.rst developer/reference/addons/orm.rst -developer/reference/reports.rst developer/reference/addons/reports.rst -developer/reference/security.rst developer/reference/addons/security.rst -developer/reference/testing.rst developer/reference/addons/testing.rst -developer/reference/views.rst developer/reference/addons/views.rst -developer/reference/javascript_cheatsheet.rst developer/reference/javascript/javascript_cheatsheet.rst -developer/reference/javascript_reference.rst developer/reference/javascript/javascript_reference.rst -developer/reference/mobile.rst developer/reference/javascript/mobile.rst -developer/reference/qweb.rst developer/reference/javascript/qweb.rst - -services/support/supported_versions.rst administration/maintain/supported_versions.rst # services/support/* -> administration/maintain/* - -# Redirections introduced in 14.0 : - -developer/misc/api/odoo.rst developer/misc/api/external_api.rst - -applications/sales/crm/acquire_leads/generate_from_email.rst applications/sales/crm/acquire_leads/generate_leads.rst # (#986) -applications/sales/crm/acquire_leads/generate_from_website.rst applications/sales/crm/acquire_leads/generate_leads.rst # (#986) - -legal/others/cla.rst legal/cla.rst -legal/licenses/licenses.rst legal/licenses.rst - -crm/optimize/mail_client_extension.rst applications/sales/crm/optimize/outlook_extension.rst # mail_client_extension -> outlook_extension | mail_client_extension is the first link provided as a tip in Odoo 14 but should be updated and point directly to outlook_extension -crm/optimize/google_calendar_credentials.rst applications/general/calendars/google/google_calendar_credentials.rst # (#765) - -purchase/purchases/tender/blanket_orders.rst applications/inventory_and_mrp/purchase/manage_deals/agreements.rst # (#823) -purchase/purchases/tender/call_for_tender.rst applications/inventory_and_mrp/purchase/manage_deals/agreements.rst # (#823) -purchase/purchases/rfq/3_way_matching.rst applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst # (#829) -purchase/purchases/rfq/bills.rst applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst # (#829) -purchase/purchases/master/uom.rst applications/inventory_and_mrp/purchase/products/uom.rst # (#814) -purchase/replenishment/flows/compute_date.rst applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst # (#814) -purchase/replenishment/flows/purchase_triggering.rst applications/inventory_and_mrp/purchase/products/reordering.rst # (#814) -purchase/replenishment/flows/setup_stock_rule.rst applications/inventory_and_mrp/purchase/products/reordering.rst # (#814) -purchase/replenishment/multicompany/setup.rst applications/general/multi_companies/manage_multi_companies.rst # (#814) - -# Redirections introduced in 15.0 : - -applications/general/product_images.rst applications/sales/sales/products_prices/products/product_images.rst # fix a wrong target hard-coded in Odoo - -applications/finance/accounting/payables/supplier_bills/ocr.rst applications/finance/accounting/payables/supplier_bills/invoice_digitization.rst # ocr --> invoice_digitization - -applications/sales/crm/optimize/outlook_extension.rst applications/productivity/mail_plugins/outlook.rst - -applications/general/payment_acquirers/adyen.rst applications/finance/payment_acquirers/adyen.rst -applications/general/payment_acquirers/alipay.rst applications/finance/payment_acquirers/alipay.rst -applications/general/payment_acquirers/buckaroo.rst applications/finance/payment_acquirers/buckaroo.rst -applications/general/payment_acquirers/mollie.rst applications/finance/payment_acquirers/mollie.rst -applications/general/payment_acquirers/ogone.rst applications/finance/payment_acquirers/ogone.rst -applications/general/payment_acquirers/sips.rst applications/finance/payment_acquirers/sips.rst - -developer/reference/addons.rst developer/reference/backend.rst -developer/reference/addons/actions.rst developer/reference/backend/actions.rst -developer/reference/addons/assets.rst developer/reference/backend/assets.rst -developer/reference/addons/data.rst developer/reference/backend/data.rst -developer/reference/addons/http.rst developer/reference/backend/http.rst -developer/reference/addons/mixins.rst developer/reference/backend/mixins.rst -developer/reference/addons/module.rst developer/reference/backend/module.rst -developer/reference/addons/orm.rst developer/reference/backend/orm.rst -developer/reference/addons/reports.rst developer/reference/backend/reports.rst -developer/reference/addons/security.rst developer/reference/backend/security.rst -developer/reference/addons/testing.rst developer/reference/backend/testing.rst -developer/reference/addons/views.rst developer/reference/backend/views.rst - -developer/reference/javascript.rst developer/reference/frontend.rst -developer/reference/javascript/framework_overview.rst developer/reference/frontend/framework_overview.rst -developer/reference/javascript/javascript_modules.rst developer/reference/frontend/javascript_modules.rst -developer/reference/javascript/owl_component_system.rst developer/reference/frontend/owl_component_system.rst -developer/reference/javascript/registries.rst developer/reference/frontend/registries.rst -developer/reference/javascript/services.rst developer/reference/frontend/services.rst -developer/reference/javascript/generic_components.rst developer/reference/frontend/generic_components.rst -developer/reference/javascript/hooks.rst developer/reference/frontend/hooks.rst -developer/reference/javascript/javascript_cheatsheet.rst developer/reference/frontend/javascript_cheatsheet.rst -developer/reference/javascript/javascript_reference.rst developer/reference/frontend/javascript_reference.rst -developer/reference/javascript/mobile.rst developer/reference/frontend/mobile.rst -developer/reference/javascript/qweb.rst developer/reference/frontend/qweb.rst - -developer/reference/backend/assets.rst developer/reference/frontend/assets.rst - -developer/reference/frontend/owl_component_system.rst developer/reference/frontend/owl_components.rst -developer/reference/frontend/generic_components.rst developer/reference/frontend/owl_components.rst - -developer/misc/i18n/localization.rst developer/howtos/accounting_localization.rst -developer/misc/i18n/translations.rst developer/howtos/translations.rst - -# Redirections introduced in saas-15.1 : - -# Redirections introduced in saas-15.2 : +social_marketing/social_marketing.rst applications/marketing/social_marketing/overview.rst # social_marketing/* -> overview/* (#578) diff --git a/redirects/14.0.txt b/redirects/14.0.txt new file mode 100644 index 000000000..a687dd04c --- /dev/null +++ b/redirects/14.0.txt @@ -0,0 +1,28 @@ +# applications/sales + +applications/sales/crm/acquire_leads/generate_from_email.rst applications/sales/crm/acquire_leads/generate_leads.rst # (#986) +applications/sales/crm/acquire_leads/generate_from_website.rst applications/sales/crm/acquire_leads/generate_leads.rst # (#986) + +# developer/misc + +developer/misc/api/odoo.rst developer/misc/api/external_api.rst + +# legal + +legal/others/cla.rst legal/cla.rst +legal/licenses/licenses.rst legal/licenses.rst + +# others + +crm/optimize/mail_client_extension.rst applications/sales/crm/optimize/outlook_extension.rst # mail_client_extension -> outlook_extension | mail_client_extension is the first link provided as a tip in Odoo 14 but should be updated and point directly to outlook_extension +crm/optimize/google_calendar_credentials.rst applications/general/calendars/google/google_calendar_credentials.rst # (#765) + +purchase/purchases/tender/blanket_orders.rst applications/inventory_and_mrp/purchase/manage_deals/agreements.rst # (#823) +purchase/purchases/tender/call_for_tender.rst applications/inventory_and_mrp/purchase/manage_deals/agreements.rst # (#823) +purchase/purchases/rfq/3_way_matching.rst applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst # (#829) +purchase/purchases/rfq/bills.rst applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst # (#829) +purchase/purchases/master/uom.rst applications/inventory_and_mrp/purchase/products/uom.rst # (#814) +purchase/replenishment/flows/compute_date.rst applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst # (#814) +purchase/replenishment/flows/purchase_triggering.rst applications/inventory_and_mrp/purchase/products/reordering.rst # (#814) +purchase/replenishment/flows/setup_stock_rule.rst applications/inventory_and_mrp/purchase/products/reordering.rst # (#814) +purchase/replenishment/multicompany/setup.rst applications/general/multi_companies/manage_multi_companies.rst # (#814) diff --git a/redirects/15.0.txt b/redirects/15.0.txt new file mode 100644 index 000000000..2d23f68c9 --- /dev/null +++ b/redirects/15.0.txt @@ -0,0 +1,56 @@ +# applications/finance + +applications/finance/accounting/payables/supplier_bills/ocr.rst applications/finance/accounting/payables/supplier_bills/invoice_digitization.rst # ocr --> invoice_digitization + +# applications/general + +applications/general/payment_acquirers/adyen.rst applications/finance/payment_acquirers/adyen.rst +applications/general/payment_acquirers/alipay.rst applications/finance/payment_acquirers/alipay.rst +applications/general/payment_acquirers/buckaroo.rst applications/finance/payment_acquirers/buckaroo.rst +applications/general/payment_acquirers/mollie.rst applications/finance/payment_acquirers/mollie.rst +applications/general/payment_acquirers/ogone.rst applications/finance/payment_acquirers/ogone.rst +applications/general/payment_acquirers/sips.rst applications/finance/payment_acquirers/sips.rst + +applications/general/product_images.rst applications/sales/sales/products_prices/products/product_images.rst # fix a wrong target hard-coded in Odoo + +# applications/sales + +applications/sales/crm/optimize/outlook_extension.rst applications/productivity/mail_plugins/outlook.rst + +# developer/misc + +developer/misc/i18n/localization.rst developer/howtos/accounting_localization.rst +developer/misc/i18n/translations.rst developer/howtos/translations.rst + +# developer/reference + +developer/reference/addons.rst developer/reference/backend.rst +developer/reference/addons/actions.rst developer/reference/backend/actions.rst +developer/reference/addons/assets.rst developer/reference/backend/assets.rst +developer/reference/addons/data.rst developer/reference/backend/data.rst +developer/reference/addons/http.rst developer/reference/backend/http.rst +developer/reference/addons/mixins.rst developer/reference/backend/mixins.rst +developer/reference/addons/module.rst developer/reference/backend/module.rst +developer/reference/addons/orm.rst developer/reference/backend/orm.rst +developer/reference/addons/reports.rst developer/reference/backend/reports.rst +developer/reference/addons/security.rst developer/reference/backend/security.rst +developer/reference/addons/testing.rst developer/reference/backend/testing.rst +developer/reference/addons/views.rst developer/reference/backend/views.rst + +developer/reference/backend/assets.rst developer/reference/frontend/assets.rst + +developer/reference/frontend/generic_components.rst developer/reference/frontend/owl_components.rst +developer/reference/frontend/owl_component_system.rst developer/reference/frontend/owl_components.rst + +developer/reference/javascript.rst developer/reference/frontend.rst +developer/reference/javascript/framework_overview.rst developer/reference/frontend/framework_overview.rst +developer/reference/javascript/javascript_modules.rst developer/reference/frontend/javascript_modules.rst +developer/reference/javascript/owl_component_system.rst developer/reference/frontend/owl_component_system.rst +developer/reference/javascript/registries.rst developer/reference/frontend/registries.rst +developer/reference/javascript/services.rst developer/reference/frontend/services.rst +developer/reference/javascript/generic_components.rst developer/reference/frontend/generic_components.rst +developer/reference/javascript/hooks.rst developer/reference/frontend/hooks.rst +developer/reference/javascript/javascript_cheatsheet.rst developer/reference/frontend/javascript_cheatsheet.rst +developer/reference/javascript/javascript_reference.rst developer/reference/frontend/javascript_reference.rst +developer/reference/javascript/mobile.rst developer/reference/frontend/mobile.rst +developer/reference/javascript/qweb.rst developer/reference/frontend/qweb.rst diff --git a/redirects/MANUAL.md b/redirects/MANUAL.md new file mode 100644 index 000000000..ff46331a9 --- /dev/null +++ b/redirects/MANUAL.md @@ -0,0 +1,59 @@ +# Redirect rules manual + +## What are redirect rules? + +Redirect rules allow redirecting users to a new documentation page when they land on an old page +that was either renamed or moved elsewhere. They are specified in `.txt` files located in the +`redirects/` directory at the root of the documentation. Each line of these files specifies a single +rule that applies to a single documentation page. + +## How do redirect rules work? + +For each redirect rule, the redirects Sphinx extension creates a blank HTML file at the location of +the specified target with only the `meta http-equiv="refresh"` tag in the ``. When users +visit that HTML file, a client-side redirection is triggered and the browser loads the target +documentation page. + +See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-http-equiv for more +information. + +## How do I create a redirect rule? + +1. Open the text file inside `redirects/` that matches the version you are currently working on. For + example, pick `redirects/13.0.txt` if you are moving/renaming the source file (`.rst` file) of a + documentation page in version 13.0 of the documentation. If the file does not exist yet, create + it. +2. Look for the block of redirect rules related to the one you want to add. For example, search for + a block of redirect rules that start with `applications/sales/sales` if you are adding a redirect + rule for a page in the Sales app. If the block does not exist yet, create it. Ideally, there + should be one block per app or scope and redirect rules should be sorted alphabetically. +3. Add a new line for your redirect rule at the end of the block. The line should follow this + pattern: + + `path/to/old/file.rst path/to/new/file.rst # optional comment` + +## When should I create a redirect rule? + +If you move or rename a source file, chances are you need to create a redirect rule for that file. A +redirect rule must be added in the following cases: +1. A source file is renamed. + + Example: `contributing/documentation/guidelines.rst` is renamed to + `contributing/documentation/rst_guidelines.rst` because you add a new `content_guidelines.rst` + file. The redirect rule should be: + + `contributing/documentation/guidelines.rst contributing/documentation/rst_guidelines.rst` +2. A source file is moved from one location to another. + + Example: The page for the developer guidelines is moved from `developer/misc/guidelines.rst` to + `contributing/develop/guidelines.rst`. The redirect rule should be: + + `developer/misc/guidelines.rst contributing/develop/guidelines.rst # Move all guidelines in contributing/` +3. Multiple source files are merged into one. + + Example: The entire content of `administation/install/odoo_sh.rst` is moved into + `administration/odoo_sh.rst` and the first file is deleted. The redirect rule should be: + + `administration/install/odoo_sh.rst administration/odoo_sh.rst # Move all information related to Odoo.sh on a single page` + +No redirect rule should be created when you delete a source file for which there is no alternative. diff --git a/redirects/saas-15.1.txt b/redirects/saas-15.1.txt new file mode 100644 index 000000000..e69de29bb diff --git a/redirects/saas-15.2.txt b/redirects/saas-15.2.txt new file mode 100644 index 000000000..e69de29bb