Compare commits
23 Commits
master-foo
...
saas-15.4-
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
28d090fd5f |
[IMP] qweb: document 't-cache' and 't-nocache' directives debug mode
related with: https://github.com/odoo/odoo/pull/88276 |
||
|
|
4ff6271ad8 |
[FIX] odoo_theme: correctly test for fallback URLs when using switchers
closes odoo/documentation#2273
X-original-commit:
|
||
|
|
6655c0800e |
[IMP] accounting: new content for invoice digitization (ocr)
closes odoo/documentation#2261
Id: 2320188
X-original-commit:
|
||
|
|
d37c6c67bd |
[FIX] redirects: add missing redirect rule for external_api.rst
The redirect rule was omitted in commit |
||
|
|
187813cdbc |
[FW][IMP] accounting: remove the odoo tutorials invoices link
Deleting the Odoo Tutorials Invoices link since the course has been merged, and the link isn't necessary anymore. closes odoo/documentation#2249 Forward-port-of: odoo/documentation#2243 Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com> |
||
|
|
ceed36b6f2 |
Update epos_ssc.rst
Because of a recent Chrome security update, a lot of customers using peripheral devices (printers, ...) will have to follow this doc.
Therefore, I followed the doc and did the flow on my side.
I modified 'Copy to file' to 'Export' and 'Trusted Root Certification Authorities' to 'Authorities' in order to have the exact same terms as in Chrome (I guess they updated their terms at some point).
closes odoo/documentation#2236
X-original-commit:
|
||
|
|
0d12103866 |
[FIX] odoo_theme: fix highlight blocks in field-list items
On pages such as /developer/reference/backend/orm.html#fields, the
highlight blocks inside `dl.field-list` items were pushing the width of
the page to go outside the screen on mobile. This is fixed by changing
the `.field-list`'s `display: grid` into `block` on mobile.
closes odoo/documentation#2229
X-original-commit:
|
||
|
|
359a71e83f |
[FW][MERGE] odoo_theme: revamp header and menu for better mobile support
Previously the switchers were hidden on mobile. These have been moved to a sub-nav which also contains the button for the sidenav, leaving more space for the searchbox so it can remain in the header. Like MDN web docs, the navigation now slides in from the left instead of the top. See PR's commits for more details. task-2800937 closes odoo/documentation#2221 Forward-port-of: odoo/documentation#2206 Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com> |
||
|
|
9f69d7d402 |
[FIX] odoo_theme: stop testing for valid URLs if in localhost
The mechanism that makes the version and language switchers test for
valid URLs crashed when testing in localhost. The mechanism is now
skipped if the URL starts with a '/'.
X-original-commit:
|
||
|
|
3780b0e135 |
[FIX] odoo_theme: fix searchbox's highlight-link
task-2800937
X-original-commit:
|
||
|
|
886ba6150e |
[IMP] odoo_theme: revamp side menu to add overlay
task-2800937
X-original-commit:
|
||
|
|
4d34066326 |
[FIX] odoo_theme: fix menu scrolling
task-2800937
X-original-commit:
|
||
|
|
2836734afc |
[IMP] odoo_theme: add side menu collapse icon
task-2800937
X-original-commit:
|
||
|
|
b03ce9947f |
[IMP] odoo_theme: change collapsing menu orientation
task-2800937
X-original-commit:
|
||
|
|
bf1e7ee63e |
[IMP] odoo_theme: add subheader and adapt switchers and searchbar
task-2800937
X-original-commit:
|
||
|
|
ddf9fe780e |
[IMP] odoo_theme: stop translating language names in the switcher
Before this commit, the language names were translated to display
"Français" instead of "French". This helped the user find their language
in the switcher but it was taking too much horizontal space, and that
space was not constant from one language to another.
This commit removes the translations of the language names and simply
goes with "FR", "NL", etc. which any user can identify as their
language.
task-2800937
X-original-commit:
|
||
|
|
8a6e2e5d9f |
[IMP] design: add an icon behind external links
The external links' target attribute is now also updated to open the
link in a new tab. In addition, the "[source]" link of autodoc's models
is moved right next to the name of the model to correctly position the
icon.
task-2790244
closes odoo/documentation#2212
X-original-commit:
|
||
|
|
33c2ee98c8 |
[IMP] odoo_theme: show the "On this page" section in mobile
When the page gets too small for the "On this page" section (local tree
of content) to fit on the page, the section is now moved above the menu
(global tree of content) rather than being hidden.
task-2800970
closes odoo/documentation#2200
X-original-commit:
|
||
|
|
1d01977ba5 |
[REM] pos: remove cash control doc page in 15 bc deprecated
Task ID: 2680699
closes odoo/documentation#2191
X-original-commit:
|
||
|
|
7fdf0ffeb4 |
[IMP] rdtraining: tip about -i/-u for odoo-bin
It is never shown to the trainee that he can install/update a module
right from the CLI. Multiple developpers still use the app manager to
install/update their modules multiple months into the job.
closes odoo/documentation#2187
X-original-commit:
|
||
|
|
1a57545ff3 |
[FIX] requirements: pin docutils to 0.16.0
Since sphinx-tabs 3.2.0 has the requirement docutils==0.16.0 and sphinx
3.5.4 has the requirement docutils>=0.12,<0.17, this commit pins
docutils to version 0.16.0.
While we're at it, the dependency to sphinx-tabs is also explicitly
listed, although it was already imported in the extensions. It causes
no trouble to install it from pip alongside the imported extension.
closes odoo/documentation#2177
X-original-commit:
|
||
|
|
2a4e3cb788 |
[FIX] odoo.sh: remove hidden folder from documentation
it will also be renamed to .repositories in the near future
closes odoo/documentation#2165
X-original-commit:
|
||
|
|
9b3a941753 |
[REL] freeze saas-15.4 branch
closes odoo/documentation#2130 Related: odoo/odoo#92735 Related: odoo/design-themes#565 Related: odoo/enterprise#27971 |
2
Makefile
|
|
@@ -26,7 +26,7 @@ SOURCE_DIR = content
|
|||
|
||||
HTML_BUILD_DIR = $(BUILD_DIR)/html
|
||||
ifdef VERSIONS
|
||||
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/master
|
||||
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/saas-15.4
|
||||
endif
|
||||
ifneq ($(CURRENT_LANG),en)
|
||||
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/$(CURRENT_LANG)
|
||||
|
|
|
|||
14
README.md
|
|
@@ -4,11 +4,11 @@
|
|||
|
||||
### Requirements
|
||||
|
||||
- [Git](https://www.odoo.com/documentation/master/contributing/documentation.html#install-git)
|
||||
- [Python 3.7 or 3.8](https://www.odoo.com/documentation/master/contributing/documentation.html#python)
|
||||
- Python dependencies listed in the file [`requirements.txt`](https://github.com/odoo/documentation/tree/master/requirements.txt).
|
||||
- [Make](https://www.odoo.com/documentation/master/contributing/documentation.html#make)
|
||||
- A local copy of the [odoo/odoo repository in master](https://github.com/odoo/odoo/tree/master) (Optional)
|
||||
- [Git](https://www.odoo.com/documentation/saas-15.4/contributing/documentation.html#install-git)
|
||||
- [Python 3.7 or 3.8](https://www.odoo.com/documentation/saas-15.4/contributing/documentation.html#python)
|
||||
- Python dependencies listed in the file [`requirements.txt`](https://github.com/odoo/documentation/tree/saas-15.4/requirements.txt).
|
||||
- [Make](https://www.odoo.com/documentation/saas-15.4/contributing/documentation.html#make)
|
||||
- A local copy of the [odoo/odoo repository in saas-15.4](https://github.com/odoo/odoo/tree/saas-15.4) (Optional)
|
||||
|
||||
### Instructions
|
||||
|
||||
|
|
@@ -23,7 +23,7 @@
|
|||
|
||||
2. Open the file `documentation/_build/html/index.html` in your web browser to display the render.
|
||||
|
||||
3. See [this guide](https://www.odoo.com/documentation/master/contributing/documentation.html#preview-your-changes)
|
||||
3. See [this guide](https://www.odoo.com/documentation/saas-15.4/contributing/documentation.html#preview-your-changes)
|
||||
for more detailed instructions.
|
||||
|
||||
Optional: to fully build the developer documentation with inline docstrings for documented Python
|
||||
|
|
@@ -34,7 +34,7 @@ be shown.
|
|||
## Contribute to the documentation
|
||||
|
||||
For contributions to the content of the documentation, please refer to the
|
||||
[Introduction Guide](https://www.odoo.com/documentation/master/contributing/documentation.html).
|
||||
[Introduction Guide](https://www.odoo.com/documentation/saas-15.4/contributing/documentation.html).
|
||||
|
||||
To **report a content issue**, **request new content** or **ask a question**, use the
|
||||
[repository's issue tracker](https://github.com/odoo/documentation-user/issues) as usual.
|
||||
|
|
|
|||
20
conf.py
|
|
@@ -22,7 +22,7 @@ copyright = 'Odoo S.A.'
|
|||
# `version` if 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 = 'master'
|
||||
version = release = 'saas-15.4'
|
||||
|
||||
# The minimal Sphinx version required to build the documentation.
|
||||
needs_sphinx = '3.0.0'
|
||||
|
|
@@ -184,6 +184,8 @@ sphinx.transforms.i18n.docname_to_domain = (
|
|||
# is populated. If a version is passed to `versions` but is not listed here, it will not be shown.
|
||||
versions_names = {
|
||||
'master': "Master",
|
||||
'saas-15.4': "Odoo Online",
|
||||
'saas-15.3': "Odoo Online",
|
||||
'saas-15.2': "Odoo Online",
|
||||
'saas-15.1': "Odoo Online",
|
||||
'15.0': "Odoo 15",
|
||||
|
|
@@ -194,14 +196,14 @@ versions_names = {
|
|||
# The language names that should be shown in the language switcher, if the config option `languages`
|
||||
# is populated. If a language is passed to `languages` but is not listed here, it will not be shown.
|
||||
languages_names = {
|
||||
'de': 'Deutsch',
|
||||
'en': 'English',
|
||||
'es': 'Español',
|
||||
'fr': 'Français',
|
||||
'nl': 'Nederlands',
|
||||
'pt_BR': 'Português (BR)',
|
||||
'uk': 'українська',
|
||||
'zh_CN': '简体中文',
|
||||
'de': 'DE',
|
||||
'en': 'EN',
|
||||
'es': 'ES',
|
||||
'fr': 'FR',
|
||||
'nl': 'NL',
|
||||
'pt_BR': 'PT',
|
||||
'uk': 'UA',
|
||||
'zh_CN': 'ZH',
|
||||
}
|
||||
|
||||
# The specifications of redirect rules used by the redirects extension.
|
||||
|
|
|
|||
|
|
@@ -37,7 +37,6 @@ The working directory is composed of the following folders:
|
|||
│ │ ├── enterprise Odoo Enterprise source code
|
||||
│ │ ├── themes Odoo Themes source code
|
||||
│ │ └── user Your repository branch source code
|
||||
│ ├── repositories The Git repositories used by your project
|
||||
│ ├── data
|
||||
│ │ ├── filestore database attachments, as well as the files of binary fields
|
||||
│ │ └── sessions visitors and users sessions
|
||||
|
|
|
|||
|
|
@@ -15,7 +15,6 @@ development with features such as AI-powered invoice recognition, synchronizatio
|
|||
accounts, smart matching suggestions, etc.
|
||||
|
||||
.. seealso::
|
||||
- `Odoo Tutorials: Invoicing <https://www.odoo.com/slides/invoicing-18>`_
|
||||
- `Odoo Tutorials: Accounting <https://www.odoo.com/slides/accounting-19>`_
|
||||
- :doc:`Accounting Cheat Sheet <accounting/getting_started/memento>`
|
||||
|
||||
|
|
|
|||
|
|
@@ -11,4 +11,4 @@ Vendor bills
|
|||
supplier_bills/purchase_receipts
|
||||
supplier_bills/deferred_expenses
|
||||
supplier_bills/assets
|
||||
supplier_bills/ocr
|
||||
supplier_bills/invoice_digitization
|
||||
|
|
|
|||
|
|
@@ -0,0 +1,78 @@
|
|||
=============================================================
|
||||
Invoice digitization with optical character recognition (OCR)
|
||||
=============================================================
|
||||
|
||||
**Invoice digitization** is the process of automatically encoding traditional paper invoices into
|
||||
vendor bills and customer invoices forms in your accounting.
|
||||
|
||||
Odoo uses :abbr:`OCR (optical character recognition)` and artificial intelligence technologies to
|
||||
recognize the content of the documents. Vendor bills and customer invoices forms are automatically
|
||||
created and populated based on the scanned invoices.
|
||||
|
||||
.. seealso::
|
||||
- `Test Odoo's invoice digitization <https://www.odoo.com/app/invoice-automation>`_
|
||||
- :doc:`/applications/general/in_app_purchase`.
|
||||
- `Odoo Tutorials: Invoice Digitization with OCR
|
||||
<https://www.odoo.com/slides/slide/digitize-bills-with-ocr-1712>`_.
|
||||
|
||||
.. note::
|
||||
- The more documents you scan, the better the system identifies the correct data.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
In :menuselection:`Accounting --> Configuration --> Settings --> Digitalization`, check the box
|
||||
:guilabel:`Document Digitalization` and choose whether :guilabel:`Vendor Bills` and
|
||||
:guilabel:`Customer Invoices` should be processed automatically or manually.
|
||||
|
||||
The :guilabel:`Single Invoice Line Per Tax` option can also be selected. It enables to get only one
|
||||
line created per tax in the new bill, regardless of the number of lines from the invoice.
|
||||
|
||||
Invoice upload
|
||||
==============
|
||||
|
||||
Upload invoices manually
|
||||
------------------------
|
||||
|
||||
From the :guilabel:`Accounting Dashboard`, click on the :guilabel:`Upload` button of your vendor
|
||||
bills journal.
|
||||
Alternatively, go to :menuselection:`Accounting --> Customers --> Invoices` or
|
||||
:menuselection:`Accounting --> Vendors --> Bills` and select :guilabel:`Upload`.
|
||||
|
||||
Upload invoices using an email alias
|
||||
------------------------------------
|
||||
|
||||
You can configure your connected scanner to send scanned documents to an email alias. Emails sent to
|
||||
these aliases are converted into new draft customer invoices or vendor bills.
|
||||
|
||||
You can modify the email alias of a journal by going to :menuselection:`Accounting --> Configuration
|
||||
--> Journals`, opening the appropriate journal, opening the :guilabel:`Advanced Settings` tab, and
|
||||
modifying the :guilabel:`Email Alias` field.
|
||||
|
||||
If you use the :doc:`Documents <../../../documents>` app, you can send your scanned invoices to the
|
||||
:guilabel:`Finance` workspace (e.g., `inbox-financial@example.odoo.com`).
|
||||
|
||||
Invoice digitization
|
||||
====================
|
||||
|
||||
According to your settings, the document is either processed automatically, or you need to click on
|
||||
:guilabel:`Send for digitalization` to do it manually.
|
||||
|
||||
Once the data is extracted from the PDF, you can correct it if necessary by clicking on the
|
||||
respective tags (available in Edit mode) and selecting the proper information instead.
|
||||
|
||||
Pricing
|
||||
=======
|
||||
|
||||
| The **invoice digitization** is an In-App Purchase (IAP) service that requires prepaid credits to
|
||||
work. Digitizing one document consumes one credit.
|
||||
| To buy credits, go to :menuselection:`Accounting --> Configuration --> Settings --> Digitization`
|
||||
and click on :guilabel:`Buy credits`, or go to :menuselection:`Settings --> Odoo IAP` and click on
|
||||
:guilabel:`View My Services`.
|
||||
|
||||
.. important::
|
||||
- If you are on Odoo Online (SaaS) and have the Enterprise version, you benefit from free trial
|
||||
credits to test the feature.
|
||||
|
||||
.. seealso::
|
||||
- `Our Privacy Policy <https://iap.odoo.com/privacy#header_6>`_.
|
||||
|
|
@@ -1,56 +0,0 @@
|
|||
==============================================================
|
||||
Digitize vendor bills with optical character recognition (OCR)
|
||||
==============================================================
|
||||
|
||||
Encoding bills manually can be a time-consuming task. Having a solution that allows you to digitize
|
||||
them and automatically import the data into your database reduces errors and saves you time.
|
||||
|
||||
.. important::
|
||||
`Try it out <https://www.odoo.com/app/invoice-automation>`_! Upload one of your Bills or try one of our samples.
|
||||
|
||||
Set up the feature
|
||||
==================
|
||||
|
||||
Go to :menuselection:`Accounting --> Settings --> Bill Digitalization`, and choose whether the bills
|
||||
should be processed automatically (with OCR) or manually (on demand).
|
||||
|
||||
.. image:: ocr/setup_ocr.png
|
||||
:align: center
|
||||
:alt: Activate the feature going to the settings application in Odoo Accounting
|
||||
|
||||
Start digitizing your bills
|
||||
---------------------------
|
||||
|
||||
Scan your bills and then go to :menuselection:`Accounting --> Vendors --> Bills` and upload your
|
||||
document. Based on your configuration, it either processes the documents automatically, or you
|
||||
need to click on *Send for Digitalization* to do it manually.
|
||||
|
||||
.. tip::
|
||||
You can also create a vendor bill through the *Documents* app or by using an email alias on your
|
||||
journals.
|
||||
|
||||
Once the data is extracted from the PDF, you can correct it if necessary by clicking on the
|
||||
respective tag (available in *Edit* mode), and selecting the right information instead.
|
||||
|
||||
.. image:: ocr/example_ocr.png
|
||||
:align: center
|
||||
:height: 580
|
||||
:alt: Example of a scanned bill in Odoo Accounting
|
||||
|
||||
.. note::
|
||||
The more bills you scan, the better the system gets at identifying the correct data.
|
||||
|
||||
Pricing
|
||||
=======
|
||||
|
||||
| The *Bill Digitalization* is an *In-App Purchase (IAP)* service which requires prepaid credits to
|
||||
work. Digitizing one document consumes one credit.
|
||||
| To buy credits, go to :menuselection:`Accounting --> Configuration --> Settings --> Bill
|
||||
Digitalization` and click on *Buy credits*, or go to :menuselection:`Settings --> Odoo IAP` and
|
||||
click on *View My Services*.
|
||||
|
||||
.. important::
|
||||
- If you are on Odoo Online (SAAS) and have the Enterprise version, you benefit from free trial
|
||||
credits to test the feature.
|
||||
.. seealso::
|
||||
- Our `Privacy Policy <https://iap.odoo.com/privacy#header_6>`_.
|
||||
|
Before Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
|
@@ -145,5 +145,18 @@ It remains possible to resequence the invoices but with some restrictions:
|
|||
#. The feature does not work if the sequence is inconsistent with the month of the entry.
|
||||
#. It does not work if the sequence leads to a duplicate.
|
||||
#. The order of the invoice remains unchanged.
|
||||
#. It is useful for people who use a numbering from another software and who want to continue the
|
||||
#. It is useful for people who use a numbering from another software and who want to continue the
|
||||
current year without starting over from the beginning.
|
||||
|
||||
Invoice digitization with optical character recognition (OCR)
|
||||
---------------------------------------------------------------
|
||||
|
||||
**Invoice digitization** is the process of automatically encoding traditional paper invoices into
|
||||
invoices forms in your accounting.
|
||||
|
||||
Odoo uses OCR and artificial intelligence technologies to recognize the content of the documents.
|
||||
Vendor bills and customer invoices forms are automatically created and populated based on scanned
|
||||
invoices.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`/applications/finance/accounting/payables/supplier_bills/invoice_digitization`
|
||||
|
|
|
|||
|
|
@@ -68,8 +68,7 @@ Click on :menuselection:`Connection is not secure --> Certificate is not valid`.
|
|||
:align: center
|
||||
:alt: The web browser indicates that the connection to the printer is not secure.
|
||||
|
||||
Go to the *Details* tab and click on **Copy to file**.
|
||||
Select X.509 in base 64 and save it.
|
||||
Go to the :guilabel:`Details` tab and click on :guilabel:`Export` Select X.509 in base 64 and save it.
|
||||
|
||||
Import the Self-signed certificate to Windows (Using Chrome)
|
||||
============================================================
|
||||
|
|
@@ -77,7 +76,7 @@ Import the Self-signed certificate to Windows (Using Chrome)
|
|||
In your Chrome browser, go to :menuselection:`Settings --> Privacy and security --> Security -->
|
||||
Manage certificates`
|
||||
|
||||
Go to the *Trusted Root Certification Authorities* tab and click on **Import** and select
|
||||
Go to the :guilabel:`Authorities` tab and click on :guilabel:`Import` and select
|
||||
your previous file. Accept all warnings and restart your browser.
|
||||
|
||||
Import the Self-signed certificate to your Android device
|
||||
|
|
|
|||
|
|
@@ -8,7 +8,6 @@ Shop Features
|
|||
:titlesonly:
|
||||
|
||||
shop/invoice
|
||||
shop/cash_control
|
||||
shop/barcode
|
||||
shop/multicashiers
|
||||
shop/reprint
|
||||
|
|
|
|||
|
|
@@ -1,63 +0,0 @@
|
|||
====================================
|
||||
Set-up Cash Control in Point of Sale
|
||||
====================================
|
||||
|
||||
Cash control allows you to check the amount of the cashbox at the
|
||||
opening and closing. You can thus make sure no error has been made and
|
||||
that no cash is missing.
|
||||
|
||||
Activate Cash Control
|
||||
=====================
|
||||
|
||||
To activate the *Cash Control* feature, go to :menuselection:`Point
|
||||
of Sales --> Configuration --> Point of sale` and select your PoS
|
||||
interface.
|
||||
|
||||
Under the payments category, you will find the cash control setting.
|
||||
|
||||
.. image:: cash_control/cash_control01.png
|
||||
:align: center
|
||||
|
||||
In this example, you can see I want to have 275$ in various denomination
|
||||
at the opening and closing.
|
||||
|
||||
When clicking on **Opening/Closing Values** you will be able to create
|
||||
those values.
|
||||
|
||||
.. image:: cash_control/cash_control02.png
|
||||
:align: center
|
||||
|
||||
Start a session
|
||||
===============
|
||||
|
||||
You now have a new button added when you open a session, *Set opening
|
||||
Balance*
|
||||
|
||||
.. image:: cash_control/cash_control03.png
|
||||
:align: center
|
||||
|
||||
.. image:: cash_control/cash_control04.png
|
||||
:align: center
|
||||
|
||||
By default it will use the values you added before, but you can always
|
||||
modify it.
|
||||
|
||||
Close a session
|
||||
===============
|
||||
|
||||
When you want to close your session, you now have a *Set Closing
|
||||
Balance* button as well.
|
||||
|
||||
You can then see the theoretical balance, the real closing balance (what
|
||||
you have just counted) and the difference between the two.
|
||||
|
||||
.. image:: cash_control/cash_control05.png
|
||||
:align: center
|
||||
|
||||
If you use the *Take Money Out* option to take out your transactions
|
||||
for this session, you now have a zero-sum difference and the same
|
||||
closing balance as your opening balance. You cashbox is ready for the
|
||||
next session.
|
||||
|
||||
.. image:: cash_control/cash_control06.png
|
||||
:align: center
|
||||
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 5.6 KiB |
|
|
@@ -220,7 +220,8 @@ Python comes with its own package manager: `pip
|
|||
a single command.
|
||||
|
||||
#. Download and install the recommended release (`see README file
|
||||
<https://github.com/odoo/documentation/tree/master/README.md>`_) of **Python 3** on your machine.
|
||||
<https://github.com/odoo/documentation/tree/saas-15.4/README.md>`_) 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
|
||||
|
|
|
|||
|
|
@@ -276,17 +276,22 @@ The last two can be used to prevent the worker from being killed when debugging
|
|||
|
||||
.. tip:: You may face an error similar to `AttributeError: module '$MODULE_NAME' has no attribute '$ATTRIBUTE'`
|
||||
|
||||
In this case you may need to re-install the module with `$ pip install --upgrade --force-reinstall $MODULE_NAME`
|
||||
In this case you may need to re-install the module with `$ pip install --upgrade --force-reinstall $MODULE_NAME`
|
||||
|
||||
If this error occurs with more than one module then you may need to re-install all the
|
||||
requirements with `$ pip3 install --upgrade --force-reinstall -r requirements.txt`
|
||||
If this error occurs with more than one module then you may need to re-install all the
|
||||
requirements with `$ pip3 install --upgrade --force-reinstall -r requirements.txt`
|
||||
|
||||
You can also clear the python cache to solve the issue
|
||||
You can also clear the python cache to solve the issue
|
||||
|
||||
.. code-block:: console
|
||||
.. code-block:: console
|
||||
|
||||
$ cd $HOME/.local/lib/python3.8/site-packages/
|
||||
$ find -name '*.pyc' -type f -delete
|
||||
$ cd $HOME/.local/lib/python3.8/site-packages/
|
||||
$ find -name '*.pyc' -type f -delete
|
||||
|
||||
.. tip:: Other commonly used arguments are:
|
||||
|
||||
* :option:`-i <odoo-bin --init>`: install some modules before running the server (comma separated list)
|
||||
* :option:`-u <odoo-bin --update>`: update some modules before running the server (comma separated list)
|
||||
|
||||
|
||||
Log in to Odoo
|
||||
|
|
|
|||
|
|
@@ -18,7 +18,7 @@ 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 <https://github.com/odoo/odoo/blob/master/odoo/addons/base/data/res.country.state.csv>`__
|
||||
`list of country states <https://github.com/odoo/odoo/blob/saas-15.4/odoo/addons/base/data/res.country.state.csv>`__
|
||||
which is loaded at installation of the ``base`` module.
|
||||
|
||||
.. code-block:: text
|
||||
|
|
|
|||
|
|
@@ -599,7 +599,7 @@ Javascript
|
|||
#. Add any step you want.
|
||||
|
||||
Every step contains at least a trigger. You can either use the `predefined steps
|
||||
<https://github.com/odoo/odoo/blob/master/addons/web_tour/static/src/js/tour_step_utils.js>`_ or write
|
||||
<https://github.com/odoo/odoo/blob/saas-15.4/addons/web_tour/static/src/js/tour_step_utils.js>`_ or write
|
||||
your own personalized step.
|
||||
|
||||
Here are some example of steps:
|
||||
|
|
|
|||
|
|
@@ -606,9 +606,10 @@ for two main purposes:
|
|||
- provide some additional tools to help developer debug the Odoo interface.
|
||||
|
||||
The `debug` mode is described by a string. An empty string means that the `debug`
|
||||
mode is not active. Otherwise, it is active. If the string contains `assets` or
|
||||
`tests`, then the corresponding specific sub modes are activated (see below). Both
|
||||
modes can be active at the same time, for example with the string `assets,tests`.
|
||||
mode is not active. Otherwise, it is active. If the string contains `assets`,
|
||||
`disable-t-cache` or `tests`, then the corresponding specific sub modes are
|
||||
activated (see below). Both modes can be active at the same time, for example
|
||||
with the string `assets,tests`.
|
||||
|
||||
The `debug` mode current value can be read in the :ref:`environment<frontend/framework/environment>`:
|
||||
`env.debug`.
|
||||
|
|
@@ -635,6 +636,16 @@ The `debug=assets` sub mode is useful to debug javascript code: once activated,
|
|||
the :ref:`assets<reference/assets>` bundles are no longer minified, and source-maps
|
||||
are generated as well. This makes it useful to debug all kind of javascript code.
|
||||
|
||||
.. _frontend/framework/t_cache_debug_mode:
|
||||
|
||||
Disable `t-cache`
|
||||
-----------------
|
||||
|
||||
The `debug=disable-t-cache` sub mode is useful to debug python `t-cache` and
|
||||
`t-nocache` directives. By activating this debugging mode, the contents of the
|
||||
`t-cache` directives will be rendered each time. It is therefore possible to
|
||||
compare the real time rendering with that which is cached.
|
||||
|
||||
.. _frontend/framework/tests_debug_mode:
|
||||
|
||||
Tests mode
|
||||
|
|
|
|||
|
|
@@ -684,9 +684,9 @@ Will render (counter = 1)::
|
|||
<footer>(views: 10)</footer>
|
||||
</section>
|
||||
|
||||
Here the ``<i>`` tag that contains the container will always be rendered. While
|
||||
the rest is as a single string in the cache. The counter is not updated by the
|
||||
``t-set`` out of the ``t-nocache``
|
||||
Here the ``<header>`` and ``<i>`` tags will always be rendered. While the rest
|
||||
is as a single string in the cache. The counter is not updated by the ``t-set``
|
||||
out of the ``t-nocache``
|
||||
|
||||
``t-nocache-*`` add some primitive values in the cache
|
||||
'''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
||||
|
|
@@ -713,6 +713,10 @@ Example::
|
|||
The value ``cached_value`` is cached with the cached template part of
|
||||
``t-cache="records"`` and add to the scoped root values each time.
|
||||
|
||||
.. seealso::
|
||||
- :ref:`Debug mode <frontend/framework/t_cache_debug_mode>`
|
||||
|
||||
|
||||
Helpers
|
||||
-------
|
||||
|
||||
|
|
|
|||
|
|
@@ -62,16 +62,22 @@
|
|||
</nav>
|
||||
</noscript>
|
||||
{# Shown when the JS has properly set all the classes on the TOC elements #}
|
||||
<nav id="o_main_toctree" class="o_side_nav border-end" hidden>
|
||||
{%- include "layout_templates/menu.html" %}
|
||||
<nav id="o_menu" class="o_side_nav">
|
||||
<div class="o_mobile-overlay" data-bs-toggle="collapse" data-bs-target="#o_menu"></div>
|
||||
<div class="o_side_nav-inner border-end">
|
||||
{%- if 'hide-page-toc' not in meta %}
|
||||
{# Shown when the JS has properly set all the classes on the TOC elements #}
|
||||
<aside id="o_page_toc_in_nav" class="o_page_toc o_in_nav_toc border-bottom pt-3 pb-3" hidden>
|
||||
{%- include "layout_templates/page_toc.html" %}
|
||||
</aside>
|
||||
{%- endif %}
|
||||
<div id="o_main_toctree" class="o_main_toc mt-3" hidden>
|
||||
{%- include "layout_templates/menu.html" %}
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<header class="o_main_header border-bottom navbar navbar-light navbar-expand-lg">
|
||||
<header class="o_headers">
|
||||
{%- include "layout_templates/header.html" %}
|
||||
<button class="navbar-toggler p-0 border-0" type="button" data-bs-toggle="collapse" data-bs-target="#o_main_toctree" aria-label="Toggle navigation">
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
</header>
|
||||
{%- endblock %}
|
||||
|
||||
|
|
|
|||
|
|
@@ -1,12 +1,23 @@
|
|||
<div class="o_logo_wrapper">
|
||||
<div class="o_main_header border-bottom d-flex align-items-center">
|
||||
<div class="o_logo_wrapper">
|
||||
<a href="{{ pathto(master_doc) }}" class="o_logo">
|
||||
<img src="{{ pathto('_static/img/logos/odoo_logo.svg', 1) }}" height="20" alt="Odoo"/>
|
||||
<span>docs</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="d-flex flex-grow-1">
|
||||
{%- include "layout_templates/searchbox.html" %}
|
||||
<a class="btn btn-primary fw_semibold ms-auto d-none d-lg-inline-block" href="https://odoo.com/trial">{{ _('Try Odoo for FREE') }}</a>
|
||||
</div>
|
||||
</div>
|
||||
{%- include "layout_templates/searchbox.html" %}
|
||||
<div class="d-none d-lg-flex ms-auto">
|
||||
{%- include "layout_templates/language_switcher.html" %}
|
||||
{%- include "layout_templates/version_switcher.html" %}
|
||||
<a class="btn btn-primary fw_semibold" href="https://odoo.com/trial">{{ _('Try Odoo for FREE') }}</a>
|
||||
<div class="o_subheader border-bottom d-flex">
|
||||
<div class="o_side_nav_toggler_wrapper border-end d-flex d-lg-none">
|
||||
<button class="h-100 border-0" type="button" data-bs-toggle="collapse" data-bs-target="#o_menu" aria-label="Toggle navigation">
|
||||
<i class="i-sidepanel"></i>
|
||||
</button>
|
||||
</div>
|
||||
<div class="d-flex justify-content-end ms-auto">
|
||||
{%- include "layout_templates/language_switcher.html" %}
|
||||
{%- include "layout_templates/version_switcher.html" %}
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@@ -1,13 +1,13 @@
|
|||
<div class="o_languages me-3">
|
||||
<div class="o_languages">
|
||||
<div class="dropdown">
|
||||
{%- if alternate_languages|length > 0 %}
|
||||
<button class="btn border dropdown-toggle"
|
||||
<button class="btn btn-sm dropdown-toggle"
|
||||
id="languages"
|
||||
data-bs-toggle="dropdown">
|
||||
{{ language }} {# The current language #}
|
||||
</button>
|
||||
{%- else %}
|
||||
<button class="btn border dropdown-toggle"
|
||||
<button class="btn btn-sm dropdown-toggle"
|
||||
id="languages"
|
||||
disabled="">
|
||||
{{ language }} {# The current language #}
|
||||
|
|
|
|||
|
|
@@ -1,5 +1,5 @@
|
|||
{# NOTE: the 'searchbox' id is used to hook the "Hide Search Matches" button #}
|
||||
<div id="searchbox" class="o_search_wrapper pe-lg-2" role="search">
|
||||
<div id="searchbox" class="o_search_wrapper d-flex flex-grow-1" role="search">
|
||||
<form class="o_search" action="{{ pathto('search') }}" method="get">
|
||||
<input type="text" name="q" id="q" class="form-control rounded-pill" placeholder="What are you looking for?">
|
||||
<input type="hidden" name="area" value="default">
|
||||
|
|
|
|||
|
|
@@ -1,27 +1,22 @@
|
|||
<div class="o_versions row gx-2 me-3">
|
||||
<div class="col align-self-center">
|
||||
<label class="fw_bold small ms-2">Version</label>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="dropdown">
|
||||
{%- if alternate_versions|length > 0 %}
|
||||
<button class="btn border dropdown-toggle"
|
||||
id="versions"
|
||||
data-bs-toggle="dropdown">
|
||||
{{ version_display_name }} {# The current version #}
|
||||
</button>
|
||||
{%- else %}
|
||||
<button class="btn border dropdown-toggle"
|
||||
id="versions"
|
||||
disabled="">
|
||||
{{ version_display_name }} {# The current version #}
|
||||
</button>
|
||||
{%- endif %}
|
||||
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="versions">
|
||||
{%- for alternate_version, url in alternate_versions %}
|
||||
<li><a class="dropdown-item" href="{{ url }}">{{ alternate_version }}</a></li>
|
||||
{%- endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="o_versions row">
|
||||
<div class="dropdown">
|
||||
{%- if alternate_versions|length > 0 %}
|
||||
<button class="btn btn-sm dropdown-toggle"
|
||||
id="versions"
|
||||
data-bs-toggle="dropdown">
|
||||
{{ version_display_name }} {# The current version #}
|
||||
</button>
|
||||
{%- else %}
|
||||
<button class="btn btn-sm dropdown-toggle"
|
||||
id="versions"
|
||||
disabled="">
|
||||
{{ version_display_name }} {# The current version #}
|
||||
</button>
|
||||
{%- endif %}
|
||||
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="versions">
|
||||
{%- for alternate_version, url in alternate_versions %}
|
||||
<li><a class="dropdown-item" href="{{ url }}">{{ alternate_version }}</a></li>
|
||||
{%- endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@@ -71,6 +71,8 @@
|
|||
<glyph unicode="" glyph-name="translate" d="M1015.125 501.931c-6.245 20.5-19.316 37.337-36.513 48.261l-0.351 0.209c11.45 26.665 18.109 57.701 18.109 90.291 0 1.017-0.006 2.033-0.019 3.047l0.002-0.154c-2.675 174.017-144.368 314.057-318.77 314.057-171.16 0-310.817-134.882-318.475-304.152l-0.025-0.689c-5.203 0.325-11.284 0.51-17.408 0.51s-12.205-0.185-18.238-0.55l0.83 0.040c-0.412 0.002-0.9 0.003-1.387 0.003-174.187 0-315.641-140.145-317.757-313.829l-0.002-0.2c0-0.053 0-0.116 0-0.18 0-76.087 27.208-145.819 72.426-199.998l-0.404 0.498c-4.437-8.192-9.557-15.701-14.677-23.552l-5.803-8.875-3.413-3.072c-9.724-7.694-15.906-19.494-15.906-32.738 0-1.453 0.074-2.889 0.22-4.304l-0.015 0.178c2.308-12.286 10.394-22.288 21.27-27.212l0.234-0.095c8.786-3.545 18.975-5.602 29.644-5.602 4.842 0 9.585 0.424 14.194 1.236l-0.489-0.071c29.712 1.725 57.287 9.223 82.167 21.382l-1.271-0.561c41.713-20.681 90.834-32.781 142.781-32.781 56.444 0 109.552 14.286 155.904 39.44l-1.725-0.856c10.402 5.448 17.378 16.168 17.378 28.516 0 17.72-14.365 32.085-32.085 32.085-5.895 0-11.418-1.59-16.165-4.364l0.152 0.082c-35.749-19.046-78.179-30.231-123.221-30.231s-87.472 11.185-124.663 30.929l1.442-0.698c-5.766 2.592-12.499 4.101-19.584 4.101-9.422 0-18.22-2.67-25.68-7.294l0.209 0.12c-7.18-3.628-15.67-6.994-24.482-9.613l-1.118-0.285 4.096 9.216c2.731 5.12 8.192 21.163 8.192 21.163 0.9 2.774 1.418 5.966 1.418 9.279 0 8.829-3.684 16.798-9.599 22.454l-0.012 0.011c-42.118 44.397-68.080 104.482-68.267 170.629v0.037c0.575 139.629 113.899 252.598 253.609 252.598 0.841 0 1.681-0.004 2.52-0.012l-0.128 0.001c14.202-0.131 28.013-1.367 41.477-3.627l-1.541 0.214c11.249-58.161 37.136-108.996 73.67-150.17l-0.283 0.325h-94.208v29.355c0 17.72-14.365 32.085-32.085 32.085s-32.085-14.365-32.085-32.085v0-29.355h-108.544c-0.991 0.109-2.141 0.171-3.305 0.171-17.72 0-32.085-14.365-32.085-32.085s14.365-32.085 32.085-32.085c1.164 0 2.314 0.062 3.446 0.183l-0.141-0.012h197.632c-12.626-32.539-31.833-60.082-56.139-82.1l-0.181-0.161c-10.306 12.265-19.599 26.025-27.375 40.712l-0.614 1.272c-5.707 9.406-15.892 15.594-27.523 15.594-17.72 0-32.085-14.365-32.085-32.085 0-4.264 0.832-8.333 2.341-12.055l-0.077 0.215c10.784-20.637 22.685-38.424 36.25-54.78l-0.41 0.508c-11.758-8.647-25.151-17.131-39.118-24.689l-1.842-0.911c-9.899-6.094-16.399-16.87-16.399-29.165 0-5.143 1.138-10.021 3.175-14.395l-0.088 0.21c5.412-10.222 15.98-17.067 28.147-17.067 0.064 0 0.129 0 0.193 0.001h-0.010c5.498 0.092 10.654 1.47 15.207 3.844l-0.189-0.090c22.122 12.315 40.859 24.515 58.708 37.838l-1.364-0.974c19.414-15.792 42.076-28.547 66.71-37.078l1.556-0.469c1.436-0.238 3.092-0.374 4.779-0.374s3.342 0.136 4.955 0.398l-0.177-0.024c17.398 0.415 31.343 14.618 31.343 32.077 0 14.034-9.010 25.963-21.56 30.319l-0.225 0.068c-14.706 4.894-27.478 11.375-39.065 19.44l0.494-0.325c36.018 32.678 62.307 75.477 74.39 123.899l0.362 1.711h18.773c14.024 0.107 25.875 9.291 29.974 21.962l0.063 0.225c46.017-36.536 103.332-60.747 165.958-66.8l1.295-0.101-112.64-202.411c-2.528-4.424-4.018-9.723-4.018-15.37 0-2.171 0.22-4.29 0.64-6.337l-0.035 0.202 22.187-122.539c3.405-17.68 14.402-32.266 29.392-40.466l0.304-0.153c7.922-4.223 17.311-6.739 27.279-6.826h0.027c8.275 0.038 16.131 1.793 23.243 4.926l-0.374-0.147 116.395 48.811c6.345 3.002 11.475 7.693 14.932 13.497l0.086 0.157 241.323 431.104c7.243 12.276 11.522 27.049 11.522 42.822 0 8.833-1.342 17.353-3.834 25.367l0.162-0.605zM942.080 498.517c5.631-2.987 9.818-8.065 11.565-14.172l0.040-0.164c0.591-2.008 0.932-4.316 0.932-6.703 0-4.299-1.104-8.341-3.044-11.856l0.064 0.127-15.019-26.965-115.712 64.171 14.677 26.283c4.367 7.225 12.18 11.98 21.103 11.98 4.138 0 8.037-1.023 11.458-2.829l-0.134 0.064zM677.547 392.704c-0.408-0.002-0.891-0.004-1.374-0.004-139.347 0-252.445 112.383-253.602 251.457l-0.001 0.11c0 140.819 114.157 254.976 254.976 254.976s254.976-114.157 254.976-254.976v0c0.003-0.349 0.004-0.762 0.004-1.175 0-21.885-4.007-42.835-11.328-62.154l0.401 1.207-23.552 12.629c-11.902 6.435-26.053 10.217-41.087 10.217-22.233 0-42.535-8.271-57.996-21.905l0.096 0.083-98.987 216.405c-5.157 11.114-16.19 18.699-29.004 18.773h-0.010c-12.994-0.108-24.117-8.007-28.935-19.249l-0.079-0.207-95.915-227.328c-1.586-3.672-2.509-7.947-2.509-12.438 0-13.202 7.974-24.542 19.368-29.466l0.208-0.080c3.717-1.512 8.029-2.389 12.546-2.389 0.029 0 0.058 0 0.088 0h-0.005c0.025 0 0.055 0 0.085 0 13.095 0 24.339 7.93 29.19 19.249l0.079 0.207 15.019 37.888h108.203l17.408-37.888c3.231-7.397 9.165-13.11 16.523-15.973l0.202-0.069-77.824-138.581c-2.105 0.366-4.578 0.611-7.095 0.681l-0.073 0.002zM699.051 648.021h-50.517l24.917 58.709zM714.069 44.203l-97.621-41.643-19.115 102.4 192.171 341.333 115.712-63.829z" />
|
||||
<glyph unicode="" glyph-name="tutorial" d="M149.504 243.2s198.656 23.552 290.475-77.483c3.413-10.581 9.216-12.288 19.797-15.36 1.334-0.237 2.87-0.372 4.437-0.372s3.103 0.135 4.596 0.395l-0.159-0.023c9.98 0.312 18.839 4.862 24.879 11.901l0.038 0.046c3.357 3.943 5.761 8.797 6.795 14.141l0.032 0.195c0.335 1.796 0.527 3.862 0.527 5.973s-0.192 4.177-0.558 6.182l0.032-0.209v74.752c0 17.72-14.365 32.085-32.085 32.085v0c-0.001 0-0.001 0-0.002 0-17.6 0-31.891-14.171-32.083-31.726v-10.258c-65.78 37.137-144.436 59.018-228.202 59.018-10.741 0-21.398-0.36-31.96-1.068l1.431 0.077v482.645c55.979-10.581 165.888-38.229 230.059-102.4 5.545-4.701 12.782-7.559 20.687-7.559 17.72 0 32.085 14.365 32.085 32.085 0 7.99-2.92 15.297-7.752 20.914l0.035-0.042c-104.448 102.4-295.595 124.587-303.787 125.611-1.029 0.118-2.222 0.186-3.43 0.186-8.299 0-15.853-3.184-21.509-8.398l0.022 0.020c-6.26-5.966-10.252-14.263-10.58-23.493l-0.002-0.059v-553.643c0.232-9.586 4.381-18.16 10.901-24.215l0.021-0.020c5.638-6.159 13.713-10.007 22.686-10.007 0.905 0 1.802 0.039 2.687 0.116l-0.115-0.008zM542.037 633.344c4.208-2.201 9.191-3.493 14.476-3.493 12.467 0 23.256 7.187 28.449 17.644l0.083 0.185c47.445 95.573 194.56 133.803 262.827 146.432v-482.645c-9.296 0.654-20.145 1.027-31.080 1.027-83.544 0-162.005-21.765-230.021-59.935l2.37 1.222c0 8.875 0 18.773 0 29.696 0 17.532-14.212 31.744-31.744 31.744v0 0c-17.72 0-32.085-14.365-32.085-32.085v-93.525c-0.325-1.898-0.511-4.085-0.511-6.315s0.186-4.416 0.543-6.545l-0.032 0.23c3.677-14.57 16.373-25.291 31.674-25.939l0.070-0.002c1.385-0.237 2.981-0.373 4.608-0.373s3.223 0.136 4.776 0.396l-0.168-0.023c9.557 2.731 15.36 4.437 18.773 14.677 91.136 102.4 289.109 78.165 291.157 78.165 1.452-0.246 3.124-0.386 4.829-0.386 7.878 0 15.056 2.999 20.454 7.917l-0.024-0.022c6.542 6.075 10.691 14.649 10.922 24.193l0.001 0.042v556.032c-0.156 17.601-14.461 31.81-32.084 31.81-0.721 0-1.436-0.024-2.146-0.071l0.096 0.005c-10.923 0-271.019-30.379-348.843-187.392-2.341-4.316-3.718-9.451-3.718-14.907 0-11.88 6.526-22.235 16.188-27.678l0.159-0.082zM1013.76 721.067c-15.842 14.454-35.437 25.064-57.148 30.203l-0.878 0.175c-1.59 0.274-3.422 0.431-5.291 0.431-18.053 0-32.687-14.634-32.687-32.687 0-16.184 11.762-29.621 27.204-32.229l0.192-0.027c5.565-1.185 10.484-3.317 14.827-6.239l-0.15 0.095v-505.856c-45.529 7.313-98.018 11.491-151.484 11.491-72.417 0-143.044-7.665-211.114-22.229l6.587 1.181c-12.547-3.875-21.875-14.458-23.869-27.458l-0.024-0.19v-13.995c-1.090-14.75-13.325-26.304-28.258-26.304-0.386 0-0.77 0.008-1.151 0.023l0.055-0.002h-77.483c-0.321-0.013-0.697-0.021-1.075-0.021-14.865 0-27.023 11.588-27.935 26.223l-0.004 0.080v10.581c0 0.012 0 0.026 0 0.039 0 14.808-10.031 27.273-23.669 30.97l-0.225 0.052c-61.483 13.383-132.11 21.049-204.527 21.049-53.465 0-105.955-4.178-157.159-12.226l5.676 0.735v507.221c4.243 2.362 9.197 4.046 14.461 4.755l0.216 0.024c15.634 2.635 27.396 16.072 27.396 32.256 0 18.053-14.634 32.687-32.687 32.687-1.868 0-3.7-0.157-5.483-0.458l0.192 0.027c-22.589-5.315-42.185-15.925-58.128-30.47l0.102 0.091c-6.134-6.011-10.007-14.307-10.239-23.509l-0.001-0.043v-560.811c-0.001-0.107-0.002-0.234-0.002-0.361 0-9.763 4.505-18.474 11.549-24.169l0.059-0.046c5.52-4.764 12.764-7.665 20.686-7.665 1.978 0 3.914 0.181 5.792 0.527l-0.195-0.030c53.202 9.333 114.46 14.668 176.964 14.668 58.748 0 116.395-4.713 172.584-13.782l-6.167 0.821c8.469-43.063 45.918-75.098 90.85-75.098 0.341 0 0.681 0.002 1.021 0.006h76.407c0.558-0.012 1.215-0.019 1.874-0.019 44.803 0 82.112 32.090 90.195 74.539l0.091 0.573c49.24 8.023 105.997 12.607 163.824 12.607 63.797 0 126.29-5.579 187.019-16.276l-6.437 0.939c1.683-0.316 3.619-0.497 5.597-0.497 7.922 0 15.165 2.902 20.727 7.7l-0.041-0.035c7.103 5.74 11.607 14.451 11.607 24.215 0 0.127-0.001 0.254-0.002 0.381v-0.019 562.517c-0.419 8.994-4.257 17.017-10.234 22.863l-0.006 0.006zM726.357 486.912c0.001 0.081 0.001 0.177 0.001 0.273 0 11.78-6.558 22.029-16.222 27.294l-0.163 0.081-300.373 169.984c-4.512 2.613-9.927 4.155-15.701 4.155-17.532 0-31.744-14.212-31.744-31.744 0-0.021 0-0.042 0-0.062v0.003-341.333c0-0.018 0-0.040 0-0.061 0-11.674 6.235-21.893 15.557-27.506l0.145-0.081c4.534-2.787 10.027-4.438 15.905-4.438 0.049 0 0.097 0 0.146 0h-0.007c0.031 0 0.067 0 0.104 0 5.733 0 11.111 1.52 15.753 4.178l-0.155-0.082 301.056 170.667c9.476 5.692 15.719 15.916 15.719 27.598 0 0.378-0.007 0.754-0.019 1.129l0.001-0.054zM425.301 371.541v230.4l204.8-115.029z" />
|
||||
<glyph unicode="" glyph-name="users" d="M512 355.84c-80.495 0-145.749 65.254-145.749 145.749s65.254 145.749 145.749 145.749c80.495 0 145.749-65.254 145.749-145.749 0-0.12 0-0.24 0-0.36v0.019c-0.194-80.348-65.374-145.408-145.749-145.408 0 0 0 0-0.001 0v0zM512 584.533c-0.101 0-0.221 0.001-0.341 0.001-45.243 0-81.92-36.677-81.92-81.92s36.677-81.92 81.92-81.92c45.243 0 81.92 36.676 81.92 81.919v0c0 0 0 0 0 0.001 0 45.123-36.483 81.725-81.56 81.919h-0.018zM512 48.299c-166.912 0-242.347 71.339-245.419 74.411l-9.557 9.216v13.653c-0.001 0.249-0.001 0.544-0.001 0.838 0 88.823 45.479 167.025 114.422 212.588l0.95 0.59c5.573 4.791 12.876 7.708 20.862 7.708 17.72 0 32.085-14.365 32.085-32.085 0-12.909-7.624-24.038-18.615-29.129l-0.198-0.082c-48.611-31.869-81.428-84.377-85.978-144.773l-0.038-0.635c49.99-30.683 110.525-48.856 175.305-48.856 5.692 0 11.351 0.14 16.974 0.418l-0.791-0.031c4.546-0.218 9.875-0.342 15.232-0.342 64.75 0 125.259 18.156 176.714 49.655l-1.482-0.844c-4.752 60.983-37.518 113.431-85.302 144.965l-0.714 0.443c-11.19 5.174-18.814 16.302-18.814 29.212 0 17.72 14.365 32.085 32.085 32.085 7.985 0 15.289-2.917 20.904-7.743l-0.042 0.036c69.893-46.153 115.372-124.354 115.372-213.178 0-0.295-0.001-0.589-0.002-0.884v0.045-13.653l-9.557-9.216c-2.048-3.072-77.483-74.411-244.395-74.411zM254.976 556.544c-80.495 0-145.749 65.254-145.749 145.749s65.254 145.749 145.749 145.749c80.495 0 145.749-65.254 145.749-145.749 0-0.12 0-0.24 0-0.36v0.019c0 0 0 0 0 0 0-80.307-65.101-145.408-145.408-145.408-0.12 0-0.24 0-0.36 0h0.019zM254.976 783.872c-0.101 0-0.221 0.001-0.341 0.001-45.243 0-81.92-36.677-81.92-81.92s36.677-81.92 81.92-81.92c45.243 0 81.92 36.676 81.92 81.919v0c0 0 0 0 0 0.001 0 45.123-36.483 81.725-81.56 81.919h-0.018zM200.704 251.733h-3.413c-71.644 3.816-136.497 30.086-188.367 71.832l0.634-0.493-9.557 9.557v12.971c-0.001 0.249-0.001 0.544-0.001 0.838 0 88.823 45.479 167.025 114.422 212.588l0.95 0.59c4.951 3.282 11.031 5.237 17.567 5.237 11.157 0 20.983-5.694 26.732-14.335l0.074-0.118c2.85-4.879 4.532-10.741 4.532-16.996 0-11.17-5.366-21.087-13.66-27.314l-0.088-0.063c-48.35-32.119-81.049-84.489-85.971-144.721l-0.045-0.687c40.072-24.904 87.931-41.156 139.25-44.994l1.038-0.062c16.031-1.553 28.462-14.957 28.462-31.265 0-1.010-0.048-2.009-0.141-2.994l0.010 0.126c-1.103-16.632-14.864-29.705-31.678-29.705-0.263 0-0.525 0.003-0.787 0.010l0.039-0.001zM769.024 556.544c-0.101 0-0.221 0-0.341 0-80.495 0-145.749 65.254-145.749 145.749s65.254 145.749 145.749 145.749c80.495 0 145.749-65.254 145.749-145.749 0-0.12 0-0.24 0-0.36v0.019c-0.194-80.228-65.179-145.214-145.389-145.408h-0.019zM769.024 783.872c-0.101 0-0.221 0.001-0.341 0.001-45.243 0-81.92-36.677-81.92-81.92s36.677-81.92 81.92-81.92c45.243 0 81.92 36.676 81.92 81.919v0c-0.191 45.046-36.56 81.535-81.542 81.92h-0.037zM823.296 251.733c-16.252 0.793-29.467 12.839-32.058 28.473l-0.027 0.199c-0.049 0.665-0.077 1.44-0.077 2.222 0 16.545 12.523 30.165 28.607 31.899l0.142 0.012c52.182 4.239 99.769 20.704 140.909 46.501l-1.304-0.762c-4.967 60.919-37.666 113.289-85.309 144.966l-0.707 0.442c-11.19 5.174-18.814 16.302-18.814 29.212 0 17.72 14.365 32.085 32.085 32.085 7.985 0 15.289-2.917 20.904-7.743l-0.042 0.036c70.295-46.16 116.134-124.536 116.395-213.635v-13.692l-9.557-9.216c-51.237-41.253-116.090-67.523-186.913-71.304l-0.82-0.035z" />
|
||||
<glyph unicode="" glyph-name="external-link" d="M851.627 475.307c-18.773 0-34.133-15.36-34.133-34.133v-400.725c0-19.797-16.043-35.84-35.84-35.84h-677.205c-19.797 0-35.84 16.043-35.84 35.84v676.864c0 19.797 16.043 35.84 35.84 35.84h391.168c18.773 0 34.133 15.36 34.133 34.133s-15.36 34.133-34.133 34.133h-391.168c-57.685 0-104.448-46.763-104.448-104.448v-676.523c0-57.685 46.763-104.448 104.448-104.448h676.864c57.685 0 104.448 46.763 104.448 104.448v400.725c0 18.773-15.36 34.133-34.133 34.133zM989.867 960h-314.709c-18.773 0-34.133-15.36-34.133-34.133s15.36-34.133 34.133-34.133h229.376l-486.059-489.131c-12.971-13.312-12.971-34.475 0.341-47.787s34.475-13.312 47.787 0l488.789 490.837v-232.448c0-18.773 15.36-34.133 34.133-34.133s34.133 15.36 34.133 34.133v312.661c0 18.773-15.36 34.133-34.133 34.133z" />
|
||||
<glyph unicode="" glyph-name="sidepanel" d="M923.648 953.515h-823.296c-53.589 0-96.939-43.349-96.939-96.939v-817.152c0-53.589 43.691-96.939 96.939-96.939h823.296c53.589 0 96.939 43.349 96.939 96.939v817.152c0 53.589-43.691 96.939-96.939 96.939zM71.68 39.424v817.152c0 15.701 12.971 28.672 28.672 28.672h260.096v-874.496h-260.096c-15.701 0-28.672 12.971-28.672 28.672zM952.32 39.424c0-15.701-12.971-28.672-28.672-28.672h-494.933v874.496h494.933c15.701 0 28.672-12.971 28.672-28.672v-817.152zM248.149 682.155h-64.171c-18.773 0-34.133-15.36-34.133-34.133s15.36-34.133 34.133-34.133h64.171c18.773 0 34.133 15.36 34.133 34.133s-15.36 34.133-34.133 34.133zM248.149 482.133h-64.171c-18.773 0-34.133-15.36-34.133-34.133s15.36-34.133 34.133-34.133h64.171c18.773 0 34.133 15.36 34.133 34.133s-15.36 34.133-34.133 34.133zM248.149 282.112h-64.171c-18.773 0-34.133-15.36-34.133-34.133s15.36-34.133 34.133-34.133h64.171c18.773 0 34.133 15.36 34.133 34.133s-15.36 34.133-34.133 34.133z" />
|
||||
<glyph unicode="" glyph-name="warning" d="M512 366.080c-18.851 0-34.133 15.282-34.133 34.133v0 266.923c3.841 14.958 17.205 25.835 33.109 25.835s29.268-10.877 33.058-25.599l0.052-0.237v-267.947c-0.516-17.722-14.464-32.025-31.989-33.105l-0.097-0.005zM561.493 235.349c0-27.334-22.159-49.493-49.493-49.493s-49.493 22.159-49.493 49.493c0 27.334 22.159 49.493 49.493 49.493s49.493-22.159 49.493-49.493zM512-58.539c-0.175 0-0.383 0-0.59 0-85.883 0-166.872 20.95-238.137 58.018l2.866-1.356-7.168-2.731c-37.904-18.971-82.226-31.259-129.098-34.088l-0.95-0.046c-5.386-0.637-11.624-1.001-17.947-1.001-15.234 0-29.975 2.11-43.948 6.054l1.137-0.274c-12.674 5.358-21.951 16.554-24.535 30.123l-0.041 0.256c-0.067 0.972-0.105 2.106-0.105 3.25 0 16.486 7.897 31.128 20.115 40.349l0.128 0.092c2.976 2.392 5.561 5.085 7.768 8.074l0.083 0.118 10.923 16.384c9.496 13.456 19.331 29.181 28.329 45.435l1.367 2.693v4.437c-75.931 87.53-122.203 202.576-122.203 328.43 0 0.816 0.002 1.632 0.006 2.448v-0.126c0 282.77 229.23 512 512 512s512-229.23 512-512v0c-1.933-280.169-229.5-506.543-509.941-506.543-0.724 0-1.447 0.002-2.17 0.005h0.111zM280.235 65.707c0.213 0.005 0.465 0.007 0.717 0.007 6.372 0 12.359-1.647 17.559-4.539l-0.185 0.094c61.793-33.917 135.397-53.886 213.661-53.931h0.014c0.611-0.003 1.335-0.005 2.059-0.005 243.989 0 441.984 196.922 443.722 440.501l0.001 0.165c0 246.198-199.583 445.781-445.781 445.781s-445.781-199.583-445.781-445.781v0c0-0.193 0-0.421 0-0.649 0-116.103 45.5-221.578 119.641-299.568l-0.174 0.185c5.58-6.057 9.001-14.177 9.001-23.097 0-3.951-0.671-7.746-1.906-11.276l0.073 0.239c-3.792-12.731-7.853-23.372-12.589-33.637l0.642 1.552c-12.032-21.257-23.322-38.868-35.435-55.851l1.301 1.92c34.959 3.899 66.833 13.685 95.797 28.379l-1.589-0.731c11.435 5.785 24.829 9.484 39.006 10.23l0.247 0.010zM151.552 98.133v0zM151.552 98.133v0z" />
|
||||
<glyph unicode="" glyph-name="websites" d="M754.005 745.301c13.385-30.015 21.179-65.040 21.179-101.886 0-1.021-0.006-2.040-0.018-3.058l0.001 0.155c0.006-0.64 0.009-1.397 0.009-2.155 0-36.984-7.791-72.149-21.821-103.942l0.649 1.649c-1.658-3.722-2.623-8.066-2.623-12.635 0-17.532 14.212-31.744 31.744-31.744 0.202 0 0.404 0.002 0.605 0.006h-0.030c0.025 0 0.055 0 0.085 0 13.095 0 24.339 7.93 29.19 19.249l0.079 0.207c16.611 38.226 26.274 82.753 26.274 129.536s-9.663 91.31-27.102 131.692l0.829-2.156c-17.339 41.245-41.452 76.412-71.295 105.771l-0.043 0.042c-5.765 5.765-13.73 9.331-22.528 9.331-17.595 0-31.859-14.264-31.859-31.859 0-8.798 3.566-16.763 9.331-22.528v0c23.967-23.869 43.342-52.329 56.698-83.951l0.646-1.723zM931.499 807.424c-24.028 55.679-56.599 103.235-96.609 143.372l0.012-0.012c-5.807 5.813-13.833 9.408-22.699 9.408s-16.891-3.596-22.698-9.408v0c-5.793-5.753-9.38-13.721-9.38-22.528s3.586-16.775 9.378-22.526l0.002-0.002c34.619-34.218 62.631-75.033 82.009-120.416l0.935-2.464c19.2-44.384 30.367-96.066 30.367-150.357s-11.168-105.974-31.331-152.876l0.963 2.519c-1.586-3.672-2.509-7.947-2.509-12.438 0-13.202 7.974-24.542 19.368-29.466l0.208-0.080c3.551-1.512 7.682-2.39 12.018-2.39 0.095 0 0.19 0 0.285 0.001h-0.015c0.060 0 0.13-0.001 0.201-0.001 13.157 0 24.464 7.919 29.415 19.25l0.080 0.207c21.598 50.426 34.155 109.106 34.155 170.719 0 1.542-0.008 3.082-0.024 4.621l0.002-0.235c0.014 1.303 0.022 2.843 0.022 4.385 0 61.613-12.557 120.293-35.252 173.62l1.097-2.902zM187.392 640.853c0-0.188-0.001-0.411-0.001-0.634 0-46.626 9.668-90.993 27.108-131.208l-0.825 2.135c4.93-11.526 16.174-19.456 29.269-19.456 0.030 0 0.060 0 0.090 0h-0.005c0.025 0 0.054 0 0.083 0 4.517 0 8.829 0.877 12.775 2.471l-0.229-0.082c11.758 4.936 19.866 16.355 19.866 29.667 0 4.445-0.904 8.678-2.537 12.527l0.079-0.21c-13.521 31.012-21.388 67.142-21.388 105.11 0 74.081 29.949 141.167 78.4 189.81l-0.009-0.009c5.793 5.753 9.38 13.721 9.38 22.528s-3.586 16.775-9.378 22.526l-0.002 0.002c-5.807 5.813-13.833 9.408-22.699 9.408s-16.891-3.596-22.698-9.408v0c-60.312-60.239-97.621-143.498-97.621-235.472 0-0.017 0-0.034 0-0.051v0.002zM134.485 439.808c11.668 4.975 19.699 16.349 19.699 29.598 0 4.601-0.969 8.977-2.713 12.933l0.081-0.205c-19.176 44.316-30.33 95.921-30.33 150.132 0 106.625 43.15 203.171 112.941 273.129l-0.008-0.008c5.765 5.765 9.331 13.73 9.331 22.528 0 17.595-14.264 31.859-31.859 31.859-8.798 0-16.763-3.566-22.528-9.331v0c-81.386-80.892-131.758-192.907-131.758-316.687 0-0.625 0.001-1.25 0.004-1.874v0.096c-0.014-1.303-0.022-2.843-0.022-4.385 0-61.613 12.557-120.293 35.252-173.62l-1.097 2.902c5.701-11.36 17.258-19.019 30.605-19.019 4.079 0 7.991 0.715 11.617 2.028l-0.238-0.075zM485.376 485.547v-394.923c-0.109-0.991-0.171-2.141-0.171-3.305 0-17.72 14.365-32.085 32.085-32.085s32.085 14.365 32.085 32.085c0 1.164-0.062 2.314-0.183 3.446l0.012-0.141v394.923c58.562 14.82 101.205 67.049 101.205 129.238 0 73.52-59.6 133.12-133.12 133.12s-133.12-59.6-133.12-133.12c0-62.189 42.644-114.417 100.285-129.040l0.92-0.198zM517.12 683.52c37.703 0 68.267-30.564 68.267-68.267s-30.564-68.267-68.267-68.267c-37.703 0-68.267 30.564-68.267 68.267v0c0 37.703 30.564 68.267 68.267 68.267v0zM642.389 238.421c-0.779 0.068-1.685 0.107-2.6 0.107-16.246 0-29.642-12.205-31.519-27.945l-0.015-0.151c-0.051-0.676-0.080-1.464-0.080-2.259 0-16.425 12.342-29.968 28.258-31.859l0.152-0.015c160.085-17.749 226.645-63.829 226.645-84.309 0-32.085-131.072-90.795-345.088-90.795s-344.747 58.709-344.747 90.795c0 20.48 69.973 68.267 232.107 84.992 16.049 1.732 28.434 15.205 28.434 31.571 0 0.902-0.038 1.795-0.111 2.678l0.008-0.116c-2.868 16.194-16.835 28.334-33.637 28.334-0.174 0-0.349-0.001-0.523-0.004h0.026c-68.267-7.168-289.451-38.912-289.451-148.48 0-102.4 204.8-154.624 409.6-154.624s409.6 53.248 409.6 154.624c-3.413 107.861-220.501 140.288-287.061 147.456z" />
|
||||
<glyph unicode="" glyph-name="arrow-down" d="M824.32 299.861c-5.807 5.813-13.833 9.408-22.699 9.408s-16.891-3.596-22.698-9.408v0l-234.837-248.149v876.203c0 17.72-14.365 32.085-32.085 32.085s-32.085-14.365-32.085-32.085v-880.981l-234.837 251.563c-5.821 6.32-14.137 10.265-23.374 10.265-8.392 0-16.023-3.256-21.7-8.575l0.018 0.016c-5.895-6.125-9.527-14.467-9.527-23.656 0-8.287 2.953-15.885 7.865-21.797l-0.045 0.056 288.085-307.2c5.789-6.271 14.037-10.198 23.203-10.24h0.008c9.076 0.229 17.236 3.967 23.213 9.901l-0.002-0.002 292.181 307.2c5.696 5.736 9.217 13.64 9.217 22.365 0 9.061-3.796 17.236-9.886 23.019l-0.014 0.013z" />
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 264 KiB After Width: | Height: | Size: 266 KiB |
|
|
@@ -3,10 +3,15 @@
|
|||
document.addEventListener('DOMContentLoaded', function () {
|
||||
const content = document.getElementById('o_content');
|
||||
|
||||
// Enforce the presence of the `img-fluid` class on all images in the body
|
||||
// Enforce the presence of the `img-fluid` class on all images in the body.
|
||||
content.querySelectorAll('img').forEach(image => {
|
||||
image.classList.add('img-fluid');
|
||||
});
|
||||
|
||||
// Make all external links open in a new tab by default.
|
||||
content.querySelectorAll('a.external').forEach(externalLink => {
|
||||
externalLink.setAttribute('target', '_blank');
|
||||
})
|
||||
});
|
||||
|
||||
})();
|
||||
|
|
|
|||
|
|
@@ -2,17 +2,17 @@
|
|||
(function ($) {
|
||||
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
this.navigationMenu = document.getElementById('o_main_toctree');
|
||||
const navigationMenu = document.getElementById('o_main_toctree');
|
||||
|
||||
// Allow to automatically collapse and expand TOC entries
|
||||
_prepareAccordion(this.navigationMenu);
|
||||
_prepareAccordion(navigationMenu);
|
||||
|
||||
// Allow to respectively highlight and expand the TOC entries and their related TOC
|
||||
// entry list whose page is displayed.
|
||||
_flagActiveTocEntriesAndLists();
|
||||
_flagActiveTocEntriesAndLists(navigationMenu);
|
||||
|
||||
// Show hidden menu when the css classes have been properly specified
|
||||
this.navigationMenu.removeAttribute('hidden');
|
||||
navigationMenu.removeAttribute('hidden');
|
||||
});
|
||||
|
||||
/**
|
||||
|
|
@@ -23,13 +23,15 @@
|
|||
* the `show` (Bootstrap) class.
|
||||
* Also, the deepest TOC entries of their respective branch receive the
|
||||
* `o_deepest_active_toc_entry` class, and their child TOC entry lists receive the `show` class.
|
||||
*
|
||||
* @param {HTMLElement} navigationMenu - The navigation menu.
|
||||
*/
|
||||
const _flagActiveTocEntriesAndLists = () => {
|
||||
const _flagActiveTocEntriesAndLists = navigationMenu => {
|
||||
const regexLayer = /\btoctree-l(?<layer>\d+)\b/;
|
||||
let lastLayer = undefined;
|
||||
let lastTocEntry = undefined;
|
||||
const deepestTocEntries = [];
|
||||
this.navigationMenu.querySelectorAll('.current').forEach(element => {
|
||||
navigationMenu.querySelectorAll('.current').forEach(element => {
|
||||
if (element.tagName === 'UL') {
|
||||
element.classList.add('show'); // Expand all related <ul>
|
||||
} else if (element.tagName === 'LI') {
|
||||
|
|
|
|||
|
|
@@ -3,43 +3,48 @@
|
|||
|
||||
// Customize the page TOC
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
this.pageToc = document.getElementById('o_page_toc'); // The tree of content of the page
|
||||
if (this.pageToc) { // The local toctree is not included for toctree pages (see layout.html)
|
||||
this.headingRefs = this.pageToc.querySelectorAll('a'); // The references to all headings
|
||||
// Loop on all tree of content of the page. There may be from 0 to 2 depending on the page.
|
||||
document.querySelectorAll('.o_page_toc').forEach(pageToc => {
|
||||
const headingRefs = pageToc.querySelectorAll('a'); // The references to all headings.
|
||||
|
||||
// If the page TOC has less than 2 headings, in addition to the title, hide it entirely
|
||||
if (this.headingRefs.length <= 2) {
|
||||
_hidePageToc();
|
||||
// If the page TOC has less than 2 headings, in addition to the title, hide it entirely.
|
||||
if (headingRefs.length <= 2) {
|
||||
_hidePageToc(pageToc);
|
||||
return;
|
||||
}
|
||||
|
||||
// Allow to automatically collapse and expand TOC entries
|
||||
_prepareAccordion(this.pageToc);
|
||||
_prepareAccordion(pageToc);
|
||||
|
||||
// Allow to respectively highlight and expand the TOC entries and their related TOC
|
||||
// entry list whose section is focused.
|
||||
_flagActiveTocEntriesAndLists();
|
||||
_flagActiveTocEntriesAndLists(pageToc, headingRefs);
|
||||
|
||||
// Allow to hide the TOC entry referring the title (<h1> heading)
|
||||
_flagFirstHeadingRef();
|
||||
_flagFirstHeadingRef(headingRefs);
|
||||
|
||||
// Show hidden menu when the css classes have been properly specified
|
||||
this.pageToc.removeAttribute('hidden');
|
||||
}
|
||||
pageToc.removeAttribute('hidden');
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* Entirely hide the local tree of contents.
|
||||
*
|
||||
* @param {HTMLElement} pageToc - The tree of content of the page.
|
||||
*/
|
||||
const _hidePageToc = () => this.pageToc.style.display = 'none';
|
||||
const _hidePageToc = pageToc => pageToc.style.display = 'none';
|
||||
|
||||
/**
|
||||
* Add the relevant classes on the TOC entries (and lists) whose section is focused.
|
||||
*
|
||||
* TOC entries whose section is focused (<li> elements) receive the `o_active_toc_entry` class
|
||||
* and their related TOC entry list (<ul> elements) receive the `show` (Bootstrap) class.
|
||||
*
|
||||
* @param {HTMLElement} pageToc - The tree of content of the page.
|
||||
* @param {NodeList} headingRefs - The references to all headings.
|
||||
*/
|
||||
const _flagActiveTocEntriesAndLists = () => {
|
||||
const _flagActiveTocEntriesAndLists = (pageToc, headingRefs) => {
|
||||
|
||||
const _updateFlags = () => {
|
||||
const activeHeadingRef = clickedHeadingRef || _findActiveHeadingRef();
|
||||
|
|
@@ -56,8 +61,8 @@
|
|||
};
|
||||
|
||||
const _findActiveHeadingRef = () => {
|
||||
let activeHeadingRef = this.headingRefs[0];
|
||||
this.headingRefs.forEach(headingRef => {
|
||||
let activeHeadingRef = headingRefs[0];
|
||||
headingRefs.forEach(headingRef => {
|
||||
const href = headingRef.getAttribute('href');
|
||||
if (href !== '#') {
|
||||
const sectionId = href.replace('#', '');
|
||||
|
|
@@ -78,17 +83,17 @@
|
|||
};
|
||||
|
||||
const _unflagAll = () => {
|
||||
this.pageToc.querySelectorAll('li,ul').forEach(element => {
|
||||
pageToc.querySelectorAll('li,ul').forEach(element => {
|
||||
element.classList.remove('o_active_toc_entry', 'show');
|
||||
});
|
||||
this.pageToc.querySelectorAll('i').forEach(element => {
|
||||
pageToc.querySelectorAll('i').forEach(element => {
|
||||
element.setAttribute('aria-expanded', false);
|
||||
});
|
||||
};
|
||||
|
||||
const _flagActiveHierarchy = (headingRef) => {
|
||||
let tocEntry = headingRef.parentElement;
|
||||
while (tocEntry !== this.pageToc) {
|
||||
while (tocEntry !== pageToc) {
|
||||
if (tocEntry.tagName === 'LI') {
|
||||
// Highlight all <li> in the active hierarchy
|
||||
tocEntry.classList.add('o_active_toc_entry');
|
||||
|
|
@@ -104,7 +109,7 @@
|
|||
};
|
||||
|
||||
let clickedHeadingRef = undefined;
|
||||
this.pageToc.addEventListener('click', ev => {
|
||||
pageToc.addEventListener('click', ev => {
|
||||
clickedHeadingRef = ev.target.closest('a[href^="#"]'); // Highlight the clicked ref
|
||||
});
|
||||
let timeoutId = undefined;
|
||||
|
|
@@ -122,9 +127,11 @@
|
|||
|
||||
/**
|
||||
* Add the class `o_page_toc_title` on the first heading reference.
|
||||
*
|
||||
* @param {NodeList} headingRefs - The references to all headings.
|
||||
*/
|
||||
const _flagFirstHeadingRef = () => {
|
||||
this.headingRefs[0].parentNode.classList.add('o_page_toc_title');
|
||||
const _flagFirstHeadingRef = headingRefs => {
|
||||
headingRefs[0].parentNode.classList.add('o_page_toc_title');
|
||||
}
|
||||
|
||||
})();
|
||||
|
|
|
|||
|
|
@@ -15,10 +15,13 @@
|
|||
document.querySelectorAll('a[class="dropdown-item"]').forEach(element => {
|
||||
element.addEventListener('click', async event => {
|
||||
if (element.hasAttribute('href')) {
|
||||
event.preventDefault();
|
||||
const fallbackUrls = await _generateFallbackUrls(element.getAttribute('href'));
|
||||
const fallbackUrl = await _getFirstValidUrl(fallbackUrls);
|
||||
window.location.href = fallbackUrl;
|
||||
const targetUrl = element.getAttribute('href');
|
||||
if (!targetUrl.startsWith('/')) { // Don't test for valid URLs if in localhost.
|
||||
event.preventDefault();
|
||||
const fallbackUrls = await _generateFallbackUrls(targetUrl);
|
||||
const fallbackUrl = await _getFirstValidUrl(fallbackUrls);
|
||||
window.location.href = fallbackUrl;
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@@ -57,6 +57,11 @@
|
|||
content: $i-link;
|
||||
}
|
||||
}
|
||||
.i-external-link {
|
||||
&:before {
|
||||
content: $i-external-link;
|
||||
}
|
||||
}
|
||||
.i-websites {
|
||||
&:before {
|
||||
content: $i-websites;
|
||||
|
|
@@ -416,4 +421,9 @@
|
|||
&:before {
|
||||
content: $i-article;
|
||||
}
|
||||
}
|
||||
}
|
||||
.i-sidepanel {
|
||||
&:before {
|
||||
content: $i-sidepanel;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@@ -84,6 +84,7 @@ $i-chevron-down: "\e949";
|
|||
$i-chevron-left: "\e94a";
|
||||
$i-chevron-right: "\e94b";
|
||||
$i-link: "\e94f";
|
||||
$i-external-link: "\e940";
|
||||
$i-websites: "\e944";
|
||||
$i-sales: "\e953";
|
||||
$i-sales_2: "\e931";
|
||||
|
|
@@ -156,6 +157,7 @@ $i-lightbulb: "\e921";
|
|||
$i-check: "\e909";
|
||||
$i-edit: "\e932";
|
||||
$i-article: "\e94e";
|
||||
$i-sidepanel: "\e941";
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
|
@@ -230,9 +232,13 @@ $doc_cyan: $color-alpha;
|
|||
|
||||
// Header
|
||||
$o-header-mobile-height: 50px;
|
||||
$o-header-height: 90px;
|
||||
$o-header-height: 80px;
|
||||
$o-header-white: #ffffff;
|
||||
|
||||
$o-subheader-height: calc(#{$o-header-height}/2.5);
|
||||
|
||||
$o-headers-mobile-height: calc(#{$o-header-mobile-height} + (#{$o-subheader-height}));
|
||||
$o-headers-height: calc(#{$o-header-height} + #{$o-subheader-height});
|
||||
// Navigation
|
||||
$o-side-nav-width: 350px;
|
||||
$o-on-page-width: 20%;
|
||||
|
|
|
|||
|
|
@@ -11,10 +11,18 @@ div[aria-label="related navigation"] {
|
|||
}
|
||||
|
||||
body {
|
||||
position: relative;
|
||||
a:not(:hover), a.o_logo {
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
a.external:after {
|
||||
content: '#{$i-external-link}';
|
||||
font-family: icomoon, sans-serif !important;
|
||||
@include font-size($font-size-base/1.3);
|
||||
margin: 0 .2rem;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
|
@@ -36,150 +44,135 @@ body {
|
|||
display: none !important;
|
||||
opacity: 0 !important;
|
||||
}
|
||||
|
||||
span.viewcode-link {
|
||||
float: none;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
// Header with logo, searchbar and switchers
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
header.o_main_header {
|
||||
header {
|
||||
width: 100%;
|
||||
height: $o-header-mobile-height;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background-color: $o-header-white;
|
||||
z-index: 10;
|
||||
padding: 0 $padding-s;
|
||||
@include media-breakpoint-up(lg) {
|
||||
height: $o-header-height;
|
||||
padding: 0 $padding-m;
|
||||
}
|
||||
@include media-breakpoint-up(xl) {
|
||||
padding: 0 $padding-l 0 $padding-m;
|
||||
}
|
||||
|
||||
.o_logo_wrapper {
|
||||
> .o_logo {
|
||||
img {
|
||||
margin-bottom: -2px;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
span {
|
||||
@include font-size($font-size-base);
|
||||
color: $o-violet;
|
||||
@include o-easter-egg($img:'img/ducky.svg');
|
||||
}
|
||||
.o_main_header {
|
||||
height: $o-header-mobile-height;
|
||||
background-color: $o-header-white;
|
||||
padding: 0 $padding-s;
|
||||
@include media-breakpoint-up(lg) {
|
||||
height: $o-header-height;
|
||||
padding: 0 $padding-m;
|
||||
}
|
||||
@include media-breakpoint-up(xl) {
|
||||
width: calc(#{$o-side-nav-width} - #{$padding-l});
|
||||
}
|
||||
@include media-breakpoint-up(lg) {
|
||||
margin-right: $margin-l;
|
||||
}
|
||||
}
|
||||
|
||||
.o_logo img {
|
||||
@include media-breakpoint-up(lg) {
|
||||
height: 30px
|
||||
}
|
||||
}
|
||||
|
||||
.o_search_wrapper {
|
||||
display: flex;
|
||||
position: relative;
|
||||
opacity: 1;
|
||||
@include transition(opacity .3s);
|
||||
@include media-breakpoint-down(lg) {
|
||||
display: block;
|
||||
position: absolute;
|
||||
width: calc(100% - (#{$padding-s} * 2));
|
||||
top: calc(100% + #{$padding-s});
|
||||
}
|
||||
@include media-breakpoint-up(lg) {
|
||||
flex-grow: 1;
|
||||
max-width: 500px;
|
||||
padding: 0 $padding-l 0 $padding-m;
|
||||
}
|
||||
|
||||
.o_search {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
.o_logo_wrapper {
|
||||
margin-right: $margin-s;
|
||||
@include media-breakpoint-up(xl) {
|
||||
width: calc(#{$o-side-nav-width} - #{$padding-m});
|
||||
}
|
||||
@include media-breakpoint-up(lg) {
|
||||
margin-right: $margin-l;
|
||||
}
|
||||
|
||||
> .o_logo {
|
||||
img {
|
||||
margin-bottom: -2px;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
.btn {
|
||||
@include o-position-absolute($top: 50%, $right: 1rem);
|
||||
@include o-transform (translateY(-50%)) ;
|
||||
padding: 0;
|
||||
font-size: 1.2rem;
|
||||
color: $gray;
|
||||
span {
|
||||
@include font-size($font-size-base);
|
||||
color: $o-violet;
|
||||
@include o-easter-egg($img:'img/ducky.svg');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.o_logo img {
|
||||
@include media-breakpoint-up(lg) {
|
||||
height: 30px
|
||||
}
|
||||
}
|
||||
|
||||
> div:not(.o_logo_wrapper) {
|
||||
@include media-breakpoint-up(lg) {
|
||||
width: calc(100% - (#{$o-side-nav-width}));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.o_header_scrolled {
|
||||
.o_search_wrapper {
|
||||
@include media-breakpoint-down(lg) {
|
||||
opacity: 0;
|
||||
position: relative;
|
||||
|
||||
@include media-breakpoint-up(lg) {
|
||||
padding-right: $padding-m;
|
||||
}
|
||||
|
||||
.o_search {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
.btn {
|
||||
@include o-position-absolute($top: 50%, $right: .5rem);
|
||||
@include o-transform (translateY(-50%)) ;
|
||||
|
||||
@include media-breakpoint-up(lg) {
|
||||
right: 1rem;
|
||||
}
|
||||
padding: 0;
|
||||
font-size: 1.2rem;
|
||||
color: $gray;
|
||||
}
|
||||
|
||||
.form-control {
|
||||
@include media-breakpoint-down(lg) {
|
||||
padding: 0.275rem 0.5rem;
|
||||
font-size: $font-size-secondary;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.highlight-link {
|
||||
@include o-position-absolute($bottom: -4.5rem, $right: 0);
|
||||
@include media-breakpoint-up(lg) {
|
||||
bottom: -1.5rem;
|
||||
right: $padding-m;
|
||||
}
|
||||
margin-bottom: 0;
|
||||
a {
|
||||
@include font-size(12px);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.highlight-link {
|
||||
@include o-position-absolute($bottom: -1.5rem, $right: 1rem);
|
||||
margin-bottom: 0;
|
||||
a {
|
||||
@include font-size(12px);
|
||||
.o_subheader {
|
||||
background: $gray-lighter;
|
||||
height: $o-subheader-height;
|
||||
padding-right: $padding-s;
|
||||
@include media-breakpoint-up(lg) {
|
||||
padding: 0 $padding-m;
|
||||
}
|
||||
}
|
||||
|
||||
.navbar-toggler {
|
||||
&[aria-expanded="true"] {
|
||||
.icon-bar {
|
||||
&:nth-of-type(1) {
|
||||
@include o-transform(rotate(45deg));;
|
||||
@include o-transform-origin(10%, 10%)
|
||||
}
|
||||
|
||||
&:nth-of-type(2) {
|
||||
opacity: 0;
|
||||
filter: alpha(opacity=0);
|
||||
}
|
||||
|
||||
&:nth-of-type(3) {
|
||||
@include o-transform(rotate(-45deg));
|
||||
@include o-transform-origin(10%, 90%)
|
||||
}
|
||||
}
|
||||
@include media-breakpoint-up(xl) {
|
||||
padding: 0 $padding-l 0 0;
|
||||
}
|
||||
|
||||
.icon-bar {
|
||||
display: block;
|
||||
width: 22px;
|
||||
height: 2px;
|
||||
background-color: $gray-dark;
|
||||
@include o-transition(all, .2s);
|
||||
|
||||
&+ .icon-bar {
|
||||
margin-top: 4px;
|
||||
.o_side_nav_toggler_wrapper {
|
||||
height: 100%;
|
||||
button {
|
||||
&:focus, &:focus-visible{
|
||||
box-shadow: none;
|
||||
outline:none;
|
||||
}
|
||||
&[aria-expanded="true"]{
|
||||
background-color: rgba(0,0,0, .2);
|
||||
}
|
||||
}
|
||||
|
||||
&:nth-of-type(1) {
|
||||
@include o-transform(rotate(0));
|
||||
}
|
||||
|
||||
&:nth-of-type(2) {
|
||||
opacity: 1;
|
||||
filter: alpha(opacity=100);
|
||||
}
|
||||
|
||||
&:nth-of-type(3) {
|
||||
@include o-transform(rotate(0));
|
||||
}
|
||||
}
|
||||
|
||||
&:focus {
|
||||
box-shadow: none;
|
||||
outline:none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@@ -190,32 +183,44 @@ header.o_main_header {
|
|||
|
||||
.o_side_nav {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow-y: auto;
|
||||
position: fixed;
|
||||
top: -100%;
|
||||
left:0;
|
||||
@include o-transition(all, .3s);
|
||||
padding-top: 4rem;
|
||||
padding-left: $padding-s;
|
||||
background-color: lighten($o-violet-dark, 70%) ;
|
||||
z-index: 10;
|
||||
@include font-size($font-size-secondary);
|
||||
color: $o-violet-dark;
|
||||
font-weight: $fw_regular;
|
||||
@include media-breakpoint-up(lg) {
|
||||
width: calc(#{$o-side-nav-width} - 1rem);
|
||||
height: calc(100vh - #{$o-header-height});
|
||||
top: $o-header-height;
|
||||
padding-top: $padding-m;
|
||||
padding-left: $padding-m;
|
||||
.o_mobile-overlay {
|
||||
background-color: rgba(0,0,0,.3);
|
||||
@include o-position-absolute($top: 0, $bottom: 0, $left: 0, $right:0);
|
||||
opacity: 0;
|
||||
transition: opacity .2s linear;
|
||||
z-index: -100;
|
||||
}
|
||||
@include media-breakpoint-up(xl) {
|
||||
width: $o-side-nav-width;
|
||||
.o_side_nav-inner {
|
||||
width: 90%;
|
||||
height: calc(100% - (#{$o-headers-mobile-height});
|
||||
overflow-y: auto;
|
||||
position: fixed;
|
||||
left: -100%;
|
||||
@include o-transition(all, .3s);
|
||||
padding-left: $padding-s;
|
||||
background-color: lighten($o-violet-dark, 70%) ;
|
||||
z-index: 10;
|
||||
@include font-size($font-size-secondary);
|
||||
color: $o-violet-dark;
|
||||
font-weight: $fw_regular;
|
||||
@include media-breakpoint-up(lg) {
|
||||
width: $o-side-nav-width;
|
||||
height: calc(100vh - (#{$o-headers-height}));
|
||||
left: 0;
|
||||
padding-top: $padding-m;
|
||||
padding-left: $padding-m;
|
||||
}
|
||||
}
|
||||
|
||||
&.show {
|
||||
top: $o-header-mobile-height;
|
||||
.o_mobile-overlay {
|
||||
opacity: 1;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.o_side_nav-inner {
|
||||
left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.toctree-l1 {
|
||||
|
|
@@ -227,6 +232,23 @@ header.o_main_header {
|
|||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
.o_main_toc {
|
||||
> ul {
|
||||
li {
|
||||
&.o_active_toc_entry {
|
||||
&:not(.toctree-l1) > .o_toc_entry_wrapper i[class^="i-"]:not(.collapsed), > a , > .o_toc_entry_wrapper a, > .o_toc_entry_wrapper i {
|
||||
color: $o-violet-dark;
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
&.current {
|
||||
color: $o-violet-dark;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ul {
|
||||
.o_deepest_active_toc_entry {
|
||||
|
|
@@ -235,20 +257,6 @@ header.o_main_header {
|
|||
margin-left: -3px;
|
||||
}
|
||||
|
||||
li {
|
||||
&.o_active_toc_entry {
|
||||
&:not(.toctree-l1) > .o_toc_entry_wrapper i[class^="i-"]:not(.collapsed), > a , > .o_toc_entry_wrapper a, > .o_toc_entry_wrapper i {
|
||||
color: $o-violet-dark;
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
&.current {
|
||||
color: $o-violet-dark;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
> .toctree-l1 {
|
||||
&[class*="o_menu_"] > .o_toc_entry_wrapper > i:before {
|
||||
@include o-inline-icon($i-doc-apps, 0 5px 0 0);
|
||||
|
|
@@ -292,7 +300,7 @@ header.o_main_header {
|
|||
}
|
||||
}
|
||||
|
||||
.o_side_nav, .o_page_toc_nav {
|
||||
.o_main_toc, .o_page_toc_nav {
|
||||
ul { // all uls in toc
|
||||
list-style: none;
|
||||
padding-left: $padding-s;
|
||||
|
|
@@ -350,19 +358,28 @@ header.o_main_header {
|
|||
//------------------------------------------------------------------------------
|
||||
|
||||
aside.o_page_toc {
|
||||
display: none;
|
||||
color: $body-color;
|
||||
@include font-size($font-size-secondary);
|
||||
@include media-breakpoint-up(xl) {
|
||||
display: block;
|
||||
&:not(.o_in_nav_toc) {
|
||||
display: none;
|
||||
@include media-breakpoint-up(xl) {
|
||||
display: block;
|
||||
top: $o-headers-height;
|
||||
right: 0;
|
||||
padding: $padding-l $padding-s $padding-l 0;
|
||||
overflow-y: auto;
|
||||
}
|
||||
position: -webkit-sticky;
|
||||
position: sticky;
|
||||
top: $o-header-height;
|
||||
right: 0;
|
||||
width: $o-on-page-width;
|
||||
height: 100%;
|
||||
max-height: calc(100vh - #{$o-header-height});
|
||||
padding: $padding-l $padding-s $padding-l 0;
|
||||
overflow-y: auto;
|
||||
max-height: calc(100vh - #{$o-headers-height});
|
||||
}
|
||||
&.o_in_nav_toc {
|
||||
display: block;
|
||||
@include media-breakpoint-up(xl) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
h3 {
|
||||
|
|
@@ -392,11 +409,11 @@ header.o_main_header {
|
|||
//------------------------------------------------------------------------------
|
||||
|
||||
#wrap {
|
||||
margin-top: $o-header-mobile-height;
|
||||
margin-top: $o-headers-mobile-height;
|
||||
@include media-breakpoint-up(lg) {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: $o-header-height;
|
||||
margin-top: $o-headers-height;
|
||||
}
|
||||
|
||||
code {
|
||||
|
|
@@ -416,7 +433,6 @@ header.o_main_header {
|
|||
|
||||
main {
|
||||
position: relative;
|
||||
padding-top: 5rem;
|
||||
padding-bottom: $padding-l;
|
||||
@include media-breakpoint-up(lg) {
|
||||
left: calc(#{$o-side-nav-width} - #{$padding-s});
|
||||
|
|
@@ -604,6 +620,7 @@ header.o_main_header {
|
|||
}
|
||||
|
||||
article.doc-body {
|
||||
padding-top: $padding-s;
|
||||
position: relative;
|
||||
|
||||
.o_git_link {
|
||||
|
|
@@ -621,10 +638,18 @@ header.o_main_header {
|
|||
font-family: var(--bs-font-monospace);
|
||||
}
|
||||
|
||||
.field-list {
|
||||
dl.field-list {
|
||||
@include font-size($font-size-secondary);
|
||||
padding: .5rem;
|
||||
border: 1px solid $gray-light;
|
||||
@include media-breakpoint-down(lg) {
|
||||
display: block;
|
||||
}
|
||||
|
||||
> dt, > dd {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style: none;
|
||||
|
|
@@ -1071,7 +1096,7 @@ header.o_main_header {
|
|||
> div[class^="highlight-"]{
|
||||
border: 0 !important;
|
||||
}
|
||||
|
||||
|
||||
> *:last-child {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
|
|
|
|||
|
|
@@ -253,7 +253,7 @@ administration/upgrade/process.rst administration/upgrade.rst
|
|||
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/odoo.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
|
||||
|
|
@@ -278,6 +278,8 @@ services/support/supported_versions.rst administration/maintain/supported_versio
|
|||
|
||||
# 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)
|
||||
|
||||
|
|
@@ -301,6 +303,8 @@ purchase/replenishment/multicompany/setup.rst applications/general/multi_compani
|
|||
|
||||
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
|
||||
|
|
|
|||
|
|
@@ -1,8 +1,8 @@
|
|||
docutils>=0.14,<0.19
|
||||
docutils==0.16.0 # Compatibility with sphinx-tabs 3.2.0.
|
||||
jinja2<3.1 # Compatibility with Sphinx 3.5.4.
|
||||
libsass==0.18.0
|
||||
pygments~=2.6.1
|
||||
pygments-csv-lexer~=0.1
|
||||
sphinx~=3.0
|
||||
sphinx-tabs~=3.2.0
|
||||
sphinx-tabs==3.2.0
|
||||
werkzeug==0.14.1
|
||||
|
|
|
|||