diff --git a/conf.py b/conf.py index d26b717a3..b119e35ef 100644 --- a/conf.py +++ b/conf.py @@ -19,11 +19,25 @@ _logger = logging.getLogger(__name__) project = 'Odoo' copyright = 'Odoo S.A.' -# `version` if the version info for the project being documented, acts as replacement for |version|, +# `version` is the version info for the project being documented, acts as replacement for |version|, # also used in various other places throughout the built documents. # `release` is the full version, including alpha/beta/rc tags. Acts as replacement for |release|. version = release = '16.0' +# `current_branch` is the technical name of the current branch. +# E.g., saas-15.4 -> saas-15.4; 12.0 -> 12.0, master -> master (*). +current_branch = version +# `current_version` is the Odoo version linked to the current branch. +# E.g., saas-15.4 -> 15.4; 12.0 -> 12; master -> master (*). +current_version = current_branch.replace('saas-', '').replace('.0', '') +# `current_major_branch` is the technical name of the major branch before the current branch. +# E.g., saas-15.4 -> 15.0; 12.0 -> 12.0; master -> master (*). +current_major_branch = re.sub(r'\.\d', '.0', current_branch.replace('saas-', '')) +# `current_major_version` is the Odoo version linked to the current major branch. +# E.g., saas-15.4 -> 15; 12.0 -> 12; master -> master (*). +current_major_version = current_major_branch.replace('.0', '') +# (*): We don't care for master. + # The minimal Sphinx version required to build the documentation. needs_sphinx = '3.0.0' @@ -61,6 +75,11 @@ add_function_parentheses = True #=== Extensions configuration ===# source_read_replace_vals = { + 'BRANCH': current_branch, + 'CURRENT_BRANCH': current_branch, + 'CURRENT_VERSION': current_version, + 'CURRENT_MAJOR_BRANCH': current_major_branch, + 'CURRENT_MAJOR_VERSION': current_major_version, 'GITHUB_PATH': f'https://github.com/odoo/odoo/blob/{version}', 'GITHUB_ENT_PATH': f'https://github.com/odoo/enterprise/blob/{version}', 'OWL_PATH': f'https://github.com/odoo/owl/blob/master', @@ -316,7 +335,6 @@ def source_read_replace(app, docname, source): result = result.replace(f"{{{key}}}", app.config.source_read_replace_vals[key]) source[0] = result - def setup(app): # Generate all alternate URLs for each document app.add_config_value('project_root', None, 'env') diff --git a/content/administration/install/install.rst b/content/administration/install/install.rst index 7c5e0d7de..ab2eeca2d 100644 --- a/content/administration/install/install.rst +++ b/content/administration/install/install.rst @@ -151,7 +151,7 @@ Repository .. code-block:: console $ wget -q -O - https://nightly.odoo.com/odoo.key | sudo gpg --dearmor -o /usr/share/keyrings/odoo-archive-keyring.gpg - $ echo 'deb [signed-by=/usr/share/keyrings/odoo-archive-keyring.gpg] https://nightly.odoo.com/16.0/nightly/deb/ ./' | sudo tee /etc/apt/sources.list.d/odoo.list + $ echo 'deb [signed-by=/usr/share/keyrings/odoo-archive-keyring.gpg] https://nightly.odoo.com/{CURRENT_MAJOR_BRANCH}/nightly/deb/ ./' | sudo tee /etc/apt/sources.list.d/odoo.list $ sudo apt-get update && sudo apt-get install odoo You can then use the usual `apt-get upgrade` command to keep your installation up-to-date. @@ -163,7 +163,7 @@ Repository .. code-block:: console - $ sudo dnf config-manager --add-repo=https://nightly.odoo.com/16.0/nightly/rpm/odoo.repo + $ sudo dnf config-manager --add-repo=https://nightly.odoo.com/{CURRENT_MAJOR_BRANCH}/nightly/rpm/odoo.repo $ sudo dnf install -y odoo $ sudo systemctl enable odoo $ sudo systemctl start odoo @@ -183,8 +183,8 @@ Distribution package `_. .. note:: - Odoo 16.0 'deb' package currently supports `Debian 11 (Bullseye)`_, `Ubuntu 22.04 (Jammy)`_ - or above. + Odoo {CURRENT_MAJOR_VERSION} 'deb' package currently supports `Debian 11 (Bullseye)`_, + `Ubuntu 22.04 (Jammy)`_ or above. Next, execute the following commands **as root**: @@ -224,13 +224,13 @@ Distribution package `_. .. note:: - Odoo 16.0 'rpm' package supports Fedora 36. + Odoo {CURRENT_MAJOR_VERSION} 'rpm' package supports Fedora 36. Once downloaded, the package can be installed using the 'dnf' package manager: .. code-block:: console - $ sudo dnf localinstall odoo_16.0.latest.noarch.rpm + $ sudo dnf localinstall odoo_{CURRENT_MAJOR_BRANCH}.latest.noarch.rpm $ sudo systemctl enable odoo $ sudo systemctl start odoo @@ -547,7 +547,7 @@ Dependencies .. tab:: Debian/Ubuntu For Debian-based systems, the packages are listed in the `debian/control - `_ file of the Odoo sources. + <{GITHUB_PATH}/debian/control>`_ file of the Odoo sources. On Debian/Ubuntu, the following commands should install the required packages: diff --git a/content/administration/odoo_sh/advanced/containers.rst b/content/administration/odoo_sh/advanced/containers.rst index 21987bede..f96843c15 100644 --- a/content/administration/odoo_sh/advanced/containers.rst +++ b/content/administration/odoo_sh/advanced/containers.rst @@ -17,7 +17,7 @@ The platform will take care to install these dependencies in your containers. `The pip requirements specifiers `_ documentation can help you write a :file:`requirements.txt` file. To have a concrete example, -check out the `requirements.txt file of Odoo `_. +check out the `requirements.txt file of Odoo <{GITHUB_PATH}/requirements.txt>`_. The :file:`requirements.txt` files of submodules are taken into account as well. The platform looks for :file:`requirements.txt` files in each folder containing Odoo modules: Not in the module folder itself, @@ -174,9 +174,9 @@ Look for "*odoo: addons paths*": :: - 2018-02-19 10:51:39,267 4 INFO ? odoo: Odoo version 13.0 + 2018-02-19 10:51:39,267 4 INFO ? odoo: Odoo version {BRANCH} 2018-02-19 10:51:39,268 4 INFO ? odoo: Using configuration file at /home/odoo/.config/odoo/odoo.conf - 2018-02-19 10:51:39,268 4 INFO ? odoo: addons paths: ['/home/odoo/data/addons/13.0', '/home/odoo/src/user', '/home/odoo/src/enterprise', '/home/odoo/src/themes', '/home/odoo/src/odoo/addons', '/home/odoo/src/odoo/odoo/addons'] + 2018-02-19 10:51:39,268 4 INFO ? odoo: addons paths: ['/home/odoo/data/addons/{BRANCH}', '/home/odoo/src/user', '/home/odoo/src/enterprise', '/home/odoo/src/themes', '/home/odoo/src/odoo/addons', '/home/odoo/src/odoo/odoo/addons'] **Be careful**, especially with your production database. Operations that you perform running this Odoo server instance are not isolated: diff --git a/content/contributing/documentation.rst b/content/contributing/documentation.rst index 1be0b6534..8bf668825 100644 --- a/content/contributing/documentation.rst +++ b/content/contributing/documentation.rst @@ -237,7 +237,8 @@ Python comes with its own package manager: `pip a single command. #. Download and install the recommended release (`see README file - `_) of **Python 3** on your machine. + `_) of **Python 3** on your + machine. #. Make sure to have **pip** installed on your machine (on Windows, you can install pip alongside Python). #. Execute the following commands in a terminal to verify that both installations finished @@ -291,12 +292,12 @@ Prepare your version -------------------- Now that your machine is all set up, it is time to do the same for your version of the documentation -files. As it would not be convenient to have several people working on the version 13.0 in parallel -(conflicts of content would occur all the time), and in order to be able to create a :abbr:`PR -(Pull Request)`, you must `create a new branch -`_ starting from the branch 13.0. In other -words, you copy the entirety of this version’s files and give it another name. For this example, we -will go with ``13.0-my_contribution``. +files. As it would not be convenient to have several people working on the version {BRANCH} in +parallel (conflicts of content would occur all the time), and in order to be able to create a +:abbr:`PR (Pull Request)`, you must `create a new branch +`_ starting from the branch {BRANCH}. In +other words, you copy the entirety of this version’s files and give it another name. For this +example, we will go with ``{BRANCH}-my_contribution``. Execute the following commands in a terminal to... @@ -306,17 +307,17 @@ Execute the following commands in a terminal to... $ cd documentation/ -#. Switch to the version 13.0: +#. Switch to the version {BRANCH}: .. code-block:: console - $ git checkout 13.0 + $ git checkout {BRANCH} -#. Create your own branch which will be a copy of 13.0: +#. Create your own branch which will be a copy of {BRANCH}: .. code-block:: console - $ git checkout -b 13.0-my_contribution + $ git checkout -b {BRANCH}-my_contribution .. _contributing/perform-changes: @@ -343,8 +344,8 @@ guidelines. #. 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). + for redirect rules `_ + to create the appropriate redirect rule(s). .. _contributing/preview-changes: @@ -390,7 +391,7 @@ Submit your changes $ git add * $ git commit - $ git push -u origin 13.0-my_contribution + $ git push -u origin {BRANCH}-my_contribution #. Go to `github.com/odoo/documentation/pulls `_ and click on the **New pull request** button. @@ -403,7 +404,8 @@ Submit your changes .. image:: documentation/compare-across-forks.png #. In the dropdown for the selection of the base branch (i.e., the version of the documentation that - your changes concern), make sure to select the version that your changes target (here **13.0**). + your changes concern), make sure to select the version that your changes target (here + **{BRANCH}**). .. image:: documentation/select-branches-fork.png diff --git a/content/contributing/documentation/rst_guidelines.rst b/content/contributing/documentation/rst_guidelines.rst index d51ad102d..d8d23cacd 100644 --- a/content/contributing/documentation/rst_guidelines.rst +++ b/content/contributing/documentation/rst_guidelines.rst @@ -36,8 +36,8 @@ A reference to the rendered :file:`prices.html` and :file:`variants.html` could #. Absolute: - - ``https://odoo.com/documentation/master/applications/sales/sales/products_prices/prices.html`` - - ``https://odoo.com/documentation/master/applications/sales/sales/products_prices/products/variants.html`` + - ``https://odoo.com/documentation/{BRANCH}/applications/sales/sales/products_prices/prices.html`` + - ``https://odoo.com/documentation/{BRANCH}/applications/sales/sales/products_prices/products/variants.html`` #. Relative: diff --git a/content/developer/cli.rst b/content/developer/cli.rst index 882e3bb21..a5857e5f2 100644 --- a/content/developer/cli.rst +++ b/content/developer/cli.rst @@ -49,7 +49,7 @@ Help & version .. option:: --version - shows Odoo version e.g. "Odoo Server 13.0" + shows Odoo version e.g. "Odoo Server {BRANCH}" .. tip:: You can enable auto-completion in your shell by running diff --git a/content/developer/howtos/rdtraining/02_setup.rst b/content/developer/howtos/rdtraining/02_setup.rst index e34620d8a..bb0069415 100644 --- a/content/developer/howtos/rdtraining/02_setup.rst +++ b/content/developer/howtos/rdtraining/02_setup.rst @@ -248,10 +248,10 @@ Here are some useful Git commands for your day-to-day work. .. code-block:: console $ cd $HOME/src/odoo - $ git switch master + $ git switch {BRANCH} $ cd $HOME/src/enterprise - $ git switch master + $ git switch {BRANCH} - Fetch and rebase: @@ -259,11 +259,11 @@ Here are some useful Git commands for your day-to-day work. $ cd $HOME/src/odoo $ git fetch --all --prune - $ git rebase --autostash odoo/master + $ git rebase --autostash odoo/{BRANCH} $ cd $HOME/src/enterprise $ git fetch --all --prune - $ git rebase --autostash enterprise/master + $ git rebase --autostash enterprise/{BRANCH} Code Editor ----------- diff --git a/content/developer/howtos/rdtraining/05_securityintro.rst b/content/developer/howtos/rdtraining/05_securityintro.rst index a456e5473..7c7c8a80b 100644 --- a/content/developer/howtos/rdtraining/05_securityintro.rst +++ b/content/developer/howtos/rdtraining/05_securityintro.rst @@ -17,9 +17,9 @@ Data Files (CSV) Odoo is a highly data driven system. Although behavior is customized using Python code, part of a module's value is in the data it sets up when loaded. One way to load data is through a CSV -file. One example is the -`list of country states `__ -which is loaded at installation of the ``base`` module. +file. One example is the `list of country states +<{GITHUB_PATH}/odoo/addons/base/data/res.country.state.csv>`_ which is loaded at installation of the +`base` module. .. code-block:: text diff --git a/content/developer/howtos/rdtraining/B_acl_irrules.rst b/content/developer/howtos/rdtraining/B_acl_irrules.rst index 16ef5badf..1025daa00 100644 --- a/content/developer/howtos/rdtraining/B_acl_irrules.rst +++ b/content/developer/howtos/rdtraining/B_acl_irrules.rst @@ -12,10 +12,10 @@ ACL stands for "Access Control List" `. To follow the exercise, it is recommended that you fetch the branch - 15.0-core from the - `technical training solutions `__ repository. - It contains a version of the module created during the core training we can use - as a starting point. + {BRANCH}-core from the `technical training solutions + `_ repository. It + contains a version of the module created during the core training we can use as a starting + point. So far we have mostly concerned ourselves with implementing useful features. However in most business scenarios *security* quickly becomes a concern: diff --git a/content/developer/howtos/rdtraining/C_data.rst b/content/developer/howtos/rdtraining/C_data.rst index 691aa33c1..8036653a8 100644 --- a/content/developer/howtos/rdtraining/C_data.rst +++ b/content/developer/howtos/rdtraining/C_data.rst @@ -6,9 +6,9 @@ Advanced C: Master and Demo Data .. tip:: This tutorial assumes you followed the Core Training. - To do the exercise, fetch the branch 15.0-core from the - `technical training solutions `__ repository. - It contains a basic module we will use as a starting point + To do the exercise, fetch the branch {BRANCH}-core from the `technical training solutions + `_ repository. It + contains a basic module we will use as a starting point Data Types ========== diff --git a/content/developer/howtos/rdtraining/E_unittest.rst b/content/developer/howtos/rdtraining/E_unittest.rst index 90f4c398f..5951f13b5 100644 --- a/content/developer/howtos/rdtraining/E_unittest.rst +++ b/content/developer/howtos/rdtraining/E_unittest.rst @@ -6,9 +6,9 @@ Advanced E: Python Unit Tests .. tip:: This tutorial assumes you followed the Core Training. - To do the exercise, fetch the branch 15.0-core from the - `technical training solutions `__ repository. - It contains a basic module we will use as a starting point + To do the exercise, fetch the branch {BRANCH}-core from the `technical training solutions + `_ repository. It + contains a basic module we will use as a starting point **Reference**: `Odoo's Test Framework: Learn Best Practices `__ @@ -284,7 +284,7 @@ These test classes are built on top of the ``unittest`` python module. .. note:: For better readability, split your tests into multiple files depending on the scope of the tests. You can also have a Common class that most of the tests should inherit from; this common class can define the whole set up for the module. For instance in - `account `__. + `account <{GITHUB_PATH}/addons/account/tests/common.py>`__. .. exercise:: Update the code so no one can: diff --git a/content/developer/howtos/rdtraining/J_reports.rst b/content/developer/howtos/rdtraining/J_reports.rst index e4efcbcf6..1a89a9581 100644 --- a/content/developer/howtos/rdtraining/J_reports.rst +++ b/content/developer/howtos/rdtraining/J_reports.rst @@ -9,11 +9,11 @@ Advanced J: PDF Reports This tutorial assumes you have completed the :ref:`Core Training ` and have installed :ref:`wkhtmltopdf `. - To follow the exercise, it is recommended that you fetch the branch - 15.0-core from the - `technical training solutions `__ repository. - It contains a version of the module created during the core training we can use - as a starting point. + To follow the exercise, it is recommended that you fetch the branch {BRANCH}-core from the + `technical training solutions + `_ repository. It + contains a version of the module created during the core training we can use as a starting + point. We were previously :ref:`introduced to QWeb ` in the Core Training where it was used to build a kanban view. Now we will expand on one of QWeb's @@ -96,9 +96,10 @@ If you don't have a set of data like this already, you can either: * Complete :ref:`howto/rdtraining/C_data` (if you haven't done so already) and add the extra cases to your demo data (you may need to create a new database to load in the demo data). * Manually create the data in your database. -* Copy this `data file `__ - into a new directory (data) in your estate module and copy - `these lines `__ +* Copy this `data file + `_ + into a new directory (data) in your estate module and copy `these lines + `_ into your __manifest__.py file (you may need to create a new database to load in the demo data). Before continuing, click through your data in your database and make sure your data is as expected. diff --git a/content/developer/howtos/rdtraining/K_dashboard.rst b/content/developer/howtos/rdtraining/K_dashboard.rst index ebdf87bc9..487daaad3 100644 --- a/content/developer/howtos/rdtraining/K_dashboard.rst +++ b/content/developer/howtos/rdtraining/K_dashboard.rst @@ -10,10 +10,10 @@ Advanced K: Dashboards access to Odoo Enterprise features. To follow the exercise, it is recommended that you fetch the branch - 15.0-core from the - `technical training solutions `__ repository. - It contains a version of the module created during the core training we can use - as a starting point. + {BRANCH}-core from the `technical training solutions + `_ repository. It + contains a version of the module created during the core training we can use as a starting + point. The term "Dashboard" is used in Odoo for objects that display data, but involves different implementations. This tutorial will only focus on the Enterprise view that is used to provide @@ -119,9 +119,10 @@ If you don't have a set of data like this already, you can either: * Complete :ref:`howto/rdtraining/C_data` (if you haven't done so already) and add the extra cases to your demo data (you may need to create a new database to load in the demo data). * Manually create the data in your database. -* Copy this `data file `__ - into a new directory called ``data`` in your estate module and copy - `these lines `__ +* Copy this `data file + `_ + into a new directory called ``data`` in your estate module and copy `these lines + `_ into your __manifest__.py file (you may need to create a new database to load in the demo data). Click through your database data and make sure it is what you expect. Of course you can add the @@ -208,8 +209,8 @@ The `ref` attribute can be added to `` elements to use a specific xml id f no xml id is provided for a graph or pivot view then the default view will be used. The cohort view will not work in the dashboard without a specific xml id. If you have already created some of these views then you are welcome to add them to your dashboard! Sample graph and -pivot views are included in the -`solution code `__ +pivot views are included in the `solution code +`_ that you are welcome to use as well. .. exercise:: Add subviews. @@ -363,7 +364,7 @@ graph views), then you can add ``store=False`` to it and it will not show. The *select* and *from* methods remain the same. -`Here is an example `__ +`Here is an example <{GITHUB_PATH}/addons/account/report/account_invoice_report.py>`__ of a report that depends on the currently selected companies (in a multi-company environment) context to determine the currency exchange rates to use for accurately displaying amounts when the selected companies have different currencies. diff --git a/content/developer/reference/backend/module.rst b/content/developer/reference/backend/module.rst index 08d5e51db..258dd640d 100644 --- a/content/developer/reference/backend/module.rst +++ b/content/developer/reference/backend/module.rst @@ -154,5 +154,4 @@ Available manifest fields are: Deprecated. Replaced by ``auto_install``. .. _semantic versioning: https://semver.org -.. _existing categories: - https://github.com/odoo/odoo/blob/14.0/odoo/addons/base/data/ir_module_category_data.xml +.. _existing categories: {GITHUB_PATH}/odoo/addons/base/data/ir_module_category_data.xml diff --git a/content/developer/reference/backend/testing.rst b/content/developer/reference/backend/testing.rst index 5176984f0..9697b2d89 100644 --- a/content/developer/reference/backend/testing.rst +++ b/content/developer/reference/backend/testing.rst @@ -598,8 +598,8 @@ Javascript #. Add any step you want. Every step contains at least a trigger. You can either use the `predefined steps -`_ or write -your own personalized step. +<{GITHUB_PATH}/addons/web_tour/static/src/js/tour_step_utils.js>`_ or write your own personalized +step. Here are some example of steps: diff --git a/content/developer/reference/frontend/javascript_reference.rst b/content/developer/reference/frontend/javascript_reference.rst index 292fdda02..d72a14650 100644 --- a/content/developer/reference/frontend/javascript_reference.rst +++ b/content/developer/reference/frontend/javascript_reference.rst @@ -2222,7 +2222,7 @@ do that, several steps should be done. } The ``updateControlPanel`` is the main method to customize the content in controlpanel. -For more information, look into the `control_panel_renderer.js `_ file. +For more information, look into the `control_panel_renderer.js <{GITHUB_PATH}/addons/web/static/src/js/views/control_panel/control_panel_renderer.js#L130>`_ file. .. _glob: https://en.wikipedia.org/wiki/Glob_(programming) diff --git a/content/legal/cla.rst b/content/legal/cla.rst index af5b51d5e..b69bf20d4 100644 --- a/content/legal/cla.rst +++ b/content/legal/cla.rst @@ -9,4 +9,4 @@ have to sign the Odoo Contributor License Agreement (CLA). More information about this requirement, the procedure to sign the agreement, and a FAQ can be found on our -`GitHub project page `_. +`GitHub project page <{GITHUB_PATH}/doc/cla/sign-cla.md>`_.