Compare commits
8 Commits
master-doc
...
16.0-fix-d
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
d653b868a6 |
[IMP] developer/reference: move model view related methods out of orm
The model method `get_views` and `get_view` are moved from `odoo/models.py` to `odoo/addons/base/models/ir_ui_view.py`. The documentation is updated accordingly, to put the documentation related to `get_views` in the views chapter of the documentation. |
||
|
|
508b089f68 |
[FW][IMP] howtos/rdtraining: give the meaning of "ACL"
closes odoo/documentation#2778 Forward-port-of: odoo/documentation#2774 Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com> |
||
|
|
e74d239907 |
[IMP] email_communication: can't use Odoo STMP with another mail server
Customer may want to use their own SMTP for email marketing, and Odoo default SMTP for everything else. There is no good way to do this. Previously we suggested adding Odoo SMTP as an outgoing email server but we don't want to share credentials anymore.
R&D is working on a solution (e.g. showing the Odoo default email server in the list rather than keeping it as an "hidden feature") but for the time being, if you use an outgoing email server, you give up using the Odoo default SMTP.
closes odoo/documentation#2770
X-original-commit:
|
||
|
|
26cf8a0583 |
[IMP] MRP: updated Variants BOM Management rst content
closes odoo/documentation#2763
X-original-commit:
|
||
|
|
81352e98b2 |
[IMP] website: register domain name menu path
closes odoo/documentation#2765 Signed-off-by: Castillo Jonathan (jcs) <jcs@odoo.com> |
||
|
|
4de66e2cd9 |
[FIX] accounting: grammar fix in ponto
closes odoo/documentation#2758
X-original-commit:
|
||
|
|
406f3aac18 |
[FIX]: fix odoo_version detection
Right now if the version is not "final (and not alpha)" documentation will say 16.0beta != 16.0 closes odoo/documentation#2746 Related: odoo/odoo#100648 |
||
|
|
c765ea9bad | [REL] freeze 16.0 branch |
2
Makefile
|
|
@@ -26,7 +26,7 @@ SOURCE_DIR = content
|
||||||
|
|
||||||
HTML_BUILD_DIR = $(BUILD_DIR)/html
|
HTML_BUILD_DIR = $(BUILD_DIR)/html
|
||||||
ifdef VERSIONS
|
ifdef VERSIONS
|
||||||
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/master
|
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/16.0
|
||||||
endif
|
endif
|
||||||
ifneq ($(CURRENT_LANG),en)
|
ifneq ($(CURRENT_LANG),en)
|
||||||
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/$(CURRENT_LANG)
|
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/$(CURRENT_LANG)
|
||||||
|
|
|
||||||
16
README.md
|
|
@@ -4,11 +4,11 @@
|
||||||
|
|
||||||
### Requirements
|
### Requirements
|
||||||
|
|
||||||
- [Git](https://www.odoo.com/documentation/master/contributing/documentation.html#install-git)
|
- [Git](https://www.odoo.com/documentation/16.0/contributing/documentation.html#install-git)
|
||||||
- [Python 3.7 or 3.8](https://www.odoo.com/documentation/master/contributing/documentation.html#python)
|
- [Python 3.7 or 3.8](https://www.odoo.com/documentation/16.0/contributing/documentation.html#python)
|
||||||
- Python dependencies listed in the file [`requirements.txt`](https://github.com/odoo/documentation/tree/master/requirements.txt).
|
- Python dependencies listed in the file [`requirements.txt`](https://github.com/odoo/documentation/tree/16.0/requirements.txt).
|
||||||
- [Make](https://www.odoo.com/documentation/master/contributing/documentation.html#make)
|
- [Make](https://www.odoo.com/documentation/16.0/contributing/documentation.html#make)
|
||||||
- A local copy of the [odoo/odoo repository in master](https://github.com/odoo/odoo/tree/master) (Optional)
|
- A local copy of the [odoo/odoo repository in 16.0](https://github.com/odoo/odoo/tree/16.0) (Optional)
|
||||||
|
|
||||||
### Instructions
|
### Instructions
|
||||||
|
|
||||||
|
|
@@ -23,7 +23,7 @@
|
||||||
|
|
||||||
2. Open the file `documentation/_build/html/index.html` in your web browser to display the render.
|
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/16.0/contributing/documentation.html#preview-your-changes)
|
||||||
for more detailed instructions.
|
for more detailed instructions.
|
||||||
|
|
||||||
Optional: to fully build the developer documentation with inline docstrings for documented Python
|
Optional: to fully build the developer documentation with inline docstrings for documented Python
|
||||||
|
|
@@ -34,7 +34,7 @@ be shown.
|
||||||
## Contribute to the documentation
|
## Contribute to the documentation
|
||||||
|
|
||||||
For contributions to the content of the documentation, please refer to the
|
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/16.0/contributing/documentation.html).
|
||||||
|
|
||||||
To **report a content issue**, **request new content** or **ask a question**, use the
|
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.
|
[repository's issue tracker](https://github.com/odoo/documentation-user/issues) as usual.
|
||||||
|
|
@@ -43,4 +43,4 @@ To **report a content issue**, **request new content** or **ask a question**, us
|
||||||
|
|
||||||
To learn more about Odoo, in addition to the documentation, have a look at
|
To learn more about Odoo, in addition to the documentation, have a look at
|
||||||
[the official eLearning](https://odoo.com/slides) and
|
[the official eLearning](https://odoo.com/slides) and
|
||||||
[Scale-up, The Business Game](https://www.odoo.com/page/scale-up-business-game).
|
[Scale-up, The Business Game](https://www.odoo.com/page/scale-up-business-game).
|
||||||
|
|
|
||||||
3
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|,
|
# `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.
|
# 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|.
|
# `release` is the full version, including alpha/beta/rc tags. Acts as replacement for |release|.
|
||||||
version = release = 'master'
|
version = release = '16.0'
|
||||||
|
|
||||||
# The minimal Sphinx version required to build the documentation.
|
# The minimal Sphinx version required to build the documentation.
|
||||||
needs_sphinx = '3.0.0'
|
needs_sphinx = '3.0.0'
|
||||||
|
|
@@ -186,6 +186,7 @@ sphinx.transforms.i18n.docname_to_domain = (
|
||||||
# The version names that should be shown in the version switcher, if the config option `versions`
|
# The version names that should be shown in the version switcher, if the config option `versions`
|
||||||
# is populated. If a version is passed to `versions` but is not listed here, it will not be shown.
|
# is populated. If a version is passed to `versions` but is not listed here, it will not be shown.
|
||||||
versions_names = {
|
versions_names = {
|
||||||
|
'16.0': "Odoo 16",
|
||||||
'master': "Master",
|
'master': "Master",
|
||||||
'saas-15.2': "Odoo Online",
|
'saas-15.2': "Odoo Online",
|
||||||
'15.0': "Odoo 15",
|
'15.0': "Odoo 15",
|
||||||
|
|
|
||||||
|
|
@@ -547,7 +547,7 @@ Dependencies
|
||||||
.. tab:: Debian/Ubuntu
|
.. tab:: Debian/Ubuntu
|
||||||
|
|
||||||
For Debian-based systems, the packages are listed in the `debian/control
|
For Debian-based systems, the packages are listed in the `debian/control
|
||||||
<https://github.com/odoo/odoo/blob/master/debian/control>`_ file of the Odoo sources.
|
<https://github.com/odoo/odoo/blob/16.0/debian/control>`_ file of the Odoo sources.
|
||||||
|
|
||||||
On Debian/Ubuntu, the following commands should install the required packages:
|
On Debian/Ubuntu, the following commands should install the required packages:
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@@ -8,196 +8,116 @@ You can upload any type of file (max 64MB per file on Odoo Online/SaaS), and org
|
||||||
various workspaces.
|
various workspaces.
|
||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
- `Odoo Documents: product page <https://www.odoo.com/app/documents>`_
|
- `Odoo Documents: product page <https://www.odoo.com/app/documents>`_
|
||||||
- `Odoo Tutorials: Documents basics <https://www.odoo.com/slides/slide/documents-basics-674>`_
|
|
||||||
- `Odoo Tutorials: Using Documents with your Accounting App <https://www.odoo.com/slides/slide/using-documents-with-your-accounting-app-675?fullscreen=1#>`_
|
|
||||||
|
|
||||||
Configuration
|
|
||||||
=============
|
|
||||||
|
|
||||||
By going to :menuselection:`Configuration --> Settings`, you can enable the centralization of files
|
|
||||||
attached to a specific area of your activity. For example, by ticking :guilabel:`Human Resources`,
|
|
||||||
your HR documents are automatically available in the HR workspace, while documents related to
|
|
||||||
Payroll are automatically available in the sub workspace Payroll. This can be updated by changing
|
|
||||||
the value in the dropdown menu. The external link allows you to edit the selected workspace.
|
|
||||||
|
|
||||||
.. image:: documents/files-centralization.png
|
|
||||||
:align: center
|
|
||||||
:alt: Enable the centralization of files attached to a specific area of your activity.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
If you enable the centralization of your accounting files and documents, it is necessary to click
|
|
||||||
on :guilabel:`Journals` and define each journal independently to allow automatic synchronization.
|
|
||||||
|
|
||||||
Workspaces
|
|
||||||
==========
|
|
||||||
|
|
||||||
Workspaces are defined by hierarchical folders having their own set of tags and actions. By-default
|
|
||||||
workspaces exist, but you can create your own by going to
|
|
||||||
:menuselection:`Configuration --> Workspaces` and clicking on :guilabel:`CREATE`.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
:guilabel:`Sub-workspaces` can also be created, edited, or deleted by clicking on the
|
|
||||||
:guilabel:`gear icon` on the main page' left menu in the Documents app.
|
|
||||||
|
|
||||||
Tags
|
|
||||||
====
|
|
||||||
|
|
||||||
Tags are used within the workspaces to add a level of differentiation between documents. They are
|
|
||||||
organized per category and filters can be used to sort them. Tags can be created and modified by
|
|
||||||
going to :menuselection:`Configuration --> Tags`.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
- The tags of a parent workspace apply to the child workspaces automatically.
|
|
||||||
- Tags can also be created, edited or deleted, by clicking on the :guilabel:`gear icon`, on the
|
|
||||||
left menu.
|
|
||||||
|
|
||||||
Documents Management
|
|
||||||
====================
|
|
||||||
|
|
||||||
When clicking on a specific document, the right panel displays the options that are available for
|
|
||||||
your document. On the top, you can click on the small icons to :guilabel:`Download`,
|
|
||||||
:guilabel:`Share this selection`, :guilabel:`Replace`, :guilabel:`Lock` or :guilabel:`Split`. It is
|
|
||||||
also possible to :guilabel:`Open chatter` or :guilabel:`Archive` the document.
|
|
||||||
|
|
||||||
.. image:: documents/right-panel-options.png
|
|
||||||
:align: center
|
|
||||||
:alt: right panel options
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
The :guilabel:`Open chatter` option allows to :guilabel:`Send Message` (to everyone following the
|
|
||||||
document), to :guilabel:`Log Note`, or to :guilabel:`Schedule activity`. You can also
|
|
||||||
:guilabel:`Attach files`, :guilabel:`Follow/Unfollow` the document or show followers.
|
|
||||||
|
|
||||||
The name of your file can be edited in the :guilabel:`Document` box. A :guilabel:`Contact` or an
|
|
||||||
:guilabel:`Owner` can also be assigned to your document. The related :guilabel:`Workspace` can be
|
|
||||||
modified and you have the possibility to add :guilabel:`Tags`.
|
|
||||||
|
|
||||||
.. image:: documents/right-panel-options-2.png
|
|
||||||
:align: center
|
|
||||||
:alt: right panel options
|
|
||||||
|
|
||||||
Finally, different :guilabel:`Actions` are available at the bottom of the right panel, depending on
|
|
||||||
the workspace where your document is stored.
|
|
||||||
|
|
||||||
.. image:: documents/right-panel-options.png
|
|
||||||
:align: center
|
|
||||||
:alt: right panel actions
|
|
||||||
|
|
||||||
Workflow actions
|
Workflow actions
|
||||||
================
|
================
|
||||||
|
|
||||||
For each workspace, it is possible to configure specific workflow actions that are automated actions
|
Workflow actions are automated actions you can create and customize at the level of each
|
||||||
that can be created and customized at the level of each workspace. Ie: create documents, process
|
workspace. They appear next to a file whenever it meets the criteria you set. That way you can,
|
||||||
bills, sign, organize files, etc.
|
for example, add tags to a file or move it to another workspace with a single click. Workflow
|
||||||
|
actions help you streamline the management of your documents and your overall business operations.
|
||||||
They appear on the right panel when it meets the criteria you set. That way, you can, for example,
|
|
||||||
add tags to a file or move it to another workspace with a single click. Workflow actions help you
|
|
||||||
streamline the management of your documents and your overall business operations.
|
|
||||||
|
|
||||||
Create workflow actions
|
Create workflow actions
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
To create workflow actions, go to :menuselection:`Documents --> Configuration --> Workspaces` and
|
To create workflow actions, go to :menuselection:`Documents --> Configuration --> Workspaces` and
|
||||||
select the workspace where the action should apply. Click on the :guilabel:`Actions` smart button,
|
select the workspace where the action should apply. Click on the *Actions* smart button, and then
|
||||||
and then on :guilabel:`Create`.
|
on *Create*.
|
||||||
|
|
||||||
.. image:: documents/access-workflow-actions.png
|
.. image:: documents/access-workflow-actions.png
|
||||||
:align: center
|
:align: center
|
||||||
:alt: Workflow actions smart button in Odoo Documents
|
:alt: Workflow actions smart button in Odoo Documents
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
An action applies to all :guilabel:`Child Workspaces` under the :guilabel:`Parent Workspace` you
|
An action applies to all *Child Workspaces* under the *Parent Workspace* you selected.
|
||||||
selected.
|
|
||||||
|
|
||||||
.. tip::
|
.. tip::
|
||||||
You can directly access all your actions by going to :menuselection:`Documents --> Configuration
|
If you use the :ref:`developer mode <developer-mode>`, you can directly access all your actions
|
||||||
--> Actions`.
|
by going to :menuselection:`Documents --> Configuration --> Actions`.
|
||||||
|
|
||||||
Set the conditions
|
Set the conditions
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
You can :guilabel:`Create` a new :guilabel:`Action` or edit an existing one. You can define the
|
After naming your workflow action, you can set the conditions that trigger the appearance of the
|
||||||
:guilabel:`Action Name` and then set the conditions that trigger the appearance of the
|
action button on the right-side panel when selecting a file.
|
||||||
:guilabel:`action button` on the right-side panel when selecting a file.
|
|
||||||
|
|
||||||
There are three basic types of conditions you can set:
|
There are three basic types of conditions you can set:
|
||||||
|
|
||||||
#. :guilabel:`Tags`: you can both use the :guilabel:`Contains` and :guilabel:`Does not contain`
|
#. **Tags**: you can both use the *Contains* and *Does not contain* conditions, meaning the files
|
||||||
conditions, meaning the files *must have* or *mustn't have* the tags set here.
|
*must have* or *mustn't have* the tags set here.
|
||||||
|
|
||||||
#. :guilabel:`Contact`: the files must be associated with the contact set here.
|
#. **Contact**: the files must be associated with the contact set here.
|
||||||
|
|
||||||
#. :guilabel:`Owner`: the files must be associated with the owner set here.
|
#. **Owner**: the files must be associated with the owner set here.
|
||||||
|
|
||||||
.. image:: documents/basic-condition-example.png
|
.. image:: documents/basic-condition-example.png
|
||||||
:align: center
|
:align: center
|
||||||
:alt: Example of a workflow action's basic condition in Odoo Documents
|
:alt: Example of a workflow action's basic condition in Odoo Documents
|
||||||
|
|
||||||
.. tip::
|
.. tip::
|
||||||
If you don't set any conditions, the action button appears for all files located inside the
|
If you don't set any conditions, the action button appears for all files located inside the
|
||||||
selected workspace.
|
selected workspace.
|
||||||
|
|
||||||
Advanced condition type: domain
|
Advanced condition type: domain
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
.. important::
|
.. important::
|
||||||
It is recommended to have some knowledge of Odoo development to properly configure
|
It is recommended to have some knowledge of Odoo development to properly configure *Domain*
|
||||||
:guilabel:`Domain` filters.
|
filters.
|
||||||
|
|
||||||
To access the :guilabel:`Domain` condition, the :ref:`developer mode <developer-mode>` needs to be
|
To access the *Domain* condition, the :ref:`developer mode <developer-mode>` needs to be activated.
|
||||||
activated. Once it is done, select the :guilabel:`Domain` condition type, and click on
|
Once that's done, select the *Domain* condition type, and click on *Add Filter*.
|
||||||
:guilabel:`Add Filter`.
|
|
||||||
|
|
||||||
To create a rule, select a :guilabel:`field`, an :guilabel:`operator`, and a
|
.. image:: documents/activate-domain-condition.png
|
||||||
:guilabel:`value`. For example, if you want to add a workflow action to all the PDF files inside a
|
:align: center
|
||||||
workspace, set the :guilabel:`field` to *Mime Type*, the :guilabel:`operator` to *contains*, and the
|
:alt: Activating the domain condition type in Odoo Documents
|
||||||
:guilabel:`value` to *pdf*.
|
|
||||||
|
|
||||||
Click on :guilabel:`Add node` (plus-circle icon) and :guilabel:`Add branch` (ellipsis icon) to add
|
To create a rule, you typically select a field, an operator, and a value. For example, if you want
|
||||||
conditions and sub-conditions.
|
to add a workflow action to all the PDF files inside a workspace, set the field to *Mime Type*, the
|
||||||
|
operator to *contains*, and the value to *pdf*.
|
||||||
|
|
||||||
.. image:: documents/domain-condition-example.png
|
.. image:: documents/domain-condition-example.png
|
||||||
:align: center
|
:align: center
|
||||||
:alt: Example of a workflow action's domain condition in Odoo Documents
|
:alt: Example of a workflow action's domain condition in Odoo Documents
|
||||||
|
|
||||||
You can also specify if your rule should match :guilabel:`ALL` or :guilabel:`ANY` conditions and you
|
Click on *Add node* (plus-circle icon) and *Add branch* (ellipsis icon) to add conditions and
|
||||||
can edit the rule using the :guilabel:`Code editor`.
|
sub-conditions. You can then specify if your rule should match *ALL* or *ANY* conditions. You can
|
||||||
|
also edit the rule directly using the *Code editor*.
|
||||||
|
|
||||||
|
.. image:: documents/use-domain-condition.png
|
||||||
|
:align: center
|
||||||
|
:alt: Add a node or a branch to a workflow action's condition in Odoo Documents
|
||||||
|
|
||||||
Configure the actions
|
Configure the actions
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
Select the :guilabel:`Actions` tab to set up your action. You can simultaneously:
|
Select the *Actions* tab to set up your action. You can simultaneously:
|
||||||
|
|
||||||
- **Set Contact**: add a contact to the file, or replace an existing contact with a new one.
|
- **Set Contact**: add a contact to the file, or replace an existing contact with a new one.
|
||||||
- **Set Owner**: add an owner to the file, or replace an existing owner with a new one.
|
- **Set Owner**: add an owner to the file, or replace an existing owner with a new one.
|
||||||
- **Move to Workspace**: move the file to any workspace.
|
- **Move to Workspace**: move the file to any workspace.
|
||||||
- **Create**: create one of the following items attached to the file in your database:
|
- **Create**: create one of the following items attached to the file in your database:
|
||||||
|
|
||||||
- :guilabel:`Link to record`
|
- **Product template**: create a product you can edit directly.
|
||||||
- :guilabel:`Product template`: create a product you can edit directly.
|
- **Task**: create a Project task you can edit directly.
|
||||||
- :guilabel:`Task`: create a Project task you can edit directly.
|
- **Signature request**: create a new Sign template to send out.
|
||||||
- :guilabel:`Signature PDF Template`: : open PDF in Sign to create a template.
|
- **Sign directly**: create a Sign template to sign directly.
|
||||||
- :guilabel:`PDF to sign`: open PDF in Sign to create a template.
|
- **Vendor bill**: create a vendor bill using OCR and AI to scrape information from the file
|
||||||
- :guilabel:`Applicant`: create a new HR application you can edit directly.
|
content.
|
||||||
- :guilabel:`Vendor bill`: create a vendor bill using OCR and AI to scrape information from the file content.
|
- **Customer invoice**: create a customer invoice using OCR and AI to scrape information from
|
||||||
- :guilabel:`Customer invoice`: create a customer invoice using OCR and AI to scrape information from the file.
|
the file.
|
||||||
- :guilabel:`Vendor credit note`: create a vendor credit note using OCR and AI to scrape information from the file.
|
- **Vendor credit note**: create a vendor credit note using OCR and AI to scrape information
|
||||||
- :guilabel:`Credit note`: create a customer credit note using OCR and AI to scrape information from the file.
|
from the file.
|
||||||
|
- **Credit note**: create a customer credit note using OCR and AI to scrape information from
|
||||||
|
the file.
|
||||||
|
- **Applicant**: create a new HR application you can edit directly.
|
||||||
|
|
||||||
- **Set Tags**: add, replace by or remove any number of tags.
|
- **Set Tags**: add, remove, and replace any number of tags.
|
||||||
|
- **Activities - Mark all as Done**: mark all activities linked to the file as done.
|
||||||
|
- **Activities - Schedule Activity**: create a new activity linked to the file as configured in
|
||||||
|
the action. You can choose to set the activity on the document owner.
|
||||||
|
|
||||||
In the :guilabel:`Activities` section, you can decide to:
|
.. image:: documents/workflow-action-example.png
|
||||||
|
:align: center
|
||||||
- :guilabel:`Mark all as Done`: mark all activities linked to the file as done.
|
:alt: Example of a workflow action Odoo Documents
|
||||||
- :guilabel:`Schedule Activity`: create a new activity linked to the file as configured in the action.
|
|
||||||
|
|
||||||
Digitize documents with OCR and Artificial Intelligence
|
|
||||||
=======================================================
|
|
||||||
|
|
||||||
Documents available in the Finance workspace can be digitized. Select the document you want to
|
|
||||||
digitize, click on :guilabel:`Create Bill`, :guilabel:`Create Customer Invoice` or
|
|
||||||
:guilabel:`Create credit note`, and then click on :guilabel:`Send for Digitization`.
|
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
- `AI-powered document digitization <https://www.odoo.com/documentation/15.0/applications/finance/accounting/payables/supplier_bills/invoice_digitization.html>`_
|
|
||||||
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 6.4 KiB |
|
After Width: | Height: | Size: 6.8 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 6.9 KiB After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 6.3 KiB |
|
Before Width: | Height: | Size: 7.4 KiB |
|
Before Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 7.1 KiB After Width: | Height: | Size: 7.1 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
|
@@ -1,240 +1,210 @@
|
||||||
====================================================
|
====================================================
|
||||||
Send and Receive Emails in Odoo with an Email Server
|
Send and receive emails in Odoo with an email server
|
||||||
====================================================
|
====================================================
|
||||||
|
|
||||||
If you are a user of Odoo Online or Odoo.sh...
|
Odoo Online or Odoo.sh users
|
||||||
==============================================
|
============================
|
||||||
|
|
||||||
You have nothing to do! **Odoo sets up its own mail servers for your database.**
|
Since **Odoo sets up its own mail servers for the database**, outgoing and incoming emails already
|
||||||
Outgoing and incoming emails work out-of-the-box!
|
work out-of-the-box. So for **Odoo Online** and **Odoo.sh** customers, nothing needs to be done!
|
||||||
|
|
||||||
Unless you plan to send large batches of mass mailing that could require the
|
|
||||||
use of an external mail server, simply enjoy your new Odoo database.
|
|
||||||
|
|
||||||
|
Unless an external mail server is required to send large batches of mass mailing, simply use the
|
||||||
|
standard online Odoo database normally since it has already been preconfigured for email.
|
||||||
|
|
||||||
Scope of this documentation
|
Scope of this documentation
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
This document is **mainly dedicated to Odoo on-premise users** who don't
|
This document is **mainly dedicated to Odoo on-premise users** who don't benefit from an
|
||||||
benefit from an out-of-the-box solution to send and receive emails in Odoo,
|
out-of-the-box solution to send and receive emails in Odoo, unlike `Odoo Online <https://www.odoo.
|
||||||
unlike `Odoo Online <https://www.odoo.com/trial>`_ & `Odoo.sh <https://www.odoo.sh>`_.
|
com/trial>`_ and `Odoo.sh <https://www.odoo.sh>`_.
|
||||||
|
|
||||||
|
The following sections below contain information on how to integrate an external email server with
|
||||||
|
Odoo.
|
||||||
|
|
||||||
.. warning::
|
.. warning::
|
||||||
If no one in your company is used to manage email servers, we strongly recommend that
|
If no one in the company is used to managing email servers, Odoo Online and Odoo.sh are strongly
|
||||||
you opt for those Odoo hosting solutions. Their email system
|
recommended. Those Odoo hosting types' email systems work instantly and are monitored by
|
||||||
works instantly and is monitored by professionals.
|
professionals. Nevertheless, a company can use their own email server if they want to manage the
|
||||||
Nevertheless you can still use your own email servers if you want
|
email server's reputation themselves.
|
||||||
to manage your email server's reputation yourself.
|
|
||||||
|
|
||||||
You will find here some useful
|
.. note::
|
||||||
information on how to integrate your own email solution with Odoo.
|
Office 365 email servers don't easily allow the sending of external emails from hosts like Odoo.
|
||||||
|
Refer to `Microsoft's documentation <https://support.office.com/en-us/article/How-to-set-up-a-
|
||||||
|
multifunction-device-or-application-to-send-email-using-Office-365-69f58e99-c550-4274-ad18-
|
||||||
|
c805d654b4c4>`_ to make it work.
|
||||||
|
|
||||||
.. note::
|
Manage outbound messages
|
||||||
Office 365 email servers don't easily allow to send external emails from hosts like Odoo. Refer
|
========================
|
||||||
to `Microsoft's documentation <https://support.office.com/en-us/article/How-to-set-up-a-multifunction-device-or-application-to-send-email-using-Office-365-69f58e99-c550-4274-ad18-c805d654b4c4>`_
|
|
||||||
to make it work.
|
|
||||||
|
|
||||||
How to manage outbound messages
|
As a system admin, go to :menuselection:`Settings --> General Settings --> Discuss` in Odoo, and
|
||||||
===============================
|
enable the :guilabel:`External Email Servers` option. Then, click :guilabel:`Save`. Next, click
|
||||||
As a system admin, go to :menuselection:`Settings --> General Settings`
|
:guilabel:`Outgoing Email Servers` and click :guilabel:`Create` to create a new outgoing mail
|
||||||
and check *External Email Servers*. Then, click *Outgoing Mail Servers* to create one and reference
|
server record in Odoo. Reference the SMTP data of the external email server. Once all the
|
||||||
the SMTP data of your email server. Once all the information has been filled out, click on
|
information has been filled out, click :guilabel:`Test Connection`.
|
||||||
*Test Connection*.
|
|
||||||
|
|
||||||
Here is a typical configuration for a G Suite server.
|
Here is a typical configuration for a G Suite server.
|
||||||
|
|
||||||
.. image:: email_servers/outgoing-server.png
|
.. image:: email_servers/outgoing-server.png
|
||||||
:align: center
|
:align: center
|
||||||
|
:alt: The typical G Suite configuration on Odoo.
|
||||||
|
|
||||||
Then set your email domain name in the General Settings.
|
Then, go back to :menuselection:`Settings --> General Settings --> Discuss` and set the email
|
||||||
|
domain name in the :guilabel:`Alias Domain` name. Finally, click :guilabel:`Save` to finish setting
|
||||||
|
up the email server.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
If you get a ``[AUTHENTICATIONFAILED] Invalid credentials (Failure)`` warning when you *Test
|
If an `[AUTHENTICATION FAILED] Invalid credentials (Failure)` warning appears when
|
||||||
Connection* on a Gmail address, activate the *Less secure app access* option. A direct link can
|
:guilabel:`Test Connection` is clicked for a Gmail address, activate the :guilabel:`Less secure
|
||||||
be `accessed here <https://myaccount.google.com/lesssecureapps?pli=1>`_.
|
app access` option. A direct link can be `accessed here <https://myaccount.google.com/
|
||||||
|
lesssecureapps?pli=1>`_.
|
||||||
|
|
||||||
In addition to that, enable the IMAP setting on your Gmail account.
|
In addition to that, enable the :guilabel:`IMAP setting` on the Gmail account.
|
||||||
|
|
||||||
|
Use an Office 365 server
|
||||||
|
------------------------
|
||||||
|
|
||||||
Can I use an Office 365 server
|
An Office 365 server can be used if the database's hosting type is **Odoo on-premise**. Office 365
|
||||||
------------------------------
|
SMTP relays are not compatible with Odoo Online or Odoo.sh unless Odoo is configured to
|
||||||
You can use an Office 365 server if you run Odoo on-premise.
|
:ref:`force the outgoing "From" address <email_communication/default_from>`.
|
||||||
Office 365 SMTP relays are not compatible with Odoo Online unless you configure
|
|
||||||
Odoo to :ref:`force the outgoing "From" address <email_communication/default_from>` .
|
|
||||||
|
|
||||||
Please refer to `Microsoft's documentation
|
Please refer to `Microsoft's documentation <https://support.office.com/en-us/article/How-to-set-up-
|
||||||
<https://support.office.com/en-us/article/How-to-set-up-a-multifunction-device-or-application-to-send-email-using-Office-365-69f58e99-c550-4274-ad18-c805d654b4c4>`_
|
a-multifunction-device-or-application-to-send-email-using-Office-365-69f58e99-c550-4274-ad18-
|
||||||
to configure a SMTP relay for your Odoo's IP address.
|
c805d654b4c4>`_ to configure an SMTP relay for the Odoo database's IP address.
|
||||||
|
|
||||||
How to use a G Suite server
|
Use a G Suite server
|
||||||
---------------------------
|
--------------------
|
||||||
You can use an G Suite server for any Odoo hosting type.
|
|
||||||
To do so you need to setup the SMTP relay service. The configuration steps are explained in
|
A G Suite server can be used for any Odoo hosting type. To do so, set up the SMTP relay service.
|
||||||
`Google documentation <https://support.google.com/a/answer/2956491?hl=en>`__.
|
The configuration steps are explained in `Google documentation <https://support.google.com
|
||||||
|
/a/answer/2956491?hl=en>`__.
|
||||||
|
|
||||||
Restriction
|
Restriction
|
||||||
-----------
|
-----------
|
||||||
Please note that port 25 is blocked for security reasons on our SaaS and Odoo.sh platform. Try using
|
|
||||||
465, 587, or 2525.
|
Please note that port 25 is blocked for security reasons on the SaaS and Odoo.sh platforms. Try
|
||||||
|
using ports 465, 587, or 2525 instead.
|
||||||
|
|
||||||
.. _email_communication/default_from:
|
.. _email_communication/default_from:
|
||||||
|
|
||||||
Use a default "From" email address
|
Use a default "From" email address
|
||||||
----------------------------------
|
----------------------------------
|
||||||
|
|
||||||
Sometimes, an email's "From" (outgoing) address can belong to a
|
Sometimes, an email's "From" (outgoing) address can belong to a different domain, and that can be a
|
||||||
different domain, and that can be a problem.
|
problem.
|
||||||
|
|
||||||
For example, if a customer with address *mary@customer.example.com* responds to
|
For example, if a customer with the email address *mary\@customer.example.com* responds to a
|
||||||
a message, Odoo will try to redistribute that same email to other subscribers
|
message, Odoo will try to redistribute that same email to the other subscribers in the thread.
|
||||||
in the thread. But if the domain *customer.example.com* forbids that kind of
|
However, if the domain *customer.example.com* forbids that kind of usage for security, the email
|
||||||
usage for security, the Odoo's redistributed email would get
|
that Odoo is trying to redistribute would get rejected by some recipients' email servers.
|
||||||
rejected by some recipients' mail servers.
|
|
||||||
|
|
||||||
To avoid those kind of problems, you should make sure all emails use a "From"
|
To avoid that problem, make sure all emails use a "From" address from the same authorized domain.
|
||||||
address from your authorized domain.
|
|
||||||
|
|
||||||
If your MTA supports `SRS (Sender Rewriting Scheme)
|
If the MTA supports `SRS (Sender Rewriting Scheme) <https://en.wikipedia.org/wiki/Sender_Rewriting
|
||||||
<https://en.wikipedia.org/wiki/Sender_Rewriting_Scheme>`_, you can enable it
|
_Scheme>`_, SRS can be enabled to handle these situations. However, that is more complex and
|
||||||
to handle these situations. However, that is more complex and requires more
|
requires more technical knowledge that is not meant to be covered by this documentation.
|
||||||
technical knowledge that is not meant to be covered by this documentation.
|
|
||||||
|
|
||||||
Instead, you can also configure Odoo to do something similar by itself:
|
Instead, Odoo can be configured to do something similar by itself:
|
||||||
|
|
||||||
#. Set your domain name in the General Settings.
|
#. Set the :guilabel:`Alias Domain` name in the :menuselection:`Settings --> General Settings
|
||||||
|
--> Discuss`.
|
||||||
|
|
||||||
.. image:: email_servers/alias-domain.png
|
.. image:: email_servers/alias-domain.png
|
||||||
:align: center
|
:alt: Setting the domain alias configuration on Odoo.
|
||||||
|
|
||||||
#. Click on *Outgoing Mail Servers*
|
#. Turn on :doc:`developer mode </applications/general/developer_mode>`.
|
||||||
|
#. Go to :menuselection:`Settings --> Technical --> Parameters --> System Parameters`.
|
||||||
|
#. Add one system parameter from the following list:
|
||||||
|
|
||||||
#. Create a new one.
|
* To use the same "From" address for *all* outgoing messages, use the key `mail.force.smtp.from`
|
||||||
|
and set that address as value (such as `outgoing@mycompany.example.com`).
|
||||||
#. Fill its *From Filter*.
|
* To keep the original "From" address for emails that use the same domain, but change it for
|
||||||
|
emails that use a different domain, use the key `mail.dynamic.smtp.from` and set the value as
|
||||||
.. image:: email_servers/outgoing_server_from_filter.png
|
the email address that should be used in those cases (such as `outgoing@mycompany.example.com`
|
||||||
:align: center
|
).
|
||||||
|
|
||||||
* Use a domain (such as ``mycompany.example.com``) to keep the original "From"
|
|
||||||
address for mails that come from that domain.
|
|
||||||
|
|
||||||
* Use an address (such as ``outgoing@mycompany.example.com``) to allow only
|
|
||||||
that outgoing address.
|
|
||||||
|
|
||||||
* Keep it empty to use this server for any email address.
|
|
||||||
|
|
||||||
With this configuration in place, if Odoo sends an email that doesn't match any
|
|
||||||
of the *from filters*, it will alter the email's "From" before sending it to
|
|
||||||
the MTA.
|
|
||||||
|
|
||||||
It will use the default outgoing email address, composed like this:
|
|
||||||
``{mail.default.from}@{mail.catchall.domain}``.
|
|
||||||
|
|
||||||
#. In developer mode, go to :menuselection:`Settings --> Technical -->
|
|
||||||
Parameters --> System Parameters`.
|
|
||||||
|
|
||||||
#. Add these system parameters:
|
|
||||||
|
|
||||||
* ``mail.default.from``: local part of default outgoing email address.
|
|
||||||
|
|
||||||
* ``mail.catchall.domain``: domain part of default outgoing email address.
|
|
||||||
|
|
||||||
.. _email_communication/inbound_messages:
|
.. _email_communication/inbound_messages:
|
||||||
|
|
||||||
How to manage inbound messages
|
Manage inbound messages
|
||||||
==============================
|
=======================
|
||||||
|
|
||||||
Odoo relies on generic email aliases to fetch incoming messages.
|
Odoo relies on generic email aliases to fetch incoming messages.
|
||||||
|
|
||||||
* **Reply messages** of messages sent from Odoo are routed to their original
|
* **Reply messages** of messages sent from Odoo are routed to their original discussion thread (and
|
||||||
discussion thread (and to the inbox of all its followers) by the
|
to the inbox of all its followers) by the catchall alias (**catchall@**).
|
||||||
catchall alias (**catchall@**).
|
* **Bounced messages** are routed to **bounce@** in order to track them in Odoo. This is especially
|
||||||
|
used in `Odoo Email Marketing <https://www.odoo.com/page/email-marketing>`__ to opt-out invalid
|
||||||
* **Bounced messages** are routed to **bounce@** in order to track them in Odoo.
|
recipients.
|
||||||
This is especially used in `Odoo Email Marketing <https://www.odoo.com/page/email-marketing>`__
|
* **Original messages**: Several business objects have their own alias to create new records in
|
||||||
to opt-out invalid recipients.
|
Odoo from incoming emails:
|
||||||
|
|
||||||
* **Original messages**: Several business objects have their own alias to
|
|
||||||
create new records in Odoo from incoming emails:
|
|
||||||
|
|
||||||
* Sales Channel (to create Leads or Opportunities in `Odoo CRM <https://www.odoo.com/page/crm>`__),
|
* Sales Channel (to create Leads or Opportunities in `Odoo CRM <https://www.odoo.com/page/crm>`__),
|
||||||
|
|
||||||
* Support Channel (to create Tickets in `Odoo Helpdesk <https://www.odoo.com/page/helpdesk>`__),
|
* Support Channel (to create Tickets in `Odoo Helpdesk <https://www.odoo.com/page/helpdesk>`__),
|
||||||
|
* Projects (to create new Tasks in `Odoo Project <https://www.odoo.com/page
|
||||||
* Projects (to create new Tasks in `Odoo Project <https://www.odoo.com/page/project-management>`__),
|
/project-management>`__),
|
||||||
|
* Job Positions (to create Applicants in `Odoo Recruitment <https://www.odoo.com/page
|
||||||
* Job Positions (to create Applicants in `Odoo Recruitment <https://www.odoo.com/page/recruitment>`__),
|
/recruitment>`__),
|
||||||
|
|
||||||
* etc.
|
* etc.
|
||||||
|
|
||||||
Depending on your mail server, there might be several methods to fetch emails.
|
Depending on the mail server, there might be several methods to fetch emails. The easiest and most
|
||||||
The easiest and most recommended method is to manage one email address per Odoo
|
recommended method is to manage one email address per Odoo alias in the mail server.
|
||||||
alias in your mail server.
|
|
||||||
|
|
||||||
* Create the corresponding email addresses in your mail server
|
* Create the corresponding email addresses in the mail server (catchall@, bounce@, sales@, etc.).
|
||||||
(catchall@, bounce@, sales@, etc.).
|
* Set the :guilabel:`Alias Domain` name in :menuselection:`Settings --> General Settings -->
|
||||||
* Set your domain name in the General Settings.
|
Discuss`.
|
||||||
|
|
||||||
.. image:: email_servers/alias-domain.png
|
* If the database's hosting type is Odoo on-premise, create an :guilabel:`Incoming Mail Server` in
|
||||||
|
Odoo for each alias. This can be done from the General Settings as well. Fill out the form
|
||||||
|
according to the email provider's settings. Leave the :guilabel:`Actions to Perform on Incoming
|
||||||
|
Mails` field blank. Once all the information has been filled out, click on :guilabel:`TEST &
|
||||||
|
CONFIRM`.
|
||||||
|
|
||||||
|
.. image:: email_servers/incoming-server.png
|
||||||
|
:align: center
|
||||||
|
:alt: Incoming mail server configuration on Odoo.
|
||||||
|
|
||||||
|
* If the database's hosting type is Odoo Online or Odoo.sh, redirecting incoming messages to Odoo's
|
||||||
|
domain name instead of the external email server is recommended. That way, incoming messages can
|
||||||
|
be received without delay. Odoo Online only fetches incoming messages of external servers once
|
||||||
|
every hour. Redirections for all email addresses should be set to Odoo's domain name in the email
|
||||||
|
server (e.g. *catchall\@mydomain.ext* to *catchall\@mycompany.odoo.com*).
|
||||||
|
|
||||||
|
All the aliases are customizable in Odoo. Object aliases can be edited from their respective
|
||||||
|
configuration view.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
To edit catchall and bounce aliases, first activate the :ref:`developer mode <developer-mode>`.
|
||||||
|
Then, go to :menuselection:`Settings --> Technical --> Parameters --> System Parameters` to
|
||||||
|
customize the aliases (*mail.catchall.alias* & *mail.bounce.alias*).
|
||||||
|
|
||||||
|
.. image:: email_servers/system-parameters.png
|
||||||
:align: center
|
:align: center
|
||||||
|
:alt: System parameters with catchall configuration in Odoo.
|
||||||
|
|
||||||
* If you use Odoo on-premise, create an *Incoming Mail Server* in Odoo for each alias.
|
By default, inbound messages are fetched every 5 minutes in Odoo on-premise.
|
||||||
You can do it from the General Settings as well. Fill out the form according
|
|
||||||
to your email provider’s settings.
|
|
||||||
Leave the *Actions to Perform on Incoming Mails* blank. Once all the
|
|
||||||
information has been filled out, click on *TEST & CONFIRM*.
|
|
||||||
|
|
||||||
.. image:: email_servers/incoming-server.png
|
.. note::
|
||||||
:align: center
|
This value can be changed in :ref:`developer mode <developer-mode>`. Go to
|
||||||
|
:menuselection:`Settings --> Technical --> Automation --> Scheduled Actions` and look for
|
||||||
* If you use Odoo Online or Odoo.sh, We do recommend to redirect incoming messages
|
:guilabel:`Mail: Fetchmail Service`.
|
||||||
to Odoo's domain name rather than exclusively use your own email server.
|
|
||||||
That way you will receive incoming messages without delay. Indeed, Odoo Online is fetching
|
|
||||||
incoming messages of external servers once per hour only.
|
|
||||||
You should set redirections for all the email addresses to Odoo's domain name in your
|
|
||||||
email server (e.g. *catchall@mydomain.ext* to *catchall@mycompany.odoo.com*).
|
|
||||||
|
|
||||||
.. tip:: All the aliases are customizable in Odoo.
|
|
||||||
Object aliases can be edited from their respective configuration view.
|
|
||||||
To edit catchall and bounce aliases, you first need to activate the
|
|
||||||
:ref:`developer mode <developer-mode>`.
|
|
||||||
|
|
||||||
Then go to :menuselection:`Settings --> Technical --> Parameters --> System Parameters`
|
|
||||||
to customize the aliases (*mail.catchall.alias* & * mail.bounce.alias*).
|
|
||||||
|
|
||||||
.. image:: email_servers/system-parameters.png
|
|
||||||
:align: center
|
|
||||||
|
|
||||||
.. note:: By default inbound messages are fetched every 5 minutes in Odoo on-premise.
|
|
||||||
You can change this value in :ref:`developer mode <developer-mode>`.
|
|
||||||
Go to :menuselection:`Settings --> Technical --> Automation -->
|
|
||||||
Scheduled Actions` and look for *Mail: Fetchmail Service*.
|
|
||||||
|
|
||||||
|
|
||||||
Set up different dedicated servers for transactional and mass mails
|
Set up different dedicated servers for transactional and mass mails
|
||||||
===================================================================
|
===================================================================
|
||||||
|
|
||||||
Odoo is subject to a :ref:`daily email limit <email_communication/daily_limit_mail>` to prevent abuse.
|
In Odoo a separate Mail Transfer Agent (MTA) server can be used for transactional emails and mass
|
||||||
However, if needed, you can use a separate Mail Transfer Agent (MTA) servers for transactional
|
mailings. Example: Use Postmark or SendinBlue for transactional emails, and Amazon SES, Mailgun or
|
||||||
e-mails and mass mailings.
|
Sendgrid for mass mailings.
|
||||||
Example: use Odoo's own mail server for transactional e-mails, and Sendgrid, Amazon SES, or Mailgun
|
|
||||||
for mass mailings. Another alternative is to use Postmark for transactional e-mails, and Amazon SES
|
|
||||||
or Sendgrid for mass mailings.
|
|
||||||
|
|
||||||
.. note::
|
.. tip::
|
||||||
A default outgoing email server is already configured. You should not create an alternative one
|
A default outgoing email server is already configured. Do not create an alternative one unless a
|
||||||
unless you want to use a specific external outgoing email server for technical reasons.
|
specific external outgoing email server is needed for technical reasons.
|
||||||
|
|
||||||
To do this, you should first activate the :ref:`developer mode <developer-mode>` and then go to
|
To do this, first activate the :ref:`developer mode <developer-mode>`, and then go to
|
||||||
:menuselection:`Settings --> Technical --> Outgoing` e-mail servers. There you have to create two
|
:menuselection:`Settings --> Technical --> Outgoing` email servers. There, create two email MTA
|
||||||
e-mail MTA server settings. One for transactional e-mails and one for mass mail servers. Be sure to
|
server settings; one for the transactional emails and one for the mass mailing server. Make sure
|
||||||
mark the priority of transactional e-mail servers as low as the mass email servers.
|
to give priority to the transactional server over the mass mailing server by providing a lower
|
||||||
|
priority number for the transactional MTA server.
|
||||||
|
|
||||||
Now, go to :menuselection:`Email Marketing --> Settings` and enable *Dedicated Server*.
|
Now, go to :menuselection:`Email Marketing --> Settings` and enable :guilabel:`Dedicated Server`.
|
||||||
With these settings, Odoo uses the server with the lower priority for transactional emails, and the
|
With these settings, Odoo uses the server with the lower priority for transactional emails, and the
|
||||||
server here selected for mass mails.
|
server here selected for mass mails. Note that in this case, the domain's Sender Policy Framework
|
||||||
Note that in this case, you have to set your domain's Sender Policy Framework (SPF) records to
|
(SPF) records must be set to include both transactional and mass mail servers.
|
||||||
include both transactional and mass mail servers. If your server resides with xxxx.odoo.com, the
|
|
||||||
available options are Sendinblue and Mailchimp, as your e-mails would be originated from the
|
|
||||||
xxxx.odoo.com domain.
|
|
||||||
|
|
|
||||||
|
|
@@ -218,7 +218,7 @@ Python comes with its own package manager: `pip
|
||||||
a single command.
|
a single command.
|
||||||
|
|
||||||
#. Download and install the recommended release (`see README file
|
#. 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/16.0/README.md>`_) of **Python 3** on your machine.
|
||||||
#. Make sure to have **pip** installed on your machine (on Windows, you can install pip alongside
|
#. Make sure to have **pip** installed on your machine (on Windows, you can install pip alongside
|
||||||
Python).
|
Python).
|
||||||
#. Execute the following commands in a terminal to verify that both installations finished
|
#. Execute the following commands in a terminal to verify that both installations finished
|
||||||
|
|
|
||||||
|
|
@@ -18,7 +18,7 @@ Data Files (CSV)
|
||||||
Odoo is a highly data driven system. Although behavior is customized using Python code, part of a
|
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
|
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
|
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/16.0/odoo/addons/base/data/res.country.state.csv>`__
|
||||||
which is loaded at installation of the ``base`` module.
|
which is loaded at installation of the ``base`` module.
|
||||||
|
|
||||||
.. code-block:: text
|
.. code-block:: text
|
||||||
|
|
|
||||||
|
|
@@ -4,6 +4,8 @@
|
||||||
Advanced B: ACL and Record Rules
|
Advanced B: ACL and Record Rules
|
||||||
================================
|
================================
|
||||||
|
|
||||||
|
ACL stands for "Access Control List"
|
||||||
|
|
||||||
.. warning::
|
.. warning::
|
||||||
|
|
||||||
This tutorial assumes you have completed the :ref:`Core Training
|
This tutorial assumes you have completed the :ref:`Core Training
|
||||||
|
|
|
||||||
|
|
@@ -83,7 +83,6 @@ value::
|
||||||
.. autoattribute:: _parent_name
|
.. autoattribute:: _parent_name
|
||||||
.. autoattribute:: _parent_store
|
.. autoattribute:: _parent_store
|
||||||
|
|
||||||
.. autoattribute:: _date_name
|
|
||||||
.. autoattribute:: _fold_name
|
.. autoattribute:: _fold_name
|
||||||
|
|
||||||
AbstractModel
|
AbstractModel
|
||||||
|
|
@@ -856,15 +855,11 @@ Search/Read
|
||||||
|
|
||||||
.. automethod:: Model.read_group
|
.. automethod:: Model.read_group
|
||||||
|
|
||||||
Fields/Views
|
Fields
|
||||||
''''''''''''
|
''''''
|
||||||
|
|
||||||
.. automethod:: Model.fields_get
|
.. automethod:: Model.fields_get
|
||||||
|
|
||||||
.. automethod:: Model.get_view
|
|
||||||
|
|
||||||
.. automethod:: Model.fields_view_get
|
|
||||||
|
|
||||||
.. _reference/orm/domains:
|
.. _reference/orm/domains:
|
||||||
|
|
||||||
Search domains
|
Search domains
|
||||||
|
|
|
||||||
|
|
@@ -598,7 +598,7 @@ Javascript
|
||||||
#. Add any step you want.
|
#. Add any step you want.
|
||||||
|
|
||||||
Every step contains at least a trigger. You can either use the `predefined steps
|
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/16.0/addons/web_tour/static/src/js/tour_step_utils.js>`_ or write
|
||||||
your own personalized step.
|
your own personalized step.
|
||||||
|
|
||||||
Here are some example of steps:
|
Here are some example of steps:
|
||||||
|
|
|
||||||
|
|
@@ -336,6 +336,21 @@ A view's specs are applied sequentially.
|
||||||
views: ``hasclass(*classes)`` matches if the context node has
|
views: ``hasclass(*classes)`` matches if the context node has
|
||||||
all the specified classes
|
all the specified classes
|
||||||
|
|
||||||
|
Model Commons
|
||||||
|
====================
|
||||||
|
|
||||||
|
.. currentmodule:: odoo.addons.base.models.ir_ui_view
|
||||||
|
|
||||||
|
Attributes
|
||||||
|
----------
|
||||||
|
|
||||||
|
.. autoattribute:: Model._date_name
|
||||||
|
|
||||||
|
Methods
|
||||||
|
-------
|
||||||
|
.. automethod:: Model.get_views
|
||||||
|
.. automethod:: Model.get_view
|
||||||
|
|
||||||
.. _reference/views/types:
|
.. _reference/views/types:
|
||||||
|
|
||||||
View types
|
View types
|
||||||
|
|
|
||||||