[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#2292

X-original-commit: 0417b95514
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
This commit is contained in:
Antoine Vandevenne (anv) 2022-06-22 12:07:05 +00:00
parent 239fc190a0
commit 302b5307fa
14 changed files with 370 additions and 295 deletions

View File

@ -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

View File

@ -312,19 +312,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 <https://github.com/odoo/documentation/tree/13.0/redirects/MANUAL.md>`_ to
create the appropriate redirect rule(s).
.. _contributing/preview-changes:

View File

@ -11,56 +11,60 @@ TEMPLATE = '<html><head><meta http-equiv="refresh" content="0; url=%s"/></head><
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 {

3
redirects/11.0.txt Normal file
View File

@ -0,0 +1,3 @@
# contributing/
contributing/documentation/guidelines.rst contributing/documentation/rst_guidelines.rst # guidelines --> rst_guidelines

16
redirects/12.0.txt Normal file
View File

@ -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)

View File

@ -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)

28
redirects/14.0.txt Normal file
View File

@ -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)

56
redirects/15.0.txt Normal file
View File

@ -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

0
redirects/16.0.txt Normal file
View File

59
redirects/MANUAL.md Normal file
View File

@ -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 `<head/>`. 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.

0
redirects/saas-15.1.txt Normal file
View File

0
redirects/saas-15.2.txt Normal file
View File

0
redirects/saas-15.3.txt Normal file
View File

0
redirects/saas-15.4.txt Normal file
View File