diff --git a/.tx/config b/.tx/config index c82d24533..b24d7277b 100644 --- a/.tx/config +++ b/.tx/config @@ -1,63 +1,122 @@ [main] host = https://www.transifex.com -[o:odoo:p:odoo-16-doc:r:administration] -file_filter = locale//LC_MESSAGES/administration.po -source_file = locale/sources/administration.pot -source_lang = en +[o:odoo:p:odoo-17-doc:r:administration] +file_filter = locale//LC_MESSAGES/administration.po +source_file = locale/sources/administration.pot +type = POT +minimum_perc = 0 +resource_name = administration +replace_edited_strings = false +keep_translations = false +source_lang = en -[o:odoo:p:odoo-16-doc:r:applications] -file_filter = locale//LC_MESSAGES/applications.po -source_file = locale/sources/applications.pot -source_lang = en +[o:odoo:p:odoo-17-doc:r:applications] +file_filter = locale//LC_MESSAGES/applications.po +source_file = locale/sources/applications.pot +type = POT +minimum_perc = 0 +resource_name = applications +replace_edited_strings = false +keep_translations = false +source_lang = en -[o:odoo:p:odoo-16-doc:r:finance] -file_filter = locale//LC_MESSAGES/finance.po -source_file = locale/sources/finance.pot -source_lang = en +[o:odoo:p:odoo-17-doc:r:finance] +file_filter = locale//LC_MESSAGES/finance.po +source_file = locale/sources/finance.pot +type = POT +minimum_perc = 0 +resource_name = finance +replace_edited_strings = false +keep_translations = false +source_lang = en -[o:odoo:p:odoo-16-doc:r:general] -file_filter = locale//LC_MESSAGES/general.po -source_file = locale/sources/general.pot -source_lang = en +[o:odoo:p:odoo-17-doc:r:general] +file_filter = locale//LC_MESSAGES/general.po +source_file = locale/sources/general.pot +type = POT +minimum_perc = 0 +resource_name = general +replace_edited_strings = false +keep_translations = false +source_lang = en -[o:odoo:p:odoo-16-doc:r:index] -file_filter = locale//LC_MESSAGES/index.po -source_file = locale/sources/index.pot -source_lang = en +[o:odoo:p:odoo-17-doc:r:index] +file_filter = locale//LC_MESSAGES/index.po +source_file = locale/sources/index.pot +type = POT +minimum_perc = 0 +resource_name = index +replace_edited_strings = false +keep_translations = false +source_lang = en -[o:odoo:p:odoo-16-doc:r:inventory_and_mrp] -file_filter = locale//LC_MESSAGES/inventory_and_mrp.po -source_file = locale/sources/inventory_and_mrp.pot -source_lang = en +[o:odoo:p:odoo-17-doc:r:inventory_and_mrp] +file_filter = locale//LC_MESSAGES/inventory_and_mrp.po +source_file = locale/sources/inventory_and_mrp.pot +type = POT +minimum_perc = 0 +resource_name = inventory_and_mrp +replace_edited_strings = false +keep_translations = false +source_lang = en -[o:odoo:p:odoo-16-doc:r:marketing] -file_filter = locale//LC_MESSAGES/marketing.po -source_file = locale/sources/marketing.pot -source_lang = en +[o:odoo:p:odoo-17-doc:r:marketing] +file_filter = locale//LC_MESSAGES/marketing.po +source_file = locale/sources/marketing.pot +type = POT +minimum_perc = 0 +resource_name = marketing +replace_edited_strings = false +keep_translations = false +source_lang = en -[o:odoo:p:odoo-16-doc:r:productivity] -file_filter = locale//LC_MESSAGES/productivity.po -source_file = locale/sources/productivity.pot -source_lang = en +[o:odoo:p:odoo-17-doc:r:productivity] +file_filter = locale//LC_MESSAGES/productivity.po +source_file = locale/sources/productivity.pot +type = POT +minimum_perc = 0 +resource_name = productivity +replace_edited_strings = false +keep_translations = false +source_lang = en -[o:odoo:p:odoo-16-doc:r:sales] -file_filter = locale//LC_MESSAGES/sales.po -source_file = locale/sources/sales.pot -source_lang = en +[o:odoo:p:odoo-17-doc:r:sales] +file_filter = locale//LC_MESSAGES/sales.po +source_file = locale/sources/sales.pot +type = POT +minimum_perc = 0 +resource_name = sales +replace_edited_strings = false +keep_translations = false +source_lang = en -[o:odoo:p:odoo-16-doc:r:services] -file_filter = locale//LC_MESSAGES/services.po -source_file = locale/sources/services.pot -source_lang = en +[o:odoo:p:odoo-17-doc:r:services] +file_filter = locale//LC_MESSAGES/services.po +source_file = locale/sources/services.pot +type = POT +minimum_perc = 0 +resource_name = services +replace_edited_strings = false +keep_translations = false +source_lang = en -[o:odoo:p:odoo-16-doc:r:user_settings] -file_filter = locale//LC_MESSAGES/settings.po -source_file = locale/sources/settings.pot -source_lang = en - -[o:odoo:p:odoo-16-doc:r:websites] -file_filter = locale//LC_MESSAGES/websites.po -source_file = locale/sources/websites.pot -source_lang = en +[o:odoo:p:odoo-17-doc:r:user_settings] +file_filter = locale//LC_MESSAGES/settings.po +source_file = locale/sources/settings.pot +type = POT +minimum_perc = 0 +resource_name = settings +replace_edited_strings = false +keep_translations = false +source_lang = en +[o:odoo:p:odoo-17-doc:r:websites] +file_filter = locale//LC_MESSAGES/websites.po +source_file = locale/sources/websites.pot +type = POT +minimum_perc = 0 +resource_name = websites +replace_edited_strings = false +keep_translations = false +source_lang = en diff --git a/locale/sources/administration.pot b/locale/sources/administration.pot index 936bf81ad..2127a93dc 100644 --- a/locale/sources/administration.pot +++ b/locale/sources/administration.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Odoo saas-16.1\n" +"Project-Id-Version: Odoo 17.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-27 12:38+0000\n" +"POT-Creation-Date: 2023-11-08 08:46+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -244,7 +244,7 @@ msgid "Setting a proper :option:`--db-filter ` is an impor msgstr "" #: ../../content/administration/install/deploy.rst:76 -#: ../../content/administration/install/source.rst:189 +#: ../../content/administration/install/source.rst:193 msgid "PostgreSQL" msgstr "" @@ -893,8 +893,9 @@ msgstr "" #: ../../content/administration/install/online.rst:14 #: ../../content/administration/maintain/domain_names.rst:166 #: ../../content/administration/maintain/domain_names.rst:236 -#: ../../content/administration/maintain/supported_versions.rst:31 -#: ../../content/administration/upgrade/odoo_online.rst:3 +#: ../../content/administration/maintain/supported_versions.rst:29 +#: ../../content/administration/upgrade.rst:90 +#: ../../content/administration/upgrade.rst:305 msgid "Odoo Online" msgstr "" @@ -932,14 +933,14 @@ msgstr "" #: ../../content/administration/install/packages.rst:25 #: ../../content/administration/install/source.rst:52 -#: ../../content/administration/install/source.rst:125 -#: ../../content/administration/install/source.rst:148 -#: ../../content/administration/install/source.rst:170 -#: ../../content/administration/install/source.rst:195 -#: ../../content/administration/install/source.rst:224 -#: ../../content/administration/install/source.rst:267 -#: ../../content/administration/install/source.rst:380 -#: ../../content/administration/install/source.rst:442 +#: ../../content/administration/install/source.rst:129 +#: ../../content/administration/install/source.rst:152 +#: ../../content/administration/install/source.rst:174 +#: ../../content/administration/install/source.rst:199 +#: ../../content/administration/install/source.rst:228 +#: ../../content/administration/install/source.rst:271 +#: ../../content/administration/install/source.rst:384 +#: ../../content/administration/install/source.rst:446 msgid "Linux" msgstr "" @@ -955,7 +956,7 @@ msgstr "" #: ../../content/administration/install/packages.rst:34 #: ../../content/administration/install/packages.rst:70 #: ../../content/administration/install/packages.rst:100 -#: ../../content/administration/install/source.rst:274 +#: ../../content/administration/install/source.rst:278 msgid "Debian/Ubuntu" msgstr "" @@ -974,7 +975,7 @@ msgid "Make sure that the `sudo` command is available and well configured and, o msgstr "" #: ../../content/administration/install/packages.rst:57 -#: ../../content/administration/install/source.rst:412 +#: ../../content/administration/install/source.rst:416 msgid "`wkhtmltopdf` is not installed through **pip** and must be installed manually in `version 0.12.5 `_ for it to support headers and footers. Check out the `wkhtmltopdf wiki `_ for more details on the various versions." msgstr "" @@ -1003,7 +1004,7 @@ msgid "Instead of using the repository, packages for both the **Community** and msgstr "" #: ../../content/administration/install/packages.rst:103 -msgid "Odoo 16 'deb' package currently supports `Debian Buster `_ and `Ubuntu 18.04 `_ or above." +msgid "Odoo 17 'deb' package currently supports `Debian Buster `_ and `Ubuntu 18.04 `_ or above." msgstr "" #: ../../content/administration/install/packages.rst:107 @@ -1019,7 +1020,7 @@ msgid "The `num2words` Python package - needed to render textual amounts - does msgstr "" #: ../../content/administration/install/packages.rst:135 -msgid "Odoo 16 'rpm' package supports Fedora 36." +msgid "Odoo 17 'rpm' package supports Fedora 36." msgstr "" #: ../../content/administration/install/packages.rst:137 @@ -1028,14 +1029,14 @@ msgstr "" #: ../../content/administration/install/packages.rst:148 #: ../../content/administration/install/source.rst:70 -#: ../../content/administration/install/source.rst:129 -#: ../../content/administration/install/source.rst:154 -#: ../../content/administration/install/source.rst:176 -#: ../../content/administration/install/source.rst:204 -#: ../../content/administration/install/source.rst:235 -#: ../../content/administration/install/source.rst:320 -#: ../../content/administration/install/source.rst:389 -#: ../../content/administration/install/source.rst:452 +#: ../../content/administration/install/source.rst:133 +#: ../../content/administration/install/source.rst:158 +#: ../../content/administration/install/source.rst:180 +#: ../../content/administration/install/source.rst:208 +#: ../../content/administration/install/source.rst:239 +#: ../../content/administration/install/source.rst:324 +#: ../../content/administration/install/source.rst:393 +#: ../../content/administration/install/source.rst:456 msgid "Windows" msgstr "" @@ -1149,14 +1150,14 @@ msgid "Clone with SSH" msgstr "" #: ../../content/administration/install/source.rst:88 -#: ../../content/administration/install/source.rst:137 -#: ../../content/administration/install/source.rst:160 -#: ../../content/administration/install/source.rst:182 -#: ../../content/administration/install/source.rst:209 -#: ../../content/administration/install/source.rst:249 -#: ../../content/administration/install/source.rst:343 -#: ../../content/administration/install/source.rst:401 -#: ../../content/administration/install/source.rst:463 +#: ../../content/administration/install/source.rst:141 +#: ../../content/administration/install/source.rst:164 +#: ../../content/administration/install/source.rst:186 +#: ../../content/administration/install/source.rst:213 +#: ../../content/administration/install/source.rst:253 +#: ../../content/administration/install/source.rst:347 +#: ../../content/administration/install/source.rst:405 +#: ../../content/administration/install/source.rst:467 msgid "Mac OS" msgstr "" @@ -1169,249 +1170,253 @@ msgid "Python" msgstr "" #: ../../content/administration/install/source.rst:121 -msgid "Odoo requires **Python 3.7** or later to run." +msgid "Odoo requires **Python 3.10** or later to run." msgstr "" -#: ../../content/administration/install/source.rst:127 -msgid "Use a package manager to download and install Python 3 if needed." +#: ../../content/administration/install/source.rst:123 +msgid "Minimum requirement updated from Python 3.7 to Python 3.10." msgstr "" #: ../../content/administration/install/source.rst:131 +msgid "Use a package manager to download and install Python 3 if needed." +msgstr "" + +#: ../../content/administration/install/source.rst:135 msgid "`Download the latest version of Python 3 `_ and install it." msgstr "" -#: ../../content/administration/install/source.rst:134 +#: ../../content/administration/install/source.rst:138 msgid "During installation, check **Add Python 3 to PATH**, then click **Customize Installation** and make sure that **pip** is checked." msgstr "" -#: ../../content/administration/install/source.rst:139 +#: ../../content/administration/install/source.rst:143 msgid "Use a package manager (`Homebrew `_, `MacPorts `_) to download and install Python 3 if needed." msgstr "" -#: ../../content/administration/install/source.rst:143 +#: ../../content/administration/install/source.rst:147 msgid "If Python 3 is already installed, make sure that the version is 3.7 or above, as previous versions are not compatible with Odoo." msgstr "" -#: ../../content/administration/install/source.rst:166 +#: ../../content/administration/install/source.rst:170 msgid "Verify that `pip `_ is also installed for this version." msgstr "" -#: ../../content/administration/install/source.rst:191 +#: ../../content/administration/install/source.rst:195 msgid "Odoo uses PostgreSQL as its database management system." msgstr "" -#: ../../content/administration/install/source.rst:197 +#: ../../content/administration/install/source.rst:201 msgid "Use a package manager to download and install PostgreSQL (supported versions: 12.0 or above). It can be achieved by executing the following:" msgstr "" -#: ../../content/administration/install/source.rst:206 +#: ../../content/administration/install/source.rst:210 msgid "`Download PostgreSQL `_ (supported versions: 12.0 or above) and install it." msgstr "" -#: ../../content/administration/install/source.rst:211 +#: ../../content/administration/install/source.rst:215 msgid "Use `Postgres.app `_ to download and install PostgreSQL (supported version: 12.0 or above)." msgstr "" -#: ../../content/administration/install/source.rst:215 +#: ../../content/administration/install/source.rst:219 msgid "To make the command line tools bundled with Postgres.app available, make sure to set up the `$PATH` variable by following the `Postgres.app CLI tools instructions `_." msgstr "" -#: ../../content/administration/install/source.rst:219 +#: ../../content/administration/install/source.rst:223 msgid "By default, the only user is `postgres`. As Odoo forbids connecting as `postgres`, create a new PostgreSQL user." msgstr "" -#: ../../content/administration/install/source.rst:232 -#: ../../content/administration/install/source.rst:257 +#: ../../content/administration/install/source.rst:236 +#: ../../content/administration/install/source.rst:261 msgid "Because the PostgreSQL user has the same name as the Unix login, it is possible to connect to the database without a password." msgstr "" -#: ../../content/administration/install/source.rst:237 +#: ../../content/administration/install/source.rst:241 msgid "Add PostgreSQL's `bin` directory (by default: :file:`C:\\\\Program Files\\\\PostgreSQL\\\\\\\\bin`) to the `PATH`." msgstr "" -#: ../../content/administration/install/source.rst:239 +#: ../../content/administration/install/source.rst:243 msgid "Create a postgres user with a password using the pg admin gui:" msgstr "" -#: ../../content/administration/install/source.rst:241 +#: ../../content/administration/install/source.rst:245 msgid "Open **pgAdmin**." msgstr "" -#: ../../content/administration/install/source.rst:242 +#: ../../content/administration/install/source.rst:246 msgid "Double-click the server to create a connection." msgstr "" -#: ../../content/administration/install/source.rst:243 +#: ../../content/administration/install/source.rst:247 msgid "Select :menuselection:`Object --> Create --> Login/Group Role`." msgstr "" -#: ../../content/administration/install/source.rst:244 +#: ../../content/administration/install/source.rst:248 msgid "Enter the username in the **Role Name** field (e.g., `odoo`)." msgstr "" -#: ../../content/administration/install/source.rst:245 +#: ../../content/administration/install/source.rst:249 msgid "Open the **Definition** tab, enter a password (e.g., `odoo`), and click **Save**." msgstr "" -#: ../../content/administration/install/source.rst:246 +#: ../../content/administration/install/source.rst:250 msgid "Open the **Privileges** tab and switch **Can login?** to `Yes` and **Create database?** to `Yes`." msgstr "" -#: ../../content/administration/install/source.rst:263 +#: ../../content/administration/install/source.rst:267 msgid "Dependencies" msgstr "" -#: ../../content/administration/install/source.rst:269 +#: ../../content/administration/install/source.rst:273 msgid "Using **distribution packages** is the preferred way of installing dependencies. Alternatively, install the Python dependencies with **pip**." msgstr "" -#: ../../content/administration/install/source.rst:276 -msgid "For Debian-based systems, the packages are listed in the `debian/control `_ file of the Odoo sources." +#: ../../content/administration/install/source.rst:280 +msgid "For Debian-based systems, the packages are listed in the `debian/control `_ file of the Odoo sources." msgstr "" -#: ../../content/administration/install/source.rst:279 +#: ../../content/administration/install/source.rst:283 msgid "On Debian/Ubuntu, the following commands should install the required packages:" msgstr "" -#: ../../content/administration/install/source.rst:286 +#: ../../content/administration/install/source.rst:290 msgid "Install with pip" msgstr "" -#: ../../content/administration/install/source.rst:288 +#: ../../content/administration/install/source.rst:292 msgid "As some of the Python packages need a compilation step, they require system libraries to be installed." msgstr "" -#: ../../content/administration/install/source.rst:291 +#: ../../content/administration/install/source.rst:295 msgid "On Debian/Ubuntu, the following command should install these required libraries:" msgstr "" -#: ../../content/administration/install/source.rst:297 +#: ../../content/administration/install/source.rst:301 msgid "Odoo dependencies are listed in the :file:`requirements.txt` file located at the root of the Odoo Community directory." msgstr "" -#: ../../content/administration/install/source.rst:301 +#: ../../content/administration/install/source.rst:305 msgid "The Python packages in :file:`requirements.txt` are based on their stable/LTS Debian/Ubuntu corresponding version at the moment of the Odoo release. For example, for Odoo 15.0, the `python3-babel` package version is 2.8.0 in Debian Bullseye and 2.6.0 in Ubuntu Focal. The lowest version is then chosen in the :file:`requirements.txt`." msgstr "" -#: ../../content/administration/install/source.rst:308 -#: ../../content/administration/install/source.rst:330 -#: ../../content/administration/install/source.rst:349 +#: ../../content/administration/install/source.rst:312 +#: ../../content/administration/install/source.rst:334 +#: ../../content/administration/install/source.rst:353 msgid "It can be preferable not to mix Python module packages between different instances of Odoo or with the system. However, it is possible to use `virtualenv `_ to create isolated Python environments." msgstr "" -#: ../../content/administration/install/source.rst:312 +#: ../../content/administration/install/source.rst:316 msgid "Navigate to the path of the Odoo Community installation (:file:`CommunityPath`) and run **pip** on the requirements file to install the requirements for the current user." msgstr "" -#: ../../content/administration/install/source.rst:322 +#: ../../content/administration/install/source.rst:326 msgid "Before installing the dependencies, download and install the `Build Tools for Visual Studio `_. Select **C++ build tools** in the **Workloads** tab and install them when prompted." msgstr "" -#: ../../content/administration/install/source.rst:326 -#: ../../content/administration/install/source.rst:345 +#: ../../content/administration/install/source.rst:330 +#: ../../content/administration/install/source.rst:349 msgid "Odoo dependencies are listed in the `requirements.txt` file located at the root of the Odoo Community directory." msgstr "" -#: ../../content/administration/install/source.rst:334 +#: ../../content/administration/install/source.rst:338 msgid "Navigate to the path of the Odoo Community installation (`CommunityPath`) and run **pip** on the requirements file in a terminal **with Administrator privileges**:" msgstr "" -#: ../../content/administration/install/source.rst:353 +#: ../../content/administration/install/source.rst:357 msgid "Navigate to the path of the Odoo Community installation (`CommunityPath`) and run **pip** on the requirements file:" msgstr "" -#: ../../content/administration/install/source.rst:363 +#: ../../content/administration/install/source.rst:367 msgid "Non-Python dependencies must be installed with a package manager (`Homebrew `_, `MacPorts `_)." msgstr "" -#: ../../content/administration/install/source.rst:366 +#: ../../content/administration/install/source.rst:370 msgid "Download and install the **Command Line Tools**:" msgstr "" -#: ../../content/administration/install/source.rst:372 +#: ../../content/administration/install/source.rst:376 msgid "Use the package manager to install non-Python dependencies." msgstr "" -#: ../../content/administration/install/source.rst:375 +#: ../../content/administration/install/source.rst:379 msgid "For languages using a **right-to-left interface** (such as Arabic or Hebrew), the `rtlcss` package is required." msgstr "" -#: ../../content/administration/install/source.rst:382 +#: ../../content/administration/install/source.rst:386 msgid "Download and install **nodejs** and **npm** with a package manager." msgstr "" -#: ../../content/administration/install/source.rst:383 -#: ../../content/administration/install/source.rst:392 -#: ../../content/administration/install/source.rst:405 +#: ../../content/administration/install/source.rst:387 +#: ../../content/administration/install/source.rst:396 +#: ../../content/administration/install/source.rst:409 msgid "Install `rtlcss`:" msgstr "" -#: ../../content/administration/install/source.rst:391 +#: ../../content/administration/install/source.rst:395 msgid "Download and install `nodejs `_." msgstr "" -#: ../../content/administration/install/source.rst:398 +#: ../../content/administration/install/source.rst:402 msgid "Edit the system environment's variable `PATH` to add the folder where `rtlcss.cmd` is located (typically: :file:`C:\\\\Users\\\\\\\\AppData\\\\Roaming\\\\npm\\\\`)." msgstr "" -#: ../../content/administration/install/source.rst:403 +#: ../../content/administration/install/source.rst:407 msgid "Download and install **nodejs** with a package manager (`Homebrew `_, `MacPorts `_)." msgstr "" -#: ../../content/administration/install/source.rst:420 +#: ../../content/administration/install/source.rst:424 msgid "Running Odoo" msgstr "" -#: ../../content/administration/install/source.rst:422 +#: ../../content/administration/install/source.rst:426 msgid "Once all dependencies are set up, Odoo can be launched by running `odoo-bin`, the command-line interface of the server. It is located at the root of the Odoo Community directory." msgstr "" -#: ../../content/administration/install/source.rst:425 +#: ../../content/administration/install/source.rst:429 msgid "To configure the server, either specify :ref:`command-line arguments ` or a :ref:`configuration file `." msgstr "" -#: ../../content/administration/install/source.rst:429 +#: ../../content/administration/install/source.rst:433 msgid "For the Enterprise edition, add the path to the `enterprise` add-ons to the `addons-path` argument. Note that it must come before the other paths in `addons-path` for add-ons to be loaded correctly." msgstr "" -#: ../../content/administration/install/source.rst:433 +#: ../../content/administration/install/source.rst:437 msgid "Common necessary configurations are:" msgstr "" -#: ../../content/administration/install/source.rst:435 +#: ../../content/administration/install/source.rst:439 msgid "PostgreSQL user and password." msgstr "" -#: ../../content/administration/install/source.rst:436 +#: ../../content/administration/install/source.rst:440 msgid "Custom addon paths beyond the defaults to load custom modules." msgstr "" -#: ../../content/administration/install/source.rst:438 +#: ../../content/administration/install/source.rst:442 msgid "A typical way to run the server would be:" msgstr "" -#: ../../content/administration/install/source.rst:449 -#: ../../content/administration/install/source.rst:470 +#: ../../content/administration/install/source.rst:453 +#: ../../content/administration/install/source.rst:474 msgid "Where `CommunityPath` is the path of the Odoo Community installation, and `mydb` is the name of the PostgreSQL database." msgstr "" -#: ../../content/administration/install/source.rst:459 +#: ../../content/administration/install/source.rst:463 msgid "Where `CommunityPath` is the path of the Odoo Community installation, `dbuser` is the PostgreSQL login, `dbpassword` is the PostgreSQL password, and `mydb` is the name of the PostgreSQL database." msgstr "" -#: ../../content/administration/install/source.rst:473 +#: ../../content/administration/install/source.rst:477 msgid "After the server has started (the INFO log `odoo.modules.loading: Modules loaded.` is printed), open http://localhost:8069 in a web browser and log into the Odoo database with the base administrator account: use `admin` as the email and, again, `admin` as the password." msgstr "" -#: ../../content/administration/install/source.rst:478 +#: ../../content/administration/install/source.rst:482 msgid "From there, create and manage new :doc:`users <../../applications/general/users/manage_users>`." msgstr "" -#: ../../content/administration/install/source.rst:479 +#: ../../content/administration/install/source.rst:483 msgid "The user account used to log into Odoo's web interface differs from the :option:`--db_user ` CLI argument." msgstr "" -#: ../../content/administration/install/source.rst:483 +#: ../../content/administration/install/source.rst:487 msgid ":doc:`The list of CLI arguments for odoo-bin `" msgstr "" @@ -1982,9 +1987,10 @@ msgstr "" #: ../../content/administration/maintain/domain_names.rst:171 #: ../../content/administration/maintain/domain_names.rst:250 -#: ../../content/administration/maintain/supported_versions.rst:32 +#: ../../content/administration/maintain/supported_versions.rst:30 #: ../../content/administration/odoo_sh.rst:5 -#: ../../content/administration/upgrade/odoo_sh.rst:3 +#: ../../content/administration/upgrade.rst:120 +#: ../../content/administration/upgrade.rst:316 msgid "Odoo.sh" msgstr "" @@ -3004,7 +3010,7 @@ msgstr "" #: ../../content/administration/odoo_sh/getting_started/branches.rst:293 #: ../../content/administration/odoo_sh/getting_started/settings.rst:77 #: ../../content/administration/odoo_sh/getting_started/settings.rst:113 -#: ../../content/administration/upgrade.rst:10 +#: ../../content/administration/upgrade.rst:3 msgid "Upgrade" msgstr "" @@ -3013,7 +3019,7 @@ msgid "Trigger a database upgrade." msgstr "" #: ../../content/administration/maintain/odoo_online.rst:33 -msgid "For more information about the upgrade process, check out the :doc:`Odoo Online upgrade documentation <../upgrade/odoo_online>`." +msgid "For more information about the upgrade process, check out the :ref:`Odoo Online upgrade documentation `." msgstr "" #: ../../content/administration/maintain/odoo_online.rst:39 @@ -3309,70 +3315,64 @@ msgstr "" msgid "The database uuid is currently accessible from the menu :menuselection:`Settings --> Technical --> System Parameters`, we advise you to use a `uuid generator `_ or to use the unix command ``uuidgen`` to generate a new uuid. You can then simply replace it like any other record by clicking on it and using the edit button." msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:6 -#: ../../content/administration/upgrade.rst:208 +#: ../../content/administration/maintain/supported_versions.rst:7 msgid "Supported versions" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:8 +#: ../../content/administration/maintain/supported_versions.rst:9 msgid "Odoo provides support and bug fixing **for the 3 last major versions** of Odoo." msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:11 +#: ../../content/administration/maintain/supported_versions.rst:12 msgid "Odoo releases intermediary versions called **Online versions** on the :doc:`Odoo Online ` hosting every two months. Odoo Online users can then benefit from the latest features of Odoo." msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:15 +#: ../../content/administration/maintain/supported_versions.rst:16 msgid "Admins of Odoo Online databases are invited to :doc:`upgrade <../upgrade>` them regularly." msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:16 +#: ../../content/administration/maintain/supported_versions.rst:17 msgid "Online versions are *not* released for Odoo.sh and On-Premise installations." msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:17 +#: ../../content/administration/maintain/supported_versions.rst:18 msgid "Online versions are listed below as *SaaS*." msgstr "" #: ../../content/administration/maintain/supported_versions.rst:20 -msgid "What's the support status of my Odoo?" -msgstr "" - -#: ../../content/administration/maintain/supported_versions.rst:22 msgid "This matrix shows the support status of every version." msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:24 +#: ../../content/administration/maintain/supported_versions.rst:22 msgid "**Major releases are in bold type.**" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:33 -#: ../../content/administration/upgrade/on_premise.rst:3 +#: ../../content/administration/maintain/supported_versions.rst:31 msgid "On-Premise" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:34 +#: ../../content/administration/maintain/supported_versions.rst:32 msgid "Release date" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:35 +#: ../../content/administration/maintain/supported_versions.rst:33 msgid "End of support" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:36 -msgid "Odoo saas~16.4" +#: ../../content/administration/maintain/supported_versions.rst:34 +msgid "**Odoo 17.0**" msgstr "" +#: ../../content/administration/maintain/supported_versions.rst:35 +#: ../../content/administration/maintain/supported_versions.rst:36 #: ../../content/administration/maintain/supported_versions.rst:37 -#: ../../content/administration/maintain/supported_versions.rst:61 -#: ../../content/administration/maintain/supported_versions.rst:62 -#: ../../content/administration/maintain/supported_versions.rst:63 -#: ../../content/administration/maintain/supported_versions.rst:79 -#: ../../content/administration/maintain/supported_versions.rst:80 -#: ../../content/administration/maintain/supported_versions.rst:81 +#: ../../content/administration/maintain/supported_versions.rst:41 +#: ../../content/administration/maintain/supported_versions.rst:65 +#: ../../content/administration/maintain/supported_versions.rst:66 +#: ../../content/administration/maintain/supported_versions.rst:67 +#: ../../content/administration/maintain/supported_versions.rst:83 +#: ../../content/administration/maintain/supported_versions.rst:84 #: ../../content/administration/maintain/supported_versions.rst:85 -#: ../../content/administration/maintain/supported_versions.rst:86 -#: ../../content/administration/maintain/supported_versions.rst:87 #: ../../content/administration/odoo_sh/getting_started/settings.rst:58 #: ../../content/administration/odoo_sh/getting_started/settings.rst:59 #: ../../content/administration/odoo_sh/getting_started/settings.rst:62 @@ -3404,161 +3404,172 @@ msgid "|green|" msgstr "" #: ../../content/administration/maintain/supported_versions.rst:38 +#: ../../content/administration/maintain/supported_versions.rst:93 +msgid "November 2023" +msgstr "" + #: ../../content/administration/maintain/supported_versions.rst:39 -#: ../../content/administration/maintain/supported_versions.rst:44 -#: ../../content/administration/maintain/supported_versions.rst:45 -#: ../../content/administration/maintain/supported_versions.rst:50 -#: ../../content/administration/maintain/supported_versions.rst:51 -#: ../../content/administration/maintain/supported_versions.rst:56 -#: ../../content/administration/maintain/supported_versions.rst:57 -#: ../../content/administration/maintain/supported_versions.rst:68 -#: ../../content/administration/maintain/supported_versions.rst:69 -#: ../../content/administration/maintain/supported_versions.rst:74 -#: ../../content/administration/maintain/supported_versions.rst:75 -msgid "N/A" +msgid "November 2026 (planned)" msgstr "" #: ../../content/administration/maintain/supported_versions.rst:40 -msgid "August 2023" +msgid "Odoo saas~16.4" msgstr "" #: ../../content/administration/maintain/supported_versions.rst:42 -msgid "Odoo saas~16.3" +#: ../../content/administration/maintain/supported_versions.rst:43 +#: ../../content/administration/maintain/supported_versions.rst:48 +#: ../../content/administration/maintain/supported_versions.rst:49 +#: ../../content/administration/maintain/supported_versions.rst:54 +#: ../../content/administration/maintain/supported_versions.rst:55 +#: ../../content/administration/maintain/supported_versions.rst:60 +#: ../../content/administration/maintain/supported_versions.rst:61 +#: ../../content/administration/maintain/supported_versions.rst:72 +#: ../../content/administration/maintain/supported_versions.rst:73 +#: ../../content/administration/maintain/supported_versions.rst:78 +#: ../../content/administration/maintain/supported_versions.rst:79 +msgid "N/A" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:43 -#: ../../content/administration/maintain/supported_versions.rst:49 -#: ../../content/administration/maintain/supported_versions.rst:55 -#: ../../content/administration/maintain/supported_versions.rst:67 -#: ../../content/administration/maintain/supported_versions.rst:73 -#: ../../content/administration/maintain/supported_versions.rst:91 -#: ../../content/administration/maintain/supported_versions.rst:92 -#: ../../content/administration/maintain/supported_versions.rst:93 -msgid "|red|" +#: ../../content/administration/maintain/supported_versions.rst:44 +msgid "August 2023" msgstr "" #: ../../content/administration/maintain/supported_versions.rst:46 +msgid "Odoo saas~16.3" +msgstr "" + +#: ../../content/administration/maintain/supported_versions.rst:47 +#: ../../content/administration/maintain/supported_versions.rst:53 +#: ../../content/administration/maintain/supported_versions.rst:59 +#: ../../content/administration/maintain/supported_versions.rst:71 +#: ../../content/administration/maintain/supported_versions.rst:77 +#: ../../content/administration/maintain/supported_versions.rst:89 +#: ../../content/administration/maintain/supported_versions.rst:90 +#: ../../content/administration/maintain/supported_versions.rst:91 +#: ../../content/administration/maintain/supported_versions.rst:95 +#: ../../content/administration/maintain/supported_versions.rst:96 +#: ../../content/administration/maintain/supported_versions.rst:97 +#: ../../content/administration/maintain/supported_versions.rst:101 +#: ../../content/administration/maintain/supported_versions.rst:102 +#: ../../content/administration/maintain/supported_versions.rst:103 +msgid "|red|" +msgstr "" + +#: ../../content/administration/maintain/supported_versions.rst:50 msgid "June 2023" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:48 +#: ../../content/administration/maintain/supported_versions.rst:52 msgid "Odoo saas~16.2" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:52 +#: ../../content/administration/maintain/supported_versions.rst:56 msgid "March 2023" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:54 +#: ../../content/administration/maintain/supported_versions.rst:58 msgid "Odoo saas~16.1" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:58 +#: ../../content/administration/maintain/supported_versions.rst:62 msgid "February 2023" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:60 +#: ../../content/administration/maintain/supported_versions.rst:64 msgid "**Odoo 16.0**" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:64 -#: ../../content/administration/maintain/supported_versions.rst:95 +#: ../../content/administration/maintain/supported_versions.rst:68 +#: ../../content/administration/maintain/supported_versions.rst:99 msgid "October 2022" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:65 -msgid "October 2025 (planned)" -msgstr "" - -#: ../../content/administration/maintain/supported_versions.rst:66 -msgid "Odoo saas~15.2" +#: ../../content/administration/maintain/supported_versions.rst:69 +msgid "November 2025 (planned)" msgstr "" #: ../../content/administration/maintain/supported_versions.rst:70 +msgid "Odoo saas~15.2" +msgstr "" + +#: ../../content/administration/maintain/supported_versions.rst:74 msgid "March 2022" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:71 +#: ../../content/administration/maintain/supported_versions.rst:75 msgid "January 2023" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:72 +#: ../../content/administration/maintain/supported_versions.rst:76 msgid "Odoo saas~15.1" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:76 +#: ../../content/administration/maintain/supported_versions.rst:80 msgid "February 2022" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:77 +#: ../../content/administration/maintain/supported_versions.rst:81 msgid "July 2022" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:78 +#: ../../content/administration/maintain/supported_versions.rst:82 msgid "**Odoo 15.0**" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:82 +#: ../../content/administration/maintain/supported_versions.rst:86 msgid "October 2021" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:83 -msgid "October 2024 (planned)" -msgstr "" - -#: ../../content/administration/maintain/supported_versions.rst:84 -msgid "**Odoo 14.0**" +#: ../../content/administration/maintain/supported_versions.rst:87 +msgid "November 2024 (planned)" msgstr "" #: ../../content/administration/maintain/supported_versions.rst:88 +msgid "**Odoo 14.0**" +msgstr "" + +#: ../../content/administration/maintain/supported_versions.rst:92 msgid "October 2020" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:89 -msgid "November 2023 (planned)" -msgstr "" - -#: ../../content/administration/maintain/supported_versions.rst:90 +#: ../../content/administration/maintain/supported_versions.rst:94 msgid "**Odoo 13.0**" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:94 +#: ../../content/administration/maintain/supported_versions.rst:98 msgid "October 2019" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:99 -msgid "|green| Supported version" +#: ../../content/administration/maintain/supported_versions.rst:100 +msgid "Older versions" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:101 -msgid "|red| End-of-support" -msgstr "" - -#: ../../content/administration/maintain/supported_versions.rst:103 -msgid "N/A Never released for this platform" +#: ../../content/administration/maintain/supported_versions.rst:104 +msgid "Before 2019" msgstr "" #: ../../content/administration/maintain/supported_versions.rst:105 -msgid "šŸ Future version, not released yet" +msgid "Before 2022" +msgstr "" + +#: ../../content/administration/maintain/supported_versions.rst:107 +msgid "Legend" +msgstr "" + +#: ../../content/administration/maintain/supported_versions.rst:109 +msgid "|green| Supported version" +msgstr "" + +#: ../../content/administration/maintain/supported_versions.rst:111 +msgid "|red| End-of-support" +msgstr "" + +#: ../../content/administration/maintain/supported_versions.rst:113 +msgid "N/A Never released for this platform" msgstr "" #: ../../content/administration/maintain/supported_versions.rst:116 -msgid "I run an older version of Odoo/OpenERP/TinyERP" -msgstr "" - -#: ../../content/administration/maintain/supported_versions.rst:118 -msgid "Odoo 12.0, 11.0, 10.0, 9.0, and 8.0 are not supported anymore, on any platform." -msgstr "" - -#: ../../content/administration/maintain/supported_versions.rst:120 -msgid "OpenERP 7.0, 6.1, 6.0 and 5.0 are not supported anymore, on any platform." -msgstr "" - -#: ../../content/administration/maintain/supported_versions.rst:122 -msgid "TinyERP 4.0, 3.0, 2.0 and 1.0 are not supported anymore, on any platform." -msgstr "" - -#: ../../content/administration/maintain/supported_versions.rst:124 msgid "Even though we don't support older versions, you can always `upgrade from any version `_." msgstr "" @@ -3727,7 +3738,6 @@ msgstr "" #: ../../content/administration/odoo_sh/getting_started/settings.rst:6 #: ../../content/administration/odoo_sh/getting_started/status.rst:6 #: ../../content/administration/odoo_sh/overview.rst:5 -#: ../../content/administration/upgrade/odoo_sh.rst:8 msgid "Overview" msgstr "" @@ -3740,7 +3750,7 @@ msgid "The base is an Ubuntu system, where all of Odoo's required dependencies, msgstr "" #: ../../content/administration/odoo_sh/advanced/containers.rst:14 -msgid "If your project requires additional Python dependencies, or more recent releases, you can define a :file:`requirements.txt` file in the root of your branches listing them. The platform will take care to install these dependencies in your containers. `The pip requirements specifiers `_ documentation can help you write a :file:`requirements.txt` file. To have a concrete example, check out the `requirements.txt file of Odoo `_." +msgid "If your project requires additional Python dependencies, or more recent releases, you can define a :file:`requirements.txt` file in the root of your branches listing them. The platform will take care to install these dependencies in your containers. `The pip requirements specifiers `_ documentation can help you write a :file:`requirements.txt` file. To have a concrete example, check out the `requirements.txt file of Odoo `_." msgstr "" #: ../../content/administration/odoo_sh/advanced/containers.rst:22 @@ -4418,7 +4428,7 @@ msgid "Available for production and staging branches for valid projects." msgstr "" #: ../../content/administration/odoo_sh/getting_started/branches.rst:298 -msgid ":doc:`Upgrade - Odoo.sh <../../upgrade/odoo_sh>`" +msgid ":doc:`Upgrade documentation <../../upgrade>`" msgstr "" #: ../../content/administration/odoo_sh/getting_started/branches.rst:303 @@ -5960,958 +5970,507 @@ msgstr "" msgid "The documentation will help you go live with your Odoo.sh project in no time." msgstr "" -#: ../../content/administration/upgrade.rst:20 -msgid "An upgrade is switching to a newer version of Odoo (e.g., Odoo 14.0 to Odoo 15.0)." +#: ../../content/administration/upgrade.rst:5 +msgid "An upgrade is the process of moving your database from an older version to a newer :doc:`supported version ` (e.g., Odoo 14.0 to Odoo 16.0). Frequently upgrading is essential as each version comes with new and improved features, bug fixes, and security patches." msgstr "" -#: ../../content/administration/upgrade.rst:22 -msgid "An upgrade does not cover:" -msgstr "" - -#: ../../content/administration/upgrade.rst:24 -msgid "Changing :ref:`editions ` (i.e., Community to Enterprise edition)" -msgstr "" - -#: ../../content/administration/upgrade.rst:25 -msgid "Switching :ref:`hosting type ` (i.e., On-Premise to Odoo Online or Odoo.sh)" -msgstr "" - -#: ../../content/administration/upgrade.rst:27 -msgid "Migration from another ERP to Odoo" -msgstr "" - -#: ../../content/administration/upgrade.rst:29 -#: ../../content/administration/upgrade.rst:148 -#: ../../content/administration/upgrade.rst:259 -#: ../../content/administration/upgrade/faq.rst:81 -#: ../../content/administration/upgrade/faq.rst:92 -#: ../../content/administration/upgrade/faq.rst:119 -msgid "|assistance-contact|" -msgstr "" - -#: ../../content/administration/upgrade.rst:32 -msgid ":ref:`upgrade/sla`" -msgstr "" - -#: ../../content/administration/upgrade.rst:37 -msgid "Process workflow" -msgstr "" - -#: ../../content/administration/upgrade.rst:39 -msgid "The upgrade process in a nutshell:" -msgstr "" - -#: ../../content/administration/upgrade.rst:41 -msgid "You create a test upgrade request." -msgstr "" - -#: ../../content/administration/upgrade.rst:42 -msgid "Odoo processes the request automatically by running the database through an upgrade script, which takes between 20 and 120 minutes." -msgstr "" - -#: ../../content/administration/upgrade.rst:44 -msgid "Odoo delivers a test database." -msgstr "" - -#: ../../content/administration/upgrade.rst:45 -msgid "You test your database for possible discrepancies (see :ref:`upgrade/test-guidance`)." -msgstr "" - -#: ../../content/administration/upgrade.rst:46 -msgid "If there are any discrepancies, you report them to the Upgrade support team via the help portal (see :ref:`upgrade/test-assistance`)." -msgstr "" - -#: ../../content/administration/upgrade.rst:48 -msgid "We fix the issues and send you a new test database." -msgstr "" - -#: ../../content/administration/upgrade.rst:49 -msgid "Once you have completed the testing and are happy with the result, you decide on a date and time when you stop users from accessing Odoo, freeze all data entries, and create an upgrade request for the production upgrade." -msgstr "" - -#: ../../content/administration/upgrade.rst:52 -msgid "Odoo delivers the production database through the automated process." -msgstr "" - -#: ../../content/administration/upgrade.rst:53 -msgid "You restore it in your Production environment a few short hours later and continue working on the newly upgraded database (this is done automatically on Odoo Online)." -msgstr "" - -#: ../../content/administration/upgrade.rst:57 -msgid ":doc:`Upgrade process for Odoo Online `" -msgstr "" - -#: ../../content/administration/upgrade.rst:58 -msgid ":doc:`Upgrade process for Odoo.sh `" -msgstr "" - -#: ../../content/administration/upgrade.rst:59 -msgid ":doc:`Upgrade process for On-Premise `" -msgstr "" - -#: ../../content/administration/upgrade.rst:64 -msgid "Testing" -msgstr "" - -#: ../../content/administration/upgrade.rst:66 -msgid "This phase allows you to review an upgraded version of your database without affecting your production database in any way. We suggest that you run the test upgrade process at least once, but you can do it as many times as you need (one at a time)." -msgstr "" - -#: ../../content/administration/upgrade.rst:70 -msgid "Once you receive your upgraded test database, check that all data, processes, and functionality are still correct and working as expected." -msgstr "" - -#: ../../content/administration/upgrade.rst:73 -msgid "If you do find discrepancies, :ref:`report your issues ` and :ref:`request a new test database ` when the reported issues are fixed in the upgrade script." -msgstr "" - -#: ../../content/administration/upgrade.rst:77 -msgid "If you do not find any discrepancies, you can move on to the upgrade of your production database." -msgstr "" - -#: ../../content/administration/upgrade.rst:80 -msgid "A test database is only intended for testing and remains completely unrelated to your present or future production database. Any data you add, or changes you make, will not be reflected in your upgraded production database." -msgstr "" - -#: ../../content/administration/upgrade.rst:85 -msgid "Test databases are neutered and features are disabled to prevent them from having an impact on the production database:" -msgstr "" - -#: ../../content/administration/upgrade.rst:88 -msgid "The serial number of the database is modified (to prevent it from sending information as if it was the production database)." -msgstr "" - -#: ../../content/administration/upgrade.rst:90 -msgid "The :ref:`base URL of the database ` is reset to ``http://localhost:8069`` and the email domain to ``localhost``." -msgstr "" - -#: ../../content/administration/upgrade.rst:92 -msgid "Scheduled actions are disabled (the calendar synchronization, the bank statement synchronization, the planned automated actions, the fetching of incoming mail servers, etc.)." -msgstr "" - -#: ../../content/administration/upgrade.rst:94 -msgid "Outgoing mail servers are disabled by archiving the existing ones and adding a fake/non-working one." -msgstr "" - -#: ../../content/administration/upgrade.rst:96 -msgid "Payment providers and delivery carriers are reset to test environment." -msgstr "" - -#: ../../content/administration/upgrade.rst:97 -msgid "Accounting localization Electronic Data Interchange (EDI) services are disabled." -msgstr "" - -#: ../../content/administration/upgrade.rst:98 -msgid "A system parameter is set to tell the database has been neutered." -msgstr "" - -#: ../../content/administration/upgrade.rst:103 -msgid "Request a test database" -msgstr "" - -#: ../../content/administration/upgrade.rst:105 -msgid "Follow the instructions available per hosting type on the `website form `_ and select *Testing* purpose." -msgstr "" - -#: ../../content/administration/upgrade.rst:-1 -msgid "Selection of the \"Testing\" purpose in the upgrade form on Odoo" -msgstr "" - -#: ../../content/administration/upgrade.rst:115 -msgid "Test guidance" -msgstr "" - -#: ../../content/administration/upgrade.rst:117 -msgid "Every business and organization has its own operational needs and has to test its specific Odoo database individually. We recommend you look at `the test scenario `_ for further information." -msgstr "" - -#: ../../content/administration/upgrade.rst:122 -msgid "Todo" -msgstr "" - -#: ../../content/administration/upgrade.rst:122 -msgid "change link \"test scenario\" once the related doc is published" -msgstr "" - -#: ../../content/administration/upgrade.rst:127 -#: ../../content/administration/upgrade.rst:172 -msgid "Assistance" -msgstr "" - -#: ../../content/administration/upgrade.rst:129 -msgid "If you encounter an issue in the **test database**, please get in touch with Odoo Upgrade Support via the `Odoo Support page `_." -msgstr "" - -#: ../../content/administration/upgrade.rst:132 -msgid "Under the *Ticket Description* section, select *An issue related to my upgrade* ticket type." +#: ../../content/administration/upgrade.rst:13 +msgid "The Rolling Release process allows Odoo Online customers to upgrade their database directly from a message prompt sent to the database administrator as soon as a new version is released. The invitation to upgrade is only sent if no issues are detected during the automatic tests." msgstr "" #: ../../content/administration/upgrade.rst:0 -msgid "Selection of \"An issue related to my upgrade\" as Ticket Type in the support form on Odoo" +msgid "The upgrade message prompt on the top right of the database" msgstr "" -#: ../../content/administration/upgrade.rst:139 -msgid "If you choose another *Ticket Description* type, the request will be redirected to another team. This will slow down the processing and response time." +#: ../../content/administration/upgrade.rst:20 +msgid "It is strongly recommended to manually :ref:`test the upgrade first `. Clicking :guilabel:`I want to test first` redirects to `the database manager `_, where it is possible to request an upgraded test database and check it for any discrepancies." msgstr "" -#: ../../content/administration/upgrade.rst:142 -#: ../../content/administration/upgrade.rst:185 -msgid "Please provide as much detail as you can (i.e., videos and screenshots to illustrate your issue). This will avoid clarifying questions and speed up the resolution process significantly." +#: ../../content/administration/upgrade.rst:25 +msgid "It is **not** recommended to click :guilabel:`Upgrade Now` without testing first, as it immediately triggers the live production database upgrade." msgstr "" -#: ../../content/administration/upgrade.rst:146 -msgid "The purpose of the test phase is not to correct existing data or configurations in your database." +#: ../../content/administration/upgrade.rst:28 +msgid "If the Rolling Release process detects an issue with the upgrade, it will be deactivated until the issue is resolved." msgstr "" -#: ../../content/administration/upgrade.rst:153 -msgid "The production launch" +#: ../../content/administration/upgrade.rst:31 +msgid "An upgrade does not cover:" msgstr "" -#: ../../content/administration/upgrade.rst:155 -msgid "The production upgrade request is when you decide to upgrade your current database with all your production data (invoices, VAT returns, inventories, current orders) to a new version of your choice." +#: ../../content/administration/upgrade.rst:33 +msgid "Downgrading to a previous version of Odoo" msgstr "" -#: ../../content/administration/upgrade.rst:159 -msgid "After your :ref:`tests ` are completed to your satisfaction, submit the request to upgrade your production database via our `website form `_. Select *Production* purpose." +#: ../../content/administration/upgrade.rst:34 +msgid ":doc:`Switching editions ` (e.g., from Community to Enterprise)" msgstr "" -#: ../../content/administration/upgrade.rst:164 -msgid "Going into production without first testing may lead to:" +#: ../../content/administration/upgrade.rst:35 +msgid ":doc:`Changing hosting type ` (e.g., from on-premise to Odoo Online)" msgstr "" -#: ../../content/administration/upgrade.rst:166 -msgid "business interruptions (e.g., no longer having the possibility to validate an action)" +#: ../../content/administration/upgrade.rst:37 +msgid "Migrating from another ERP to Odoo" msgstr "" -#: ../../content/administration/upgrade.rst:167 -msgid "poor customer experiences (e.g., an eCommerce website that does not work correctly)" +#: ../../content/administration/upgrade.rst:40 +msgid "If your database contains a **custom module**, you must first upgrade its source code to be compatible with the new version of Odoo **before upgrading**." msgstr "" -#: ../../content/administration/upgrade.rst:174 -msgid "If you encounter issues or problems in the **production database**, please get in touch with **Odoo Support**:" +#: ../../content/administration/upgrade.rst:47 +msgid "Upgrading in a nutshell" msgstr "" -#: ../../content/administration/upgrade.rst:177 -msgid "Connect to our `Odoo Support page `_." +#: ../../content/administration/upgrade.rst:49 +msgid "Request an upgraded test database (see :ref:`obtaining an upgraded test database `)." msgstr "" -#: ../../content/administration/upgrade.rst:178 -msgid "Under the *Ticket Description* section, select the appropriate type related to your issue but **do not select** the option *An issue related to my upgrade*." +#: ../../content/administration/upgrade.rst:52 +msgid "Thoroughly test the upgraded database (see :ref:`testing the new version of the database `)." msgstr "" -#: ../../content/administration/upgrade.rst:182 -msgid "After upgrading to production, the support will be provided by the Support team instead of the Upgrade team." +#: ../../content/administration/upgrade.rst:55 +msgid "Report any issue encountered during the testing to Odoo via the `support page `__." msgstr "" -#: ../../content/administration/upgrade.rst:189 -msgid "If you choose *An issue related to my upgrade* as ticket type, the request will be redirected to another team than the support one and will slow down the processing and response time." +#: ../../content/administration/upgrade.rst:58 +msgid "(If applicable) : upgrade the source code of your custom module to be compatible with the new version of Odoo." msgstr "" -#: ../../content/administration/upgrade.rst:195 -msgid "Help" +#: ../../content/administration/upgrade.rst:61 +msgid "Once all issues are resolved and you are confident that the upgraded database can be used as your main database without any issues, plan the upgrade of your production database." msgstr "" -#: ../../content/administration/upgrade.rst:200 -msgid "Contact our upgrade service support" +#: ../../content/administration/upgrade.rst:64 +msgid "Request the upgrade for the production database, rendering it unavailable for the time it takes to complete the process (see :ref:`upgrading the production database `)." msgstr "" -#: ../../content/administration/upgrade.rst:202 -msgid "Should you have any more questions about the upgrade, do not hesitate to send a message to `Odoo Upgrade Team `_. We will be happy to answer it as soon as possible." +#: ../../content/administration/upgrade.rst:67 +msgid "Report any issue encountered during the upgrade to Odoo via the `support page `__." msgstr "" -#: ../../content/administration/upgrade.rst:210 -msgid "Please note that Odoo provides support and bug fixing only for the three last major versions of Odoo." +#: ../../content/administration/upgrade.rst:76 +msgid "Obtaining an upgraded test database" msgstr "" -#: ../../content/administration/upgrade.rst:213 -msgid "This is a factor to take into consideration before upgrading. If you are on an older version, we suggest you to prefer the most recent version to benefit from longer support (before having to upgrade again)." +#: ../../content/administration/upgrade.rst:78 +msgid "The `Upgrade page `_ is the main platform for requesting an upgraded database. However, depending on the hosting type, you can upgrade from the command line (on-premise), the `Odoo Online database manager `_, or your `Odoo.sh project `_." msgstr "" -#: ../../content/administration/upgrade.rst:218 -msgid ":doc:`maintain/supported_versions`" +#: ../../content/administration/upgrade.rst:84 +msgid "The Upgrade platform follows the same `Privacy Policy `_ as the other Odoo.com services. Visit the `General Data Protection Regulation page `_ to learn more about how Odoo handles your data and privacy." msgstr "" -#: ../../content/administration/upgrade.rst:223 -msgid "Service-level agreement (SLA)" +#: ../../content/administration/upgrade.rst:92 +msgid "Odoo Online databases can be manually upgraded via the `database manager `_." msgstr "" -#: ../../content/administration/upgrade.rst:225 -msgid "With Odoo Enterprise, upgrading a database to the most recent version of Odoo is **free**, including any support required to rectify potential discrepancies in the upgraded database." +#: ../../content/administration/upgrade.rst:95 +msgid "The database manager displays all databases associated with the user's account. Databases not on the most recent version of Odoo display an arrow in a circle icon next to their name, indicating that they can be upgraded." msgstr "" -#: ../../content/administration/upgrade.rst:228 -msgid "Information about the upgrade services included in the Enterprise Licence is available in the :ref:`Odoo Enterprise Subscription Agreement `. However, this section clarifies what upgrade services you can expect." +#: ../../content/administration/upgrade.rst:0 +msgid "The database manager with an upgrade button next to the name of a database." msgstr "" -#: ../../content/administration/upgrade.rst:233 -msgid "Upgrade services covered by the SLA" +#: ../../content/administration/upgrade.rst:102 +msgid "Click the **arrow in a circle** icon to start the upgrade process. In the popup, fill in:" msgstr "" -#: ../../content/administration/upgrade.rst:235 -msgid "Databases hosted on Odoo's cloud platforms (Odoo Online and Odoo.sh) or self-hosted (On-Premise) can benefit from upgrade services at all times for:" +#: ../../content/administration/upgrade.rst:104 +msgid "The **version** of Odoo you want to upgrade to, usually the latest version" msgstr "" -#: ../../content/administration/upgrade.rst:238 -msgid "the upgrade of all **standard applications**;" +#: ../../content/administration/upgrade.rst:105 +msgid "The **email** address that should receive the link to the upgraded database" msgstr "" -#: ../../content/administration/upgrade.rst:239 -msgid "the upgrade of all **customizations created with the Studio app**, as long as Studio is still installed and the respective subscription is still active; and" +#: ../../content/administration/upgrade.rst:106 +msgid "The :guilabel:`Purpose` of the upgrade, which is automatically set to :guilabel:`Test` for your first upgrade request" msgstr "" -#: ../../content/administration/upgrade.rst:241 -msgid "the upgrade of all **developments and customizations covered by a maintenance of customizations subscription**." +#: ../../content/administration/upgrade.rst:0 +msgid "The \"Upgrade your database\" popup." msgstr "" -#: ../../content/administration/upgrade.rst:244 -msgid "Upgrade services are limited to the technical conversion and adaptation of a database (standard modules and data) to make it compatible with the version targeted by the upgrade." +#: ../../content/administration/upgrade.rst:112 +msgid "The :guilabel:`Upgrade in progress` tag is displayed next to the database name until completion. Once the process succeeds, an email containing a link to the upgraded test database is sent to the address provided. The database can also be accessed from the database manager by clicking the dropdown arrow before the database name." msgstr "" -#: ../../content/administration/upgrade.rst:248 -msgid "Upgrade services not covered by the SLA" +#: ../../content/administration/upgrade.rst:0 +msgid "Clicking the menu arrow displays the upgraded test database." msgstr "" -#: ../../content/administration/upgrade.rst:250 -msgid "The following upgrade-related services are **not** included:" +#: ../../content/administration/upgrade.rst:122 +msgid "Odoo.sh is integrated with the upgrade platform to simplify the upgrade process." msgstr "" -#: ../../content/administration/upgrade.rst:252 -msgid "the **cleaning** of pre-existing data and configurations while upgrading;" -msgstr "" - -#: ../../content/administration/upgrade.rst:253 -msgid "the upgrade of **custom modules created in-house or by third parties**, including Odoo partners;" -msgstr "" - -#: ../../content/administration/upgrade.rst:254 -msgid "lines of **code added to standard modules**, i.e., customizations created outside the Studio app, code entered manually, and :ref:`automated actions using Python code `; and" -msgstr "" - -#: ../../content/administration/upgrade.rst:257 -msgid "**training** on using the upgraded version's features and workflows." -msgstr "" - -#: ../../content/administration/upgrade.rst:262 -msgid ":doc:`Upgrade FAQ `" -msgstr "" - -#: ../../content/administration/upgrade.rst:263 -msgid ":doc:`Odoo.sh documentation `" -msgstr "" - -#: ../../content/administration/upgrade.rst:264 -msgid ":doc:`Supported Odoo versions `" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:8 -msgid "FAQ" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:13 -msgid "Why upgrade" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:15 -msgid "You benefit from the latest features of the :ref:`new major version ` released by Odoo." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:17 -msgid "If you are in an :ref:`unsupported version `, you get a new version with support." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:23 -msgid "When to upgrade" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:25 -msgid "Whenever you want. You can make your upgrade request as soon as a new version is released or when your version turns unsupported, and you still wish to enjoy support." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:31 -msgid "Availability of the new version" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:33 -msgid "As soon as Odoo announces the release of a new major version, you can create a test upgrade request to try the latest version. Please note that at this point, the upgrade scripts will only have been tested with demo data. Please report any issue you might encounter while testing via the `Odoo Support page `_ and make sure to be happy with your test version before requesting the upgrade of your database in production." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:42 -msgid "Duration of the upgrade" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:44 -msgid "It is impossible to give time estimates for every upgrade request." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:46 -msgid "In general, the \"smaller\" the database, the quickest the upgrade request is completed. A single-user database that uses only CRM will be processed faster than a multi-company, multi-user database that uses Accounting, Sales, Purchase, and Manufacturing." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:50 -msgid "You can expect the time it takes for the platform to upgrade the test database to be similar to the production upgrade." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:56 -msgid "Duration of the upgrade project" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:58 -msgid "It depends on the user involvement (the time spent on testing, reporting problems, etc.) and the issues encountered that might need to be addressed by our technical team." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:61 -msgid "So, in a nutshell, what can impact your upgrade lead time?" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:63 -msgid "Source & targeted versions" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:64 -msgid "Installed apps" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:65 -msgid "Volume of data" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:66 -msgid "Amount of customization (models, fields, methods, workflows, reports, website, etc.)" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:67 -msgid "Installation of new apps or configuration changes after the start of the test phase" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:68 -msgid "User commitment" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:73 -msgid "Upgrade of the custom modules" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:75 -msgid "As stated in our :doc:`/legal/terms/enterprise`, section :ref:`charges_standard`, this optional service is subject to additional fees." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:78 -msgid "Depending on your situation, the custom code could be upgraded by our services, by one of our partners, or you can do it yourself." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:86 -msgid "Upgrade or Migration" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:88 -msgid "An upgrade is switching to a newer version of Odoo, while a migration reflects the change of :ref:`editions ` or change of :ref:`hosting type `." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:97 -msgid "Editions change (from Community to Enterprise)" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:99 -msgid "The upgrade always returns an Enterprise edition of Odoo, whether the database you sent was a community or enterprise edition. It is required to have an enterprise subscription to upgrade." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:103 -msgid "If you need assistance on this matter, please contact us via the `Odoo Support page `_." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:107 -msgid "`Editions `_" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:112 -msgid "Switching the hosting types (On-premise vs. Odoo Online vs. Odoo.sh)" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:114 -msgid "An upgrade does not cover a change of `Hosting types `_." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:116 -msgid "Open the following link to get :doc:`more information about how to change your hosting type <../maintain/hosting_changes>`." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:124 -msgid "The Upgrade Report" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:126 -msgid "When an upgrade request completes successfully (test or production), you receive an email notification about it that includes an 'Upgrade Report'. This report is also sent to you via the Discuss app. It contains valuable information regarding changes that occurred during the upgrade. While it serves as a guide to possible issues to look out for, it is not an exhaustive list. It remains imperative that you test the upgraded database thoroughly and report any discrepancies you might find, before you decide to upgrade your production database." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:136 -msgid "Custom views" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:138 -msgid "During the upgrade, some custom views might get disabled for technical reasons. Therefore they might have to be fixed after the upgrade. The :ref:`Upgrade Report ` that is generated after the upgrade is available in the Discuss app, and lists all the custom views that might be impacted by this." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:146 -msgid "Release Notes by version" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:148 -msgid "Open our `Release Note `_ page to get a summary of the new features and improvements made in each version." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:152 -msgid "How long is my test available for" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:154 -msgid "An Odoo Online test database is available for one month by default. We can extend this trial period upon request. For Odoo.sh or on-premise, there is no restriction." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:158 -msgid "How many tests to perform before upgrading to production?" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:160 -msgid "As many as needed. When you are comfortable with the database, run a last test upgrade 48 hours before requesting your production upgrade and test your workflows one last time." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:164 -msgid "How to/Where to report upgrade issues?" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:166 -msgid "If you encounter issues during the upgrade process, please contact the Odoo Support through the `Odoo Support page `_." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:169 -msgid "To report an issue discovered during the testing phase, please select **An issue related to my upgrade (test phase)**." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:171 -msgid "To report an issue discovered post-upgrade, please select **An issue related to my upgrade (production)**." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:175 -msgid "Upgrading to production" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:177 -msgid "Once you have completed testing and are happy with the result, you decide on a date and time when you stop users from accessing Odoo, freeze all data entries, and create an upgrade request for the production upgrade." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:182 -msgid "How is my data handled in the Upgrade Platform?" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:184 -msgid "The Odoo Upgrade platform uses the same Privacy Policy as the rest of Odoo.com services." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:186 -msgid "Your data is hosted on servers that follow our security guidelines, namely:" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:188 -msgid "SSL - All web connections to client instances are protected with 256-bit SSL encryption (HTTPS with a 2048-bit modulus SSL certificate), and running behind Grade A SSL stacks. All our certificate chains are using SHA-2 already." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:191 -msgid "Safe System - Our servers are running recent Linux distribution with up-to-date security patches, with firewall and intrusion countermeasures (not disclosed for obvious reasons)." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:194 -msgid "Servers are located at the same locations as our Cloud providers with the following services:" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:196 -msgid "Restricted perimeter, physically accessed by authorized data center employees only" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:197 -msgid "Physical access control with security badges or biometrical security" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:198 -msgid "Security cameras monitoring the data center locations 24/7" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:199 -msgid "Security personnel on-site 24/7" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:201 -msgid "The uploaded and migrated databases uploaded to the Upgrade platform are kept for up to 3 months and are permanently deleted following that period." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:204 -msgid "You can learn more about privacy and data handling at Odoo by visiting our `General Data Protection Regulation page `_." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:208 -msgid "Rolling Release (applicable to Odoo Online databases)" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:210 -msgid "This feature allows customers to upgrade their database directly from a message prompt sent to the database administrator as soon as the new version is released. Odoo first tests the upgrade to the next version. The rolling release upgrade option is displayed if the automated tests are successful. The message offers two options:" -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:215 -msgid "To 'Upgrade Now', which immediately triggers the upgrade of your live production database." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:217 -msgid "To take you to your `database manager `_ where you can `request an upgraded test database `_ and check the upgraded test database for any discrepancies." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:221 -msgid "When you choose to proceed with the production upgrade directly, make sure all users have saved their work and are logged out. The upgrade takes approximately 15 minutes. During this time your database is unreachable. If you notice any problem after the upgrade, please report it via the `Odoo Support page `_." -msgstr "" - -#: ../../content/administration/upgrade/faq.rst:227 -msgid "If you are using the Website or Studio app, we recommend you always do a test upgrade before upgrading your production instance." -msgstr "" - -#: ../../content/administration/upgrade/odoo_online.rst:5 -msgid "Odoo databases can be manually upgraded directly from the main Odoo website. To upgrade an Odoo database, navigate to the `database manager `_ page and sign in." -msgstr "" - -#: ../../content/administration/upgrade/odoo_online.rst:8 -msgid "The database manager page displays all of the Odoo databases associated with the user's account. Any databases that are not already on the most recent version of Odoo display an **arrow in a circle** icon next to the database name, indicating that the database can be upgraded." -msgstr "" - -#: ../../content/administration/upgrade/odoo_online.rst:-1 -msgid "The database manager page with an upgrade button next to the name of a database." -msgstr "" - -#: ../../content/administration/upgrade/odoo_online.rst:17 -msgid "If the database's version is **lower** than the latest major release: the database must be upgraded within two months. After these two months, an automatic upgrade is initiated." -msgstr "" - -#: ../../content/administration/upgrade/odoo_online.rst:19 -msgid "If the database's version is **equal** to or **higher** than the latest major release: you can disregard the invitation to upgrade, as the database probably would not benefit from new features every two months." -msgstr "" - -#: ../../content/administration/upgrade/odoo_online.rst:23 -msgid "If a database is *not* on the latest online version, its administrator should receive an invitation to upgrade on the database's dashboard, displayed as an **arrow in a circle**." -msgstr "" - -#: ../../content/administration/upgrade/odoo_online.rst:-1 -msgid "Invitation to upgrade on the database dashboard." -msgstr "" - -#: ../../content/administration/upgrade/odoo_online.rst:30 -msgid "Versions that are not supported anymore become deprecated and must be updated to avoid security issues. It is recommended to initiate the upgrade yourself and not wait for the automatic upgrade, as the former method allows you to request a test upgrade of the database to check for any discrepancies." -msgstr "" - -#: ../../content/administration/upgrade/odoo_online.rst:36 -msgid "Test database" -msgstr "" - -#: ../../content/administration/upgrade/odoo_online.rst:38 -msgid "Click on the **arrow in a circle** icon to start the upgrade process. On the :guilabel:`Upgrade your database` pop-up, select the version of Odoo that the platform will be upgraded to. In the :guilabel:`Email to notify` field, enter an email address that will receive email notifications about the database upgrade." -msgstr "" - -#: ../../content/administration/upgrade/odoo_online.rst:43 -msgid "There is also a :guilabel:`Purpose` section on the pop-up that is used to specify the reason for the upgrade. However, at this stage of the process, the only selectable option is :guilabel:`Test`, as Odoo requires users to create a test copy of the upgraded database before converting the actual database." -msgstr "" - -#: ../../content/administration/upgrade/odoo_online.rst:-1 -msgid "The \"Upgrade your database\" pop-up." -msgstr "" - -#: ../../content/administration/upgrade/odoo_online.rst:52 -msgid "After filling out the form, click the :guilabel:`Upgrade` button. The pop-up disappears and the database being upgraded shows a red :guilabel:`Upgrade in progress` tag next to its name. An email confirming that the upgrade is in progress is also sent to the email address specified on the pop-up." -msgstr "" - -#: ../../content/administration/upgrade/odoo_online.rst:-1 -msgid "The \"Upgrade in progress\" tag next to the database name." -msgstr "" - -#: ../../content/administration/upgrade/odoo_online.rst:61 -msgid "Once the upgrade is complete, a new test database appears on the `database manager `_ page. To access the test database, click the drop-down arrow (:guilabel:`āƆ`) to the left of the main database's name. Doing so makes the test version appear below it. Finally, click the green :guilabel:`Connect` button on the right side of the test version's row to go to the database." -msgstr "" - -#: ../../content/administration/upgrade/odoo_online.rst:-1 -msgid "A test database on the database manager page." -msgstr "" - -#: ../../content/administration/upgrade/odoo_online.rst:71 -msgid "Except for being on the newer version of Odoo, the test database is an exact copy of the one being upgraded. It is important to do extensive testing in this database to ensure that the upgrade has not altered or corrupted any data, and that all workflows still proceed as expected." -msgstr "" - -#: ../../content/administration/upgrade/odoo_online.rst:76 -msgid "Production database" -msgstr "" - -#: ../../content/administration/upgrade/odoo_online.rst:78 -msgid "After confirming the integrity of the new version, return to the `database manager `_ page. Once again, click on the **arrow in a circle** icon next to the database being upgraded. The :guilabel:`Upgrade your database` pop-up appears as before, except that there is now a :guilabel:`Production` option under the :guilabel:`Purpose` section." -msgstr "" - -#: ../../content/administration/upgrade/odoo_online.rst:83 -msgid "Select the :guilabel:`Production` option and then click :guilabel:`Upgrade` to begin the upgrade process. As before, a notification email is sent to the email address provided and a red :guilabel:`Upgrade in progress` tag appears next to the name of the database." -msgstr "" - -#: ../../content/administration/upgrade/odoo_online.rst:87 -msgid "The production database is then taken offline and will be upgraded automatically. The time it takes to upgrade the production database should be similar to the time that was necessary to upgrade the test database. Make sure to inform database users of the scheduled downtime." -msgstr "" - -#: ../../content/administration/upgrade/odoo_online.rst:91 -msgid "After the upgrade is finished, the :guilabel:`Upgrade in progress` tag disappears and the database is upgraded to the version specified." -msgstr "" - -#: ../../content/administration/upgrade/odoo_sh.rst:10 -msgid "Odoo.sh is integrated with the upgrade platform to make the upgrade process easier." -msgstr "" - -#: ../../content/administration/upgrade/odoo_sh.rst:13 -msgid "The :guilabel:`Upgrade` tab is available in the branches view. It is only available for valid projects with a valid production build." -msgstr "" - -#: ../../content/administration/upgrade/odoo_sh.rst:-1 -msgid "Click on the upgrade menu" -msgstr "" - -#: ../../content/administration/upgrade/odoo_sh.rst:20 -msgid "The suggested upgrade steps on Odoo.sh are:" -msgstr "" - -#: ../../content/administration/upgrade/odoo_sh.rst:22 -msgid "On a :guilabel:`Development` branch, upgrade your custom modules to keep them compatible with the new version and thoroughly **test them**." -msgstr "" - -#: ../../content/administration/upgrade/odoo_sh.rst:24 -msgid "Switch that branch to the :guilabel:`Staging` branch, **upgrade** the last daily production backup and **test it**. Write upgrade scripts if necessary." -msgstr "" - -#: ../../content/administration/upgrade/odoo_sh.rst:26 -msgid "Trigger the production upgrade from your :guilabel:`Production` branch and sit tight." -msgstr "" - -#: ../../content/administration/upgrade/odoo_sh.rst:29 -msgid ":doc:`../../administration/upgrade`" -msgstr "" - -#: ../../content/administration/upgrade/odoo_sh.rst:30 -msgid ":doc:`Upgrade FAQ <../upgrade/faq>`" -msgstr "" - -#: ../../content/administration/upgrade/odoo_sh.rst:31 -msgid ":doc:`Introduction to Odoo.sh <../odoo_sh/overview/introduction>`" -msgstr "" - -#: ../../content/administration/upgrade/odoo_sh.rst:36 -msgid "Upgrade your custom modules" -msgstr "" - -#: ../../content/administration/upgrade/odoo_sh.rst:38 -msgid "The first step is to upgrade your custom modules to keep them compatible with the new version. Fork your :guilabel:`Production` branch in the :guilabel:`Development` stage, then go to the settings of your :guilabel:`Development` branch and select the Odoo version you target. If needed, modify your code to be compatible with the new version. Make sure to **test** your features are still working correctly." -msgstr "" - -#: ../../content/administration/upgrade/odoo_sh.rst:45 -msgid "Depending on your contract, the upgrade of your custom modules can be done by yourself, by your Partner or by Odoo (if you hold a subscription including maintenance of customizations)." -msgstr "" - -#: ../../content/administration/upgrade/odoo_sh.rst:51 -msgid "Upgrade your database on a staging branch" -msgstr "" - -#: ../../content/administration/upgrade/odoo_sh.rst:53 -msgid "Take the upgraded development branch and drag & drop it to :guilabel:`Staging`." -msgstr "" - -#: ../../content/administration/upgrade/odoo_sh.rst:55 -msgid "Go to the :guilabel:`Upgrade` tab and select the :guilabel:`target version`. Then, click on :guilabel:`Test Upgrade`." -msgstr "" - -#: ../../content/administration/upgrade/odoo_sh.rst:-1 +#: ../../content/administration/upgrade.rst:0 msgid "Odoo.sh project and tabs" msgstr "" -#: ../../content/administration/upgrade/odoo_sh.rst:62 -msgid "The **latest production daily automatic backup** is sent to the `upgrade platform `_ to start the upgrade test process." +#: ../../content/administration/upgrade.rst:127 +msgid "The **latest production daily automatic backup** is then sent to the `upgrade platform `_." msgstr "" -#: ../../content/administration/upgrade/odoo_sh.rst:66 -msgid "You can follow the upgrade process by going to the :guilabel:`Upgrade` menu of your :guilabel:`Production` branch." +#: ../../content/administration/upgrade.rst:130 +msgid "Once the upgrade platform is done upgrading the backup and uploading it on the branch, it is put in a **special mode**: each time a **commit is pushed** on the branch, a **restore operation** of the upgraded backup and an **update of all the custom modules** occur. This allows you to test your custom modules on a pristine copy of the upgraded database. The log file of the upgrade process can be found in your newly upgraded staging build by going to :file:`~/logs/upgrade.log`." msgstr "" -#: ../../content/administration/upgrade/odoo_sh.rst:69 -msgid "When the upgraded backup is ready on the `upgrade platform `_, it is automatically downloaded back to your project." +#: ../../content/administration/upgrade.rst:138 +msgid "In databases where custom modules are installed, their source code must be up-to-date with the target version of Odoo before the upgrade can be performed. If there are none, the \"update on commit\" mode is skipped, the upgraded database is built as soon as it is transferred from the upgrade platform, and the upgrade mode is exited." msgstr "" -#: ../../content/administration/upgrade/odoo_sh.rst:72 -msgid "The branch is now in a **special mode**: each time a **commit is pushed** on the branch, a **restore operation** of the upgraded backup occurs, and an **update of all the custom modules** happens. This allows you to quickly iterate on your custom modules upgrade scripts. The log file of the upgrade process can be found at :file:`~/logs/upgrade.log` in your newly upgraded staging build." +#: ../../content/administration/upgrade.rst:150 +#: ../../content/administration/upgrade.rst:340 +msgid "On-premise" msgstr "" -#: ../../content/administration/upgrade/odoo_sh.rst:78 -msgid "The **special upgrade mode** is automatically closed after 30 days." +#: ../../content/administration/upgrade.rst:152 +msgid "The standard upgrade process can be initiated by entering the following command line on the machine where the database is hosted:" msgstr "" -#: ../../content/administration/upgrade/odoo_sh.rst:79 -#: ../../content/administration/upgrade/odoo_sh.rst:128 -msgid "It may happen that custom modules are no longer needed after an upgrade. Custom modules in the upgraded database are set to be updated. If the modules are missing in the code, the update fails, thus failing the whole process. An empty module with a manifest and possibly some custom upgrade script are necessary to clean up the database. The complete removal of the module has to be handled afterwards." +#: ../../content/administration/upgrade.rst:159 +msgid "The following command can be used to display the general help and the main commands:" msgstr "" -#: ../../content/administration/upgrade/odoo_sh.rst:86 -msgid "Functionally test your upgraded database" +#: ../../content/administration/upgrade.rst:165 +msgid "An upgraded test database can also be requested via the `Upgrade page `_." msgstr "" -#: ../../content/administration/upgrade/odoo_sh.rst:88 -msgid "Now that the test upgraded database is available on your staging branch, **thoroughly test it** and make sure everything runs as it's supposed to. Once you are satisfied with the result, you are ready to upgrade your production database." +#: ../../content/administration/upgrade.rst:169 +msgid "For security reasons, only the person who submitted the upgrade request can download it." msgstr "" -#: ../../content/administration/upgrade/odoo_sh.rst:93 -msgid "Production upgrade" +#: ../../content/administration/upgrade.rst:170 +msgid "For storage reasons, the database's copy is submitted without a filestore to the upgrade server. Therefore, the upgraded database does not contain the production filestore." msgstr "" -#: ../../content/administration/upgrade/odoo_sh.rst:95 -msgid "Once you are happy with your testing, you can start the process on the :guilabel:`Production` branch." -msgstr "" - -#: ../../content/administration/upgrade/odoo_sh.rst:98 -msgid "On your :guilabel:`Production` branch, go to the :guilabel:`Upgrade` tab, select the :guilabel:`targeted version` and click on the :guilabel:`start Upgrade` button." -msgstr "" - -#: ../../content/administration/upgrade/odoo_sh.rst:-1 -msgid "View from the upgrade tab" -msgstr "" - -#: ../../content/administration/upgrade/odoo_sh.rst:105 -msgid "The actual process is **triggered as soon as you push a new commit** in your branch. Make sure you are pushing code that is compatible with the new version. For example by merging the code from your upgraded staging branch." -msgstr "" - -#: ../../content/administration/upgrade/odoo_sh.rst:110 -msgid "You can see the progress of the upgrade by going to the :guilabel:`Upgrade` tab of the main branch." -msgstr "" - -#: ../../content/administration/upgrade/odoo_sh.rst:-1 -msgid "View showing the progress of the upgrade" -msgstr "" - -#: ../../content/administration/upgrade/odoo_sh.rst:118 -msgid "Your database is unavailable throughout the process." -msgstr "" - -#: ../../content/administration/upgrade/odoo_sh.rst:121 -msgid "If anything goes wrong, the platform automatically reverts the upgrade, the same as it would be for a regular update. In case of success, a backup is always made." -msgstr "" - -#: ../../content/administration/upgrade/odoo_sh.rst:124 -msgid "The update of your custom modules must be successful to complete the entire upgrade process. Make sure the status of your staging upgrade is :guilabel:`successful` before trying it in production." -msgstr "" - -#: ../../content/administration/upgrade/on_premise.rst:6 -msgid "Test upgrade request" -msgstr "" - -#: ../../content/administration/upgrade/on_premise.rst:8 -msgid "There are two ways to create your upgrade request." -msgstr "" - -#: ../../content/administration/upgrade/on_premise.rst:11 -msgid "Upgrade request via command line" -msgstr "" - -#: ../../content/administration/upgrade/on_premise.rst:13 -msgid "For technically-advanced users and partners, the upgrade process can be initiated via the following command line on the server where the database is hosted:" -msgstr "" - -#: ../../content/administration/upgrade/on_premise.rst:16 -msgid ":command:`python <(curl -s https://upgrade.odoo.com/upgrade) test -d -t `" -msgstr "" - -#: ../../content/administration/upgrade/on_premise.rst:19 -msgid "The above command creates the database dump, sends it to the upgrade platform, and initiates the automated upgrade process. During the upgrade, you can follow the live logs on your screen. Once the upgrade process is completed successfully, the upgraded database is restored onto the server (as a duplicate test database)." -msgstr "" - -#: ../../content/administration/upgrade/on_premise.rst:25 -msgid "Upgrade request via the Odoo Upgrade Portal" -msgstr "" - -#: ../../content/administration/upgrade/on_premise.rst:27 -msgid "Download a recent copy of your database and select the option :guilabel:`pg_dump custom format (without filestore)`." -msgstr "" - -#: ../../content/administration/upgrade/on_premise.rst:29 -msgid "Upload this dump file at https://upgrade.odoo.com and select *Testing* as the aim. Odoo performs the automated upgrade process. Once it is completed, you receive an email with a link to download the upgrade database dump file." -msgstr "" - -#: ../../content/administration/upgrade/on_premise.rst:32 -msgid "Import the upgraded database into your on-premise environment and manually test all processes and workflows." -msgstr "" - -#: ../../content/administration/upgrade/on_premise.rst:36 -msgid "For security reasons, only the person who submitted the upgrade request is able to download it." -msgstr "" - -#: ../../content/administration/upgrade/on_premise.rst:37 -msgid "Any problem found during testing should be reported via the `helpdesk `_." -msgstr "" - -#: ../../content/administration/upgrade/on_premise.rst:39 -msgid "For storage reasons, the copy of your database is submitted without a filestore to the upgrade server. Therefore, the upgraded database does not contain the production filestore." -msgstr "" - -#: ../../content/administration/upgrade/on_premise.rst:41 +#: ../../content/administration/upgrade.rst:172 msgid "Before restoring the upgraded database, its filestore must be merged with the production filestore to be able to perform tests in the same conditions as it would be in the new version." msgstr "" -#: ../../content/administration/upgrade/on_premise.rst:43 +#: ../../content/administration/upgrade.rst:175 msgid "The upgraded database contains:" msgstr "" -#: ../../content/administration/upgrade/on_premise.rst:45 -msgid "A `dump.sql` file containing the upgraded database." +#: ../../content/administration/upgrade.rst:177 +msgid "A `dump.sql` file containing the upgraded database" msgstr "" -#: ../../content/administration/upgrade/on_premise.rst:46 -msgid "A `filestore` folder containing files that were extracted from in-database records into attachments (if there are any) and new standard Odoo files from the targeted Odoo version (like new images, icons, payment provider's logos, etc.). This is the folder that should be merged with the production filestore in order to get the full upgraded filestore." +#: ../../content/administration/upgrade.rst:178 +msgid "A `filestore` folder containing files extracted from in-database records into attachments (if there are any) and new standard Odoo files from the targeted Odoo version (e.g., new images, icons, payment provider's logos, etc.). This is the folder that should be merged with the production filestore in order to get the full upgraded filestore." msgstr "" -#: ../../content/administration/upgrade/on_premise.rst:52 -msgid "Upgrade your production database" +#: ../../content/administration/upgrade.rst:185 +msgid "You can request multiple test databases if you wish to test an upgrade more than once." msgstr "" -#: ../../content/administration/upgrade/on_premise.rst:54 -msgid "Once you have completed the testing successfully, you can proceed to upgrade your live database in production. Download your upgraded database from the link in the email and import it onto your live environment." +#: ../../content/administration/upgrade.rst:190 +msgid "When an upgrade request is completed, an upgrade report is attached to the successful upgrade email, and it becomes available in the Discuss app for users who are part of the \"Administration / Settings\" group. This report provides important information about the changes introduced by the new version." msgstr "" -#: ../../content/administration/upgrade/on_premise.rst:59 -msgid "Same as in the test phase, when requesting an upgrade for production purposes, the copy of your database is submitted without a filestore." +#: ../../content/administration/upgrade.rst:198 +msgid "Testing the new version of the database" msgstr "" -#: ../../content/administration/upgrade/on_premise.rst:61 -msgid "Therefore, the upgraded database filestore must be merged with the production filestore before deploying the new version." +#: ../../content/administration/upgrade.rst:200 +msgid "It is essential to spend some time testing the upgraded test database to ensure that you are not stuck in your day-to-day activities by a change in views, behavior, or an error message once the upgrade goes live." msgstr "" -#: ../../content/administration/upgrade/on_premise.rst:65 -msgid "Custom modules (if applicable)" +#: ../../content/administration/upgrade.rst:205 +msgid "Test databases are neutralized, and some features are disabled to prevent them from impacting the production database:" msgstr "" -#: ../../content/administration/upgrade/on_premise.rst:67 -msgid "The upgrade of a database that contains custom modules is a two-step process." +#: ../../content/administration/upgrade.rst:208 +msgid "Scheduled actions are disabled." msgstr "" -#: ../../content/administration/upgrade/on_premise.rst:69 -msgid "The standard upgrade is done when your upgrade request is completed." +#: ../../content/administration/upgrade.rst:209 +msgid "Outgoing mail servers are disabled by archiving the existing ones and adding a fake one." msgstr "" -#: ../../content/administration/upgrade/on_premise.rst:70 -msgid "Your custom modules also need to be upgraded to keep them compatible with the new version." +#: ../../content/administration/upgrade.rst:210 +msgid "Payment providers and delivery carriers are reset to the test environment." msgstr "" -#: ../../content/administration/upgrade/on_premise.rst:72 -msgid "Depending on your contract, the upgrade of your custom modules can be done" +#: ../../content/administration/upgrade.rst:212 +msgid "Testing as many of your business flows as possible is strongly recommended to ensure they are working correctly and to get more familiar with the new version." msgstr "" -#: ../../content/administration/upgrade/on_premise.rst:74 -msgid "by yourself." +#: ../../content/administration/upgrade.rst:215 +msgid "Basic test checklist" msgstr "" -#: ../../content/administration/upgrade/on_premise.rst:75 -msgid "by your Partner." +#: ../../content/administration/upgrade.rst:217 +msgid "Are there views that are deactivated in your test database but active in your production database?" msgstr "" -#: ../../content/administration/upgrade/on_premise.rst:76 -msgid "by Odoo (if you hold a subscription to 'Maintenance of Customizations')." +#: ../../content/administration/upgrade.rst:219 +msgid "Are your usual views still displayed correctly?" +msgstr "" + +#: ../../content/administration/upgrade.rst:220 +msgid "Are your reports (invoice, sales order, etc.) correctly generated?" +msgstr "" + +#: ../../content/administration/upgrade.rst:221 +msgid "Are your website pages working correctly?" +msgstr "" + +#: ../../content/administration/upgrade.rst:222 +msgid "Are you able to create and modify records? (sales orders, invoices, purchases, users, contacts, companies, etc.)" +msgstr "" + +#: ../../content/administration/upgrade.rst:224 +msgid "Are there any issues with your mail templates?" +msgstr "" + +#: ../../content/administration/upgrade.rst:225 +msgid "Are there any issues with saved translations?" +msgstr "" + +#: ../../content/administration/upgrade.rst:226 +msgid "Are your search filters still present?" +msgstr "" + +#: ../../content/administration/upgrade.rst:227 +msgid "Can you export your data?" +msgstr "" + +#: ../../content/administration/upgrade.rst:231 +msgid "Checking a random product in your product catalog and comparing its test and production data to verify everything is the same (product category, selling price, cost price, vendor, accounts, routes, etc.)." +msgstr "" + +#: ../../content/administration/upgrade.rst:234 +msgid "Buying this product (Purchase app)." +msgstr "" + +#: ../../content/administration/upgrade.rst:235 +msgid "Confirming the reception of this product (Inventory app)." +msgstr "" + +#: ../../content/administration/upgrade.rst:236 +msgid "Checking if the route to receive this product is the same in your production database (Inventory app)." +msgstr "" + +#: ../../content/administration/upgrade.rst:238 +msgid "Selling this product (Sales app) to a random customer." +msgstr "" + +#: ../../content/administration/upgrade.rst:239 +msgid "Opening your customer database (Contacts app), selecting a customer (or company), and checking its data." +msgstr "" + +#: ../../content/administration/upgrade.rst:241 +msgid "Shipping this product (Inventory app)." +msgstr "" + +#: ../../content/administration/upgrade.rst:242 +msgid "Checking if the route to ship this product is the same as in your production database (Inventory app)." +msgstr "" + +#: ../../content/administration/upgrade.rst:244 +msgid "Validating a customer invoice (Invoicing or Accounting app)." +msgstr "" + +#: ../../content/administration/upgrade.rst:245 +msgid "Crediting the invoice (issuing a credit note) and checking if it behaves as in your production database." +msgstr "" + +#: ../../content/administration/upgrade.rst:247 +msgid "Checking your reports' results (Accounting app)." +msgstr "" + +#: ../../content/administration/upgrade.rst:248 +msgid "Randomly checking your taxes, currencies, bank accounts, and fiscal year (Accounting app)." +msgstr "" + +#: ../../content/administration/upgrade.rst:249 +msgid "Making an online order (Website apps) from the product selection in your shop until the checkout process and checking if everything behaves as in your production database." +msgstr "" + +#: ../../content/administration/upgrade.rst:252 +msgid "This list is **not** exhaustive. Extend the example to your other apps based on your use of Odoo." +msgstr "" + +#: ../../content/administration/upgrade.rst:254 +msgid "If you face an issue while testing your upgraded test database, you can request the assistance of Odoo via the `support page `__ by selecting the option related to testing the upgrade. In any case, it is essential to report any problem encountered during the testing to fix it before upgrading your production database." +msgstr "" + +#: ../../content/administration/upgrade.rst:259 +msgid "You might encounter significant differences with standard views, features, fields, and models during testing. Those changes cannot be reverted on a case-by-case basis. However, if a change introduced by a new version breaks a customization, it is the responsibility of the maintainer of your custom module to make it compatible with the new version of Odoo." +msgstr "" + +#: ../../content/administration/upgrade.rst:265 +msgid "Do not forget to test:" +msgstr "" + +#: ../../content/administration/upgrade.rst:267 +msgid "Integrations with external software (EDI, APIs, etc.)" +msgstr "" + +#: ../../content/administration/upgrade.rst:268 +msgid "Workflows between different apps (online sales with eCommerce, converting a lead all the way to a sales order, delivery of products, etc.)" +msgstr "" + +#: ../../content/administration/upgrade.rst:270 +msgid "Data exports" +msgstr "" + +#: ../../content/administration/upgrade.rst:271 +msgid "Automated actions" +msgstr "" + +#: ../../content/administration/upgrade.rst:272 +msgid "Server actions in the action menu on form views, as well as by selecting multiple records on list views" +msgstr "" + +#: ../../content/administration/upgrade.rst:278 +msgid "Upgrading the production database" +msgstr "" + +#: ../../content/administration/upgrade.rst:280 +msgid "Once the :ref:`tests ` are completed and you are confident that the upgraded database can be used as your main database without any issues, it is time to plan the go-live day. It can be planned in coordination with Odoo's upgrade support analysts, reachable via the `support page `__." +msgstr "" + +#: ../../content/administration/upgrade.rst:285 +msgid "Your production database will be unavailable during its upgrade. Therefore, we recommend planning the upgrade at a time when the use of the database is minimal." +msgstr "" + +#: ../../content/administration/upgrade.rst:288 +msgid "As the standard upgrade scripts and your database are constantly evolving, it is also recommended to frequently request another upgraded test database to ensure that the upgrade process is still successful, especially if it takes a long time to finish. Fully rehearsing the upgrade process the day before upgrading the production database is also recommended." +msgstr "" + +#: ../../content/administration/upgrade.rst:294 +msgid "Going into production without first testing may lead to:" +msgstr "" + +#: ../../content/administration/upgrade.rst:296 +msgid "Users failing to adjust to the changes and new features" +msgstr "" + +#: ../../content/administration/upgrade.rst:297 +msgid "Business interruptions (e.g., no longer having the possibility to validate an action)" +msgstr "" + +#: ../../content/administration/upgrade.rst:298 +msgid "Poor customer experience (e.g., an eCommerce website that does not work correctly)" +msgstr "" + +#: ../../content/administration/upgrade.rst:300 +msgid "The process of upgrading a production database is similar to upgrading a test database with a few exceptions." +msgstr "" + +#: ../../content/administration/upgrade.rst:307 +msgid "The process is similar to :ref:`obtaining an upgraded test database `, except for the purpose option, which must be set to :guilabel:`Production` instead of :guilabel:`Test`." +msgstr "" + +#: ../../content/administration/upgrade.rst:312 +msgid "Once the upgrade is requested, the database will be unavailable until the upgrade is finished. Once the process is completed, it is impossible to revert to the previous version." +msgstr "" + +#: ../../content/administration/upgrade.rst:318 +msgid "The process is similar to :ref:`obtaining an upgraded test database ` on the :guilabel:`Production` branch." +msgstr "" + +#: ../../content/administration/upgrade.rst:0 +msgid "View from the upgrade tab" +msgstr "" + +#: ../../content/administration/upgrade.rst:324 +msgid "The process is **triggered as soon as a new commit is made** on the branch. This allows the upgrade process to be synchronized with the deployment of the custom modules' upgraded source code. If there are no custom modules, the upgrade process is triggered immediately." +msgstr "" + +#: ../../content/administration/upgrade.rst:330 +msgid "The database is unavailable throughout the process. If anything goes wrong, the platform automatically reverts the upgrade, as it would be for a regular update. In case of success, a backup of the database before the upgrade is created." +msgstr "" + +#: ../../content/administration/upgrade.rst:334 +msgid "The update of your custom modules must be successful to complete the entire upgrade process. Make sure the status of your staging upgrade is :guilabel:`successful` before trying it in production." +msgstr "" + +#: ../../content/administration/upgrade.rst:342 +msgid "The command to upgrade a database to production is similar to the one of upgrading a test database except for the argument `test`, which must be replaced by `production`:" +msgstr "" + +#: ../../content/administration/upgrade.rst:349 +msgid "An upgraded production database can also be requested via the `Upgrade page `_. Once the database is uploaded, any modification to your production database will **not** be present on your upgraded database. This is why we recommend not using it during the upgrade process." +msgstr "" + +#: ../../content/administration/upgrade.rst:356 +msgid "When requesting an upgraded database for production purposes, the copy is submitted without a filestore. Therefore, the upgraded database filestore must be merged with the production filestore before deploying the new version." +msgstr "" + +#: ../../content/administration/upgrade.rst:360 +msgid "In case of an issue with your production database, you can request the assistance of Odoo via the `support page `__ by selecting the option related to the upgrade in production." +msgstr "" + +#: ../../content/administration/upgrade.rst:368 +msgid "Service-level agreement (SLA)" +msgstr "" + +#: ../../content/administration/upgrade.rst:370 +msgid "With Odoo Enterprise, upgrading a database to the most recent version of Odoo is **free**, including any support required to rectify potential discrepancies in the upgraded database." +msgstr "" + +#: ../../content/administration/upgrade.rst:373 +msgid "Information about the upgrade services included in the Enterprise Licence is available in the :ref:`Odoo Enterprise Subscription Agreement `. However, this section clarifies what upgrade services you can expect." +msgstr "" + +#: ../../content/administration/upgrade.rst:378 +msgid "Upgrade services covered by the SLA" +msgstr "" + +#: ../../content/administration/upgrade.rst:380 +msgid "Databases hosted on Odoo's cloud platforms (Odoo Online and Odoo.sh) or self-hosted (On-Premise) can benefit from upgrade services at all times for:" +msgstr "" + +#: ../../content/administration/upgrade.rst:383 +msgid "the upgrade of all **standard applications**;" +msgstr "" + +#: ../../content/administration/upgrade.rst:384 +msgid "the upgrade of all **customizations created with the Studio app**, as long as Studio is still installed and the respective subscription is still active; and" +msgstr "" + +#: ../../content/administration/upgrade.rst:386 +msgid "the upgrade of all **developments and customizations covered by a maintenance of customizations subscription**." +msgstr "" + +#: ../../content/administration/upgrade.rst:389 +msgid "Upgrade services are limited to the technical conversion and adaptation of a database (standard modules and data) to make it compatible with the version targeted by the upgrade." +msgstr "" + +#: ../../content/administration/upgrade.rst:393 +msgid "Upgrade services not covered by the SLA" +msgstr "" + +#: ../../content/administration/upgrade.rst:395 +msgid "The following upgrade-related services are **not** included:" +msgstr "" + +#: ../../content/administration/upgrade.rst:397 +msgid "the **cleaning** of pre-existing data and configurations while upgrading;" +msgstr "" + +#: ../../content/administration/upgrade.rst:398 +msgid "the upgrade of **custom modules created in-house or by third parties**, including Odoo partners;" +msgstr "" + +#: ../../content/administration/upgrade.rst:399 +msgid "lines of **code added to standard modules**, i.e., customizations created outside the Studio app, code entered manually, and :ref:`automated actions using Python code `; and" +msgstr "" + +#: ../../content/administration/upgrade.rst:402 +msgid "**training** on using the upgraded version's features and workflows." +msgstr "" + +#: ../../content/administration/upgrade.rst:405 +msgid ":doc:`Odoo.sh documentation `" +msgstr "" + +#: ../../content/administration/upgrade.rst:406 +msgid ":doc:`Supported Odoo versions `" msgstr "" diff --git a/locale/sources/applications.pot b/locale/sources/applications.pot index 0f61810aa..36b23b5c8 100644 --- a/locale/sources/applications.pot +++ b/locale/sources/applications.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Odoo saas-16.1\n" +"Project-Id-Version: Odoo 17.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-06 06:38+0000\n" +"POT-Creation-Date: 2023-11-08 08:46+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/locale/sources/contributing.pot b/locale/sources/contributing.pot index 7aa4bb253..bef624a93 100644 --- a/locale/sources/contributing.pot +++ b/locale/sources/contributing.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Odoo saas-16.1\n" +"Project-Id-Version: Odoo 17.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-14 05:10+0000\n" +"POT-Creation-Date: 2023-11-08 08:46+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -286,16 +286,16 @@ msgid "Now that your environment is set up, you can start contributing to the co msgstr "" #: ../../content/contributing/development.rst:95 -msgid "Choose the version of Odoo to which you want to make changes. Keep in mind that contributions targeting an :doc:`unsupported version of Odoo ` are not accepted. This guide assumes that the changes target Odoo 16.1, which corresponds to branch `saas-16.1`." +msgid "Choose the version of Odoo to which you want to make changes. Keep in mind that contributions targeting an :doc:`unsupported version of Odoo ` are not accepted. This guide assumes that the changes target Odoo 17, which corresponds to branch `17.0`." msgstr "" #: ../../content/contributing/development.rst:99 #: ../../content/contributing/documentation.rst:216 -msgid "Create a new branch starting from branch saas-16.1. Prefix the branch name with the base branch: `saas-16.1-...`. If you work at Odoo, suffix the branch name with your Odoo handle: `saas-16.1-...-xyz`." +msgid "Create a new branch starting from branch 17.0. Prefix the branch name with the base branch: `17.0-...`. If you work at Odoo, suffix the branch name with your Odoo handle: `17.0-...-xyz`." msgstr "" #: ../../content/contributing/development.rst:113 -msgid "`Sign the Odoo CLA `_ if not already done. Skip this step if you work at Odoo." +msgid "`Sign the Odoo CLA `_ if not already done. Skip this step if you work at Odoo." msgstr "" #: ../../content/contributing/development.rst:115 @@ -339,7 +339,7 @@ msgstr "" #: ../../content/contributing/development.rst:149 #: ../../content/contributing/documentation.rst:278 -msgid "Select **saas-16.1** for the base." +msgid "Select **17.0** for the base." msgstr "" #: ../../content/contributing/development.rst:150 @@ -1611,7 +1611,7 @@ msgid "Now that your environment is set up, you can start contributing to the do msgstr "" #: ../../content/contributing/documentation.rst:211 -msgid "Choose the version of the documentation to which you want to make changes. Keep in mind that contributions targeting an :doc:`unsupported version of Odoo ` are not accepted. This guide assumes that the changes target the documentation of Odoo 16.1, which corresponds to branch `saas-16.1`." +msgid "Choose the version of the documentation to which you want to make changes. Keep in mind that contributions targeting an :doc:`unsupported version of Odoo ` are not accepted. This guide assumes that the changes target the documentation of Odoo 17, which corresponds to branch `17.0`." msgstr "" #: ../../content/contributing/documentation.rst:233 @@ -1619,7 +1619,7 @@ msgid "Compress all PNG images that you added or modified." msgstr "" #: ../../content/contributing/documentation.rst:240 -msgid "Write a `redirect rule `_ for every RST file that your renamed." +msgid "Write a `redirect rule `_ for every RST file that your renamed." msgstr "" #: ../../content/contributing/documentation.rst:243 @@ -2882,11 +2882,11 @@ msgid "Absolute:" msgstr "" #: ../../content/contributing/documentation/rst_guidelines.rst:39 -msgid "``https://odoo.com/documentation/saas-16.1/applications/sales/sales/products_prices/prices.html``" +msgid "``https://odoo.com/documentation/17.0/applications/sales/sales/products_prices/prices.html``" msgstr "" #: ../../content/contributing/documentation/rst_guidelines.rst:40 -msgid "``https://odoo.com/documentation/saas-16.1/applications/sales/sales/products_prices/products/variants.html``" +msgid "``https://odoo.com/documentation/17.0/applications/sales/sales/products_prices/products/variants.html``" msgstr "" #: ../../content/contributing/documentation/rst_guidelines.rst:42 diff --git a/locale/sources/developer.pot b/locale/sources/developer.pot index 2fb885915..9c65b7c26 100644 --- a/locale/sources/developer.pot +++ b/locale/sources/developer.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Odoo saas-16.1\n" +"Project-Id-Version: Odoo 17.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-27 12:38+0000\n" +"POT-Creation-Date: 2023-11-08 08:46+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -101,11 +101,11 @@ msgid "Installation procedure" msgstr "" #: ../../content/developer/howtos/accounting_localization.rst:15 -msgid "On installing the `account `_ module, the localization module corresponding to the country code of the company is installed automatically. In case of no country code set or no localization module found, the `l10n_generic_coa `_ (US) localization module is installed by default. Check `post init hook `_ for details." +msgid "On installing the `account `_ module, the localization module corresponding to the country code of the company is installed automatically. In case of no country code set or no localization module found, the `l10n_generic_coa `_ (US) localization module is installed by default. Check `post init hook `_ for details." msgstr "" #: ../../content/developer/howtos/accounting_localization.rst:19 -msgid "For example, `l10n_ch `_ will be installed if the company has ``Switzerland`` as country." +msgid "For example, `l10n_ch `_ will be installed if the company has ``Switzerland`` as country." msgstr "" #: ../../content/developer/howtos/accounting_localization.rst:22 @@ -116,279 +116,246 @@ msgstr "" msgid "The structure of a basic ``l10n_XX`` module may be described with the following :file:`__manifest__.py` file:" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:63 -msgid "In the first file :file:`data/account_chart_template_data.xml`, we set the name for the chart of accounts along with some basic fields." +#: ../../content/developer/howtos/accounting_localization.rst:45 +msgid "Your worktree should look like this" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:66 -msgid ":ref:`Chart Template References `" +#: ../../content/developer/howtos/accounting_localization.rst:67 +msgid "In the first file :file:`models/template_xx.py`, we set the name for the chart of accounts along with some basic fields." msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:69 -msgid "`addons/l10n_ch/data/l10n_ch_chart_data.xml `_" +#: ../../content/developer/howtos/accounting_localization.rst:70 +msgid ":doc:`Chart Template References `" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:80 -msgid "Recommended **xmlid** for the record is `chart_template`. If you need many chart of accounts, you can add some suffixes, i.e. `chart_template_XXX`." +#: ../../content/developer/howtos/accounting_localization.rst:73 +msgid "`addons/l10n_be/models/template_be.py `_" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:85 +#: ../../content/developer/howtos/accounting_localization.rst:83 msgid "Chart of Accounts" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:88 +#: ../../content/developer/howtos/accounting_localization.rst:86 msgid "Account tags" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:91 +#: ../../content/developer/howtos/accounting_localization.rst:89 msgid ":ref:`Account Tag References `" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:93 +#: ../../content/developer/howtos/accounting_localization.rst:91 msgid "Tags are a way to sort accounts. For example, imagine you want to create a financial report having multiple lines but you have no way to find a rule to dispatch the accounts according to their ``code``. The solution is the usage of tags, one for each report line, to filter accounts like you want." msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:97 +#: ../../content/developer/howtos/accounting_localization.rst:95 msgid "Put the tags in the :file:`data/account_account_tag_data.xml` file." msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:100 -msgid "`addons/l10n_lt/data/account.account.template.csv `_" +#: ../../content/developer/howtos/accounting_localization.rst:98 +msgid "`addons/l10n_lt/data/template/account.account-lt.csv `_" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:108 -#: ../../content/developer/howtos/accounting_localization.rst:138 -msgid "`addons/l10n_at/data/account_account_template.xml `_" -msgstr "" - -#: ../../content/developer/howtos/accounting_localization.rst:119 +#: ../../content/developer/howtos/accounting_localization.rst:106 msgid "Accounts" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:122 +#: ../../content/developer/howtos/accounting_localization.rst:109 msgid ":ref:`Account References `" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:123 +#: ../../content/developer/howtos/accounting_localization.rst:110 msgid ":doc:`/applications/finance/accounting/get_started/chart_of_accounts`" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:125 +#: ../../content/developer/howtos/accounting_localization.rst:112 msgid "Obviously, :guilabel:`Chart of Accounts` cannot exist without :guilabel:`Accounts`. You need to specify them in :file:`data/account.account.template.csv`." msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:128 -msgid "`addons/l10n_ch/data/account.account.template.csv `_" +#: ../../content/developer/howtos/accounting_localization.rst:115 +msgid "`addons/l10n_ch/data/template/account.account-ch.csv `_" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:135 -msgid "CSV is prefered but you may use XML format instead." +#: ../../content/developer/howtos/accounting_localization.rst:124 +msgid "Avoid the usage of `asset_cash` ``account_type``! Indeed, the bank & cash accounts are created directly at the installation of the localization module and then, are linked to an ``account.journal``." msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:148 -msgid "Avoid the usage of liquidity ``account.account.type``! Indeed, the bank & cash accounts are created directly at the installation of the localization module and then, are linked to an ``account.journal``." -msgstr "" - -#: ../../content/developer/howtos/accounting_localization.rst:150 +#: ../../content/developer/howtos/accounting_localization.rst:126 msgid "Only one account of type payable/receivable is enough for the generic case. We need to define a PoS receivable account as well however. (linked in the CoA)" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:151 +#: ../../content/developer/howtos/accounting_localization.rst:127 msgid "Don't create too many accounts: 200-300 is enough. But mostly, we try to find a good balance where the CoA needs minimal adapting for most companies afterwards." msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:153 -msgid "Next settings for the chart of accounts are set in a separate file, because we need to provide a :ref:`list of accounts ` first. In :file:`data/account_chart_post_data.xml`, we set some default accounts:" -msgstr "" - -#: ../../content/developer/howtos/accounting_localization.rst:158 -msgid "`addons/l10n_ch/data/l10n_ch_chart_post_data.xml `_" -msgstr "" - -#: ../../content/developer/howtos/accounting_localization.rst:168 +#: ../../content/developer/howtos/accounting_localization.rst:131 msgid "Account groups" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:171 +#: ../../content/developer/howtos/accounting_localization.rst:134 msgid ":ref:`Account Group References `" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:173 +#: ../../content/developer/howtos/accounting_localization.rst:136 msgid "Account groups allow describing the hierarchical structure of the chart of accounts. The filter needs to be activated in the report and then when you decollapse into journal entries it will show the parents of the account." msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:175 -msgid "It works with the prefix *start*/*end*, so every account where the code starts with something between *start* and *end* will have this account.group as the parent group. Furthermore, the account groups can have a parent account group as well to form the hierarchy." +#: ../../content/developer/howtos/accounting_localization.rst:138 +msgid "It works with the prefix *start*/*end*, so every account where the code starts with something between *start* and *end* will have this ``account.group`` as the parent group. Furthermore, the account groups can have a parent account group as well to form the hierarchy." msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:179 -msgid "`addons/l10n_il/data/account.group.template.csv `_" +#: ../../content/developer/howtos/accounting_localization.rst:142 +msgid "`addons/l10n_il/data/template/account.group-il.csv `_" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:188 +#: ../../content/developer/howtos/accounting_localization.rst:151 #: ../../content/developer/reference/standard_modules/account/account_tax.rst:5 msgid "Taxes" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:191 +#: ../../content/developer/howtos/accounting_localization.rst:154 msgid ":ref:`Tax References `" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:192 +#: ../../content/developer/howtos/accounting_localization.rst:155 msgid ":doc:`/applications/finance/accounting/taxes/`" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:194 -msgid "To add taxes you first need to specify tax groups. You normally need just one tax group for every tax rate, except for the 0% as you need to often distinguish between exempt, 0%, not subject, ... taxes. This model only has two required fields: *name* and *country*. Create the file :file:`data/account_tax_group_data.xml` and list the groups:" +#: ../../content/developer/howtos/accounting_localization.rst:157 +msgid "To add taxes you first need to specify tax groups. You normally need just one tax group for every tax rate, except for the 0% as you need to often distinguish between exempt, 0%, not subject, ... taxes. This model only has two required fields: `name` and `country`. Create the file :file:`data/template/account.tax.group-xx.csv` and list the groups." msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:211 -msgid "`addons/l10n_ch/data/account_tax_group_data.xml `_" +#: ../../content/developer/howtos/accounting_localization.rst:161 +msgid "`addons/l10n_uk/data/template/account.tax.group-uk.csv `_" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:220 -msgid "`addons/l10n_uk/data/account.tax.group.csv `_" +#: ../../content/developer/howtos/accounting_localization.rst:168 +msgid "Now you can add the taxes via :file:`data/template/account.tax-xx.csv` file. The first tax you define that is purchase/sale also becomes the default purchase/sale tax for your products." msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:227 -msgid "Now you can add the taxes via :file:`data/account_tax_template_data.xml` file. The first tax you define that is purchase/sale also becomes the default purchase/sale tax for your products." +#: ../../content/developer/howtos/accounting_localization.rst:172 +msgid "`addons/l10n_ae/data/template/account.tax-ae.csv `_" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:231 -msgid "`addons/l10n_ae/data/account_tax_template_data.xml `_" -msgstr "" - -#: ../../content/developer/howtos/accounting_localization.rst:239 -msgid "If some accounts should use default taxes, you can set them up in :file:`data/account_account_template_post_data.xml`" -msgstr "" - -#: ../../content/developer/howtos/accounting_localization.rst:242 +#: ../../content/developer/howtos/accounting_localization.rst:181 msgid "Tax Report" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:248 +#: ../../content/developer/howtos/accounting_localization.rst:187 msgid "The tax report is declared in the :guilabel:`Invoicing` (`account`) app, but the report is only accessible when :guilabel:`Accounting` (`account_accountant`) is installed." msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:251 -#: ../../content/developer/howtos/accounting_localization.rst:376 +#: ../../content/developer/howtos/accounting_localization.rst:190 +#: ../../content/developer/howtos/accounting_localization.rst:302 msgid ":doc:`/developer/reference/standard_modules/account/account_report_line`" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:252 +#: ../../content/developer/howtos/accounting_localization.rst:191 msgid ":doc:`/applications/finance/accounting/reporting/tax_returns`" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:254 +#: ../../content/developer/howtos/accounting_localization.rst:193 msgid "In the previous section, you noticed the fields `invoice_repartition_line_ids` or `refund_repartition_line_ids` and probably understood nothing about them. Good news: you are not alone on this incomprehension. Bad news: you have to figure it out a bit. The topic is complicated. Indeed:" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:259 +#: ../../content/developer/howtos/accounting_localization.rst:198 msgid "The simple version is that, in the tax template, you indicate in the invoice/refund repartition lines whether the base or a percentage of the tax needs to be reported in which report line (through the *minus/plus_report_line_ids* fields). It becomes clear also when you check the tax configuration in the Odoo interface (or check the docs :ref:`Tax References `, :ref:`Tax Repartition References `)." msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:262 +#: ../../content/developer/howtos/accounting_localization.rst:201 msgid "So, once you have properly configured taxes, you just need to add the :file:`data/account_tax_report_data.xml` file with a record for your `account.report`. For it to be considered as a tax report, you need to provide it with the right `root_report_id`." msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:276 +#: ../../content/developer/howtos/accounting_localization.rst:215 msgid "... followed by the declaration of its lines, as `account.report.line` records." msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:279 -msgid "`addons/l10n_au/data/account_tax_report_data.xml `_" +#: ../../content/developer/howtos/accounting_localization.rst:218 +msgid "`addons/l10n_au/data/account_tax_report_data.xml `_" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:290 +#: ../../content/developer/howtos/accounting_localization.rst:229 msgid "Fiscal positions" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:293 +#: ../../content/developer/howtos/accounting_localization.rst:232 msgid ":ref:`Fiscal Position References `" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:294 +#: ../../content/developer/howtos/accounting_localization.rst:233 msgid ":doc:`/applications/finance/accounting/taxes/fiscal_positions`" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:296 -msgid "Specify fiscal positions in the :file:`data/account_fiscal_position_template_data.xml` file." +#: ../../content/developer/howtos/accounting_localization.rst:235 +msgid "Specify fiscal positions in the :file:`data/template/account.fiscal.position-xx.csv` file." msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:299 -msgid "`addons/l10n_es/data/account_fiscal_position_template_data.xml `_" +#: ../../content/developer/howtos/accounting_localization.rst:238 +msgid "`addons/l10n_es/data/template/account.fiscal.position-es_common.csv `_" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:308 +#: ../../content/developer/howtos/accounting_localization.rst:246 msgid "Final steps" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:310 -msgid "The last step when installing a localization module is to try to apply its chart of accounts to the current company (if it does not already have one). The file :file:`data/account_chart_template_try_loading.xml` is responsible for that." -msgstr "" - -#: ../../content/developer/howtos/accounting_localization.rst:314 -msgid "`addons/l10n_ch/data/account_chart_template_data.xml `_" -msgstr "" - -#: ../../content/developer/howtos/accounting_localization.rst:322 +#: ../../content/developer/howtos/accounting_localization.rst:248 msgid "Finally, you may add a demo company, so the localization can easily be tested in demo mode." msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:325 -msgid "`addons/l10n_ch/demo/demo_company.xml `_" +#: ../../content/developer/howtos/accounting_localization.rst:251 +msgid "`addons/l10n_ch/demo/demo_company.xml `_" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:334 +#: ../../content/developer/howtos/accounting_localization.rst:260 msgid "Accounting reports" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:341 +#: ../../content/developer/howtos/accounting_localization.rst:267 msgid ":doc:`/applications/finance/accounting/reporting`" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:343 -msgid "Accounting reports should be added via a separate module `l10n_XX_reports` that should go to the `enterprise repository `_." +#: ../../content/developer/howtos/accounting_localization.rst:269 +msgid "Accounting reports should be added via a separate module `l10n_XX_reports` that should go to the `enterprise repository `_." msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:345 +#: ../../content/developer/howtos/accounting_localization.rst:271 msgid "Basic :file:`__manifest__.py` file for such a module looks as following:" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:366 +#: ../../content/developer/howtos/accounting_localization.rst:292 msgid "Functional overview of financial reports is here: :doc:`/applications/finance/accounting/reporting`." msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:368 +#: ../../content/developer/howtos/accounting_localization.rst:294 msgid "Some good examples:" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:370 -msgid "`l10n_ch_reports/data/account_financial_html_report_data.xml `_" +#: ../../content/developer/howtos/accounting_localization.rst:296 +msgid "`l10n_ch_reports/data/account_financial_html_report_data.xml `_" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:371 -msgid "`l10n_be_reports/data/account_financial_html_report_data.xml `_" +#: ../../content/developer/howtos/accounting_localization.rst:297 +msgid "`l10n_be_reports/data/account_financial_html_report_data.xml `_" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:373 +#: ../../content/developer/howtos/accounting_localization.rst:299 msgid "You can check the meaning of the fields here:" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:375 +#: ../../content/developer/howtos/accounting_localization.rst:301 msgid ":doc:`/developer/reference/standard_modules/account/account_report`" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:378 +#: ../../content/developer/howtos/accounting_localization.rst:304 msgid "If you gave a `root_report_id` to your report, it is now available in its variant selector. If not, you still need to add a menu item for it. A default menu item can be created from the form view of the report by clicking on :menuselection:`Actions --> Create Menu Item`. You will then need to refresh the page to see it. Alternatively, to create a dedicated section for a totally new report in the :guilabel:`Reporting` menu, you need to create a new `ir.ui.menu` record (usually in the main `l10n_XX` module) and a new `ir.actions.client` (usually in the new report XML file) that calls the `account.report` with the new **report id**. Then, set the new menu as `parent_id` field in the action model." msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:388 -msgid "`ir.ui.menu creation `_" +#: ../../content/developer/howtos/accounting_localization.rst:314 +msgid "`ir.ui.menu creation `_" msgstr "" -#: ../../content/developer/howtos/accounting_localization.rst:389 -msgid "`ir.actions.client and menu item creation `_" +#: ../../content/developer/howtos/accounting_localization.rst:315 +msgid "`ir.actions.client and menu item creation `_" msgstr "" #: ../../content/developer/howtos/company.rst:6 @@ -506,8 +473,7 @@ msgstr "" #: ../../content/developer/howtos/company.rst:168 #: ../../content/developer/howtos/website_themes/setup.rst:75 #: ../../content/developer/howtos/website_themes/theming.rst:496 -#: ../../content/developer/reference/backend/views.rst:6 -#: ../../content/developer/reference/frontend/javascript_reference.rst:1196 +#: ../../content/developer/reference/frontend/javascript_reference.rst:1154 msgid "Views" msgstr "" @@ -528,11 +494,6 @@ msgid "This is achieved with security rules based on `company_ids`, which contai msgstr "" #: ../../content/developer/howtos/company.rst:229 -#: ../../content/developer/howtos/provide_iap_services.rst:118 -#: ../../content/developer/howtos/provide_iap_services.rst:222 -#: ../../content/developer/howtos/provide_iap_services.rst:406 -#: ../../content/developer/howtos/provide_iap_services.rst:408 -#: ../../content/developer/howtos/provide_iap_services.rst:511 #: ../../content/developer/howtos/translations.rst:19 #: ../../content/developer/howtos/website_themes/building_blocks.rst:77 #: ../../content/developer/howtos/website_themes/building_blocks.rst:332 @@ -540,29 +501,20 @@ msgstr "" #: ../../content/developer/howtos/website_themes/pages.rst:130 #: ../../content/developer/howtos/website_themes/pages.rst:194 #: ../../content/developer/howtos/website_themes/shapes.rst:125 -#: ../../content/developer/reference/backend/actions.rst:176 -#: ../../content/developer/reference/backend/orm.rst:636 -#: ../../content/developer/reference/backend/orm.rst:638 -#: ../../content/developer/reference/backend/orm.rst:827 -#: ../../content/developer/reference/backend/orm.rst:980 +#: ../../content/developer/reference/backend/actions.rst:173 +#: ../../content/developer/reference/backend/orm.rst:642 +#: ../../content/developer/reference/backend/orm.rst:644 +#: ../../content/developer/reference/backend/orm.rst:833 +#: ../../content/developer/reference/backend/orm.rst:992 #: ../../content/developer/reference/backend/security.rst:28 #: ../../content/developer/reference/backend/security.rst:186 -#: ../../content/developer/reference/backend/views.rst:13 -#: ../../content/developer/reference/backend/views.rst:70 -#: ../../content/developer/reference/backend/views.rst:81 -#: ../../content/developer/reference/backend/views.rst:179 -#: ../../content/developer/reference/backend/views.rst:241 -#: ../../content/developer/reference/backend/views.rst:683 -#: ../../content/developer/reference/backend/views.rst:807 -#: ../../content/developer/reference/backend/views.rst:809 -#: ../../content/developer/reference/backend/views.rst:1500 -#: ../../content/developer/reference/backend/views.rst:1600 -#: ../../content/developer/reference/backend/views.rst:1618 -#: ../../content/developer/reference/backend/views.rst:1756 -#: ../../content/developer/reference/frontend/qweb.rst:412 -#: ../../content/developer/reference/frontend/qweb.rst:413 -#: ../../content/developer/reference/frontend/qweb.rst:475 -#: ../../content/developer/reference/frontend/qweb.rst:792 +#: ../../content/developer/reference/frontend/qweb.rst:422 +#: ../../content/developer/reference/frontend/qweb.rst:739 +#: ../../content/developer/reference/user_interface/view_architecture.rst:2555 +#: ../../content/developer/reference/user_interface/view_architecture.rst:2765 +#: ../../content/developer/reference/user_interface/view_architecture.rst:2783 +#: ../../content/developer/reference/user_interface/view_records.rst:10 +#: ../../content/developer/reference/user_interface/view_records.rst:209 #: ../../content/developer/tutorials/master_odoo_web_framework/03_custom_kanban_view.rst:5 #: ../../content/developer/tutorials/web.rst:134 #: ../../content/developer/tutorials/web.rst:1872 @@ -684,7 +636,7 @@ msgstr "" #: ../../content/developer/howtos/connect_device.rst:137 #: ../../content/developer/howtos/website_themes/forms.rst:33 -#: ../../content/developer/reference/backend/actions.rst:6 +#: ../../content/developer/reference/backend/actions.rst:3 #: ../../content/developer/tutorials/getting_started/06_firstui.rst:47 msgid "Actions" msgstr "" @@ -786,7 +738,7 @@ msgid "`tools.drop_view_if_exists` ensures that a conflicting view is not create msgstr "" #: ../../content/developer/howtos/create_reports.rst:78 -msgid "`Example: a SQL view using an override of BaseModel.init() `_" +msgid "`Example: a SQL view using an override of BaseModel.init() `_" msgstr "" #: ../../content/developer/howtos/create_reports.rst:81 @@ -806,7 +758,7 @@ msgid "An example of when the property should be used instead of overriding `Bas msgstr "" #: ../../content/developer/howtos/create_reports.rst:99 -msgid "`Example: a SQL view using _table_query `_" +msgid "`Example: a SQL view using _table_query `_" msgstr "" #: ../../content/developer/howtos/create_reports.rst:103 @@ -1041,701 +993,7 @@ msgid ":file:`beautiful_view.js`" msgstr "" #: ../../content/developer/howtos/javascript_view.rst:256 -msgid "Declare the :ref:`view ` in the arch." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:3 -msgid "Provide IAP services" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:5 -msgid "In-App Purchase (IAP) allows providers of ongoing services through Odoo apps to be compensated for ongoing service use rather than ā€” and possibly instead of ā€” a sole initial purchase." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:9 -msgid "In that context, Odoo acts mostly as a *broker* between a client and an Odoo App Developer:" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:12 -msgid "Users purchase service tokens from Odoo." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:13 -msgid "Service providers draw tokens from the user's Odoo account when service is requested." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:18 -msgid "This document is intended for *service providers* and presents the latter, which can be done either via direct JSON-RPC2_ or if you are using Odoo using the convenience helpers it provides." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:23 -#: ../../content/developer/reference/extract_api.rst:22 -#: ../../content/developer/reference/frontend/javascript_reference.rst:17 -#: ../../content/developer/reference/frontend/services.rst:144 -#: ../../content/developer/reference/frontend/services.rst:182 -#: ../../content/developer/reference/frontend/services.rst:362 -#: ../../content/developer/reference/frontend/services.rst:408 -#: ../../content/developer/reference/frontend/services.rst:522 -#: ../../content/developer/reference/frontend/services.rst:612 -#: ../../content/developer/reference/frontend/services.rst:708 -#: ../../content/developer/reference/frontend/services.rst:759 -#: ../../content/developer/reference/frontend/services.rst:834 -#: ../../content/developer/reference/user_interface/scss_inheritance.rst:6 -msgid "Overview" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:28 -msgid "The Players" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:30 -msgid "The Service Provider is (probably) you the reader, you will be providing value to the client in the form of a service paid per-use." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:32 -msgid "The Client installed your Odoo App, and from there will request services." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:33 -msgid "Odoo brokers crediting, the Client adds credit to their account, and you can draw credits from there to provide services." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:35 -msgid "The External Service is an optional player: *you* can either provide a service directly, or you can delegate the actual service acting as a bridge/translator between an Odoo system and the actual service." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:43 -msgid "The Credits" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:45 -msgid "The credits went from integer to float value starting **October 2018**. Integer values are still supported." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:48 -msgid "Every service provided through the IAP platform can be used by the clients with tokens or *credits*. The credits are an float unit and their monetary value depends on the service and is decided by the provider. This could be:" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:53 -msgid "for an sms service: 1 credit = 1 sms;" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:54 -msgid "for an ad service: 1 credit = 1 ad; or" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:55 -msgid "for a postage service: 1 credit = 1 post stamp." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:57 -msgid "A credit can also simply be associated with a fixed amount of money to palliate the variations of price (e.g. the prices of sms and stamps may vary following the countries)." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:61 -msgid "The value of the credits is fixed with the help of prepaid credit packs that the clients can buy on https://iap.odoo.com (see :ref:`Packs `)." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:64 -msgid "In the following explanations we will ignore the External Service, they are just a detail of the service you provide." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:70 -msgid "'Normal' service flow" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:72 -msgid "If everything goes well, the normal flow is the following:" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:74 -msgid "The Client requests a service of some sort." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:75 -msgid "The Service Provider asks Odoo if there are enough credits for the service in the Client's account, and creates a transaction over that amount." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:78 -msgid "The Service Provider provides the service (either on their own or calling to External Services)." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:80 -msgid "The Service Provider goes back to Odoo to capture (if the service could be provided) or cancel (if the service could not be provided) the transaction created at step 2." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:83 -msgid "Finally, the Service Provider notifies the Client that the service has been rendered, possibly (depending on the service) displaying or storing its results in the client's system." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:90 -msgid "Insufficient credits" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:92 -msgid "However, if the Client's account lacks credits for the service, the flow will be as follows:" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:94 -msgid "The Client requests a service as previously." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:95 -msgid "The Service Provider asks Odoo if there are enough credits on the Client's account and gets a negative reply." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:97 -msgid "This is signaled back to the Client." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:98 -msgid "Who is redirected to their Odoo account to credit it and re-try." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:102 -msgid "Building your service" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:104 -msgid "For this example, the service we will provide is ~~mining dogecoins~~ burning 10 seconds of CPU for a credit. For your own services, you could, for example:" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:107 -msgid "provide an online service yourself (e.g. convert quotations to faxes for business in Japan);" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:109 -msgid "provide an *offline* service yourself (e.g. provide accountancy service); or" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:110 -msgid "act as intermediary to an other service provider (e.g. bridge to an MMS gateway)." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:116 -msgid "Register the service on Odoo" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:118 -msgid "complete this part with screenshots" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:120 -msgid "The first step is to register your service on the IAP endpoint (production and/or test) before you can actually query user accounts. To create a service, go to your *Portal Account* on the IAP endpoint (https://iap.odoo.com for production, https://iap-sandbox.odoo.com for testing, the endpoints are *independent* and *not synchronized*). Alternatively, you can go to your portal on Odoo (https://iap.odoo.com/my/home) and select *In-App Services*." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:129 -msgid "On production, there is a manual validation step before the service can be used to manage real transactions. This step is automatically passed when on sandbox to ease the tests." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:133 -msgid "Log in then go to :menuselection:`My Account --> Your In-App Services`, click Create and provide the information of your service." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:137 -msgid "The service has *seven* important fields:" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:139 -msgid ":samp:`name` - :class:`ServiceName`: This is the string you will need to provide inside the client's :ref:`app ` when requesting a transaction from Odoo. (e.g. `self.env['iap.account].get(name)`). As good practice, this should match the technical name of your app." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:144 -msgid ":samp:`label` - :class:`Label`: The name displayed on the shopping portal for the client." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:149 -msgid "Both the :class:`ServiceName` and :class:`Label` are unique. As good practice, the :class:`ServiceName` should usually match the name of your Odoo Client App." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:152 -msgid ":samp:`icon` - :class:`Icon`: A generic icon that will serve as default for your :ref:`packs `." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:155 -msgid ":samp:`key` - :class:`ServiceKey`: The developer key that identifies you in IAP (see :ref:`your service `) and allows to draw credits from the client's account. It will be shown only once upon creation of the service and can be regenerated at will." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:161 -msgid "Your :class:`ServiceKey` *is a secret*, leaking your service key allows other application developers to draw credits bought for your service(s)." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:165 -msgid ":samp:`trial credits` - :class:`Float`: This corresponds to the credits you are ready to offer upon first use to your app users. Note that such service will only be available to clients that have an active enterprise contract." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:169 -msgid ":samp:`privacy policy` - :class:`PrivacyPolicy`: This is an url to the privacy policy of your service. This should explicitly mention the **information you collect**, how you **use it, its relevance** to make your service work and inform the client on how they can **access, update or delete their personal information**." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:186 -msgid "You can then create *credit packs* which clients can purchase in order to use your service." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:192 -msgid "Packs" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:194 -msgid "A credit pack is essentially a product with five characteristics:" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:196 -msgid "Name: name of the pack," -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:197 -msgid "Icon: specific icon for the pack (if not provided, it will fallback on the service icon)," -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:198 -msgid "Description: details on the pack that will appear on the shop page as well as the invoice," -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:200 -msgid "Amount: amount of credits the client is entitled to when buying the pack," -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:201 -msgid "Price: price in EUR (for the time being, USD support is planned)." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:205 -msgid "Odoo takes a 25% commission on all pack sales. Adjust your selling price accordingly." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:210 -msgid "Depending on the strategy, the price per credit may vary from one pack to another." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:220 -msgid "Odoo App" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:222 -msgid "does this actually require apps?" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:224 -msgid "The second step is to develop an `Odoo App`_ which clients can install in their Odoo instance and through which they can *request* the services you provide. Our app will just add a button to the Partners form which lets a user request burning some CPU time on the server." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:229 -msgid "First, we will create an *odoo module* depending on ``iap``. IAP is a standard V11 module and the dependency ensures a local account is properly set up and we will have access to some necessary views and useful helpers." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:233 -#: ../../content/developer/howtos/provide_iap_services.rst:248 -msgid "`coalroller/__manifest__.py`" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:243 -msgid "Second, the \"local\" side of the integration. Here we will only be adding an action button to the partners view, but you can of course provide significant local value via your application and additional parts via a remote service." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:261 -msgid "`coalroller/views/res_partner_views.xml`" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:286 -msgid "We can now implement the action method/callback. This will *call our own server*." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:289 -msgid "There are no requirements when it comes to the server or the communication protocol between the app and our server, but ``iap`` provides a :func:`~odoo.addons.iap.tools.iap_tools.iap_jsonrpc` helper to call a JSON-RPC2_ endpoint on an other Odoo instance and transparently re-raise relevant Odoo exceptions (:class:`~odoo.addons.iap.tools.iap_tools.InsufficientCreditError`, :class:`odoo.exceptions.AccessError` and :class:`odoo.exceptions.UserError`)." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:296 -msgid "In that call, we will need to provide:" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:298 -msgid "any relevant client parameter (none here)," -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:299 -msgid "the :class:`token ` of the current client that is provided by the ``iap.account`` model's ``account_token`` field. You can retrieve the account for your service by calling :samp:`env['iap.account'].get({service_name})` where :class:`service_name ` is the name of the service registered on IAP endpoint." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:305 -msgid "`coalroller/models/res_partner.py`" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:333 -msgid "``iap`` automatically handles :class:`~odoo.addons.iap.tools.iap_tools.InsufficientCreditError` coming from the action and prompts the user to add credits to their account." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:337 -msgid ":func:`~odoo.addons.iap.tools.iap_tools.iap_jsonrpc` takes care of re-raising :class:`~odoo.addons.iap.models.iap.InsufficientCreditError` for you." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:342 -msgid "If you are not using :func:`~odoo.addons.iap.tools.iap_tools.iap_jsonrpc` you *must* be careful to re-raise :class:`~odoo.addons.iap.tools.iap_tools.InsufficientCreditError` in your handler otherwise the user will not be prompted to credit their account, and the next call will fail the same way." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:351 -#: ../../content/developer/reference/frontend/javascript_reference.rst:876 -msgid "Service" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:353 -msgid "Though that is not *required*, since ``iap`` provides both a client helper for JSON-RPC2_ calls (:func:`~odoo.addons.iap.tools.iap_tools.iap_jsonrpc`) and a service helper for transactions (:class:`~odoo.addons.iap.tools.iap_tools.iap_charge`) we will also be implementing the service side as an Odoo module:" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:358 -#: ../../content/developer/howtos/provide_iap_services.rst:448 -msgid "`coalroller_service/__manifest__.py`" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:368 -msgid "Since the query from the client comes as JSON-RPC2_ we will need the corresponding controller which can call :class:`~odoo.addons.iap.tools.iap_tools.iap_charge` and perform the service within:" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:372 -#: ../../content/developer/howtos/provide_iap_services.rst:461 -msgid "`coalroller_service/controllers/main.py`" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:406 -msgid "for the actual IAP will the \"portal\" page be on odoo.com or iap.odoo.com?" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:408 -msgid "\"My Account\" > \"Your InApp Services\"?" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:411 -msgid "The :class:`~odoo.addons.iap.tools.iap_tools.iap_charge` helper will:" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:413 -msgid "authorize (create) a transaction with the specified number of credits, if the account does not have enough credits it will raise the relevant error" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:416 -msgid "execute the body of the ``with`` statement" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:417 -msgid "if the body of the ``with`` executes successfully, update the price of the transaction if needed" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:419 -msgid "capture (confirm) the transaction" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:420 -msgid "otherwise, if an error is raised from the body of the ``with``, cancel the transaction (and release the hold on the credits)" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:425 -msgid "By default, :class:`~odoo.addons.iap.tools.iap_tools.iap_charge` contacts the *production* IAP endpoint, https://iap.odoo.com. While developing and testing your service you may want to point it towards the *development* IAP endpoint https://iap-sandbox.odoo.com." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:430 -msgid "To do so, set the ``iap.endpoint`` config parameter in your service Odoo: in debug/developer mode, :menuselection:`Setting --> Technical --> Parameters --> System Parameters`, just define an entry for the key ``iap.endpoint`` if none already exists)." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:435 -msgid "The :class:`~odoo.addons.iap.tools.iap_tools.iap_charge` helper has two additional optional parameters we can use to make things clearer to the end-user." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:440 -#: ../../content/developer/reference/backend/reports.rst:198 -#: ../../content/developer/reference/extract_api.rst:509 -msgid "``description``" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:439 -msgid "is a message which will be associated with the transaction and will be displayed in the user's dashboard, it is useful to remind the user why the charge exists." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:446 -msgid "``credit_template``" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:443 -msgid "is the name of a :ref:`reference/qweb` template which will be rendered and shown to the user if their account has less credit available than the service provider is requesting, its purpose is to tell your users why they should be interested in your IAP offers." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:488 -msgid "`coalroller_service/views/no-credit.xml`" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:511 -msgid "how do you test your service?" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:514 -msgid "JSON-RPC2_ Transaction API" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:519 -msgid "The IAP transaction API does not require using Odoo when implementing your server gateway, calls are standard JSON-RPC2_." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:521 -msgid "Calls use different *endpoints* but the same *method* on all endpoints (``call``)." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:523 -msgid "Exceptions are returned as JSON-RPC2_ errors, the formal exception name is available on ``data.name`` for programmatic manipulation." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:526 -msgid "`iap.odoo.com documentation`_ for additional information." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:529 -#: ../../content/developer/howtos/provide_iap_services.rst:775 -msgid "Authorize" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:533 -msgid "Verifies that the user's account has at least as ``credit`` available *and creates a hold (pending transaction) on that amount*." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:536 -msgid "Any amount currently on hold by a pending transaction is considered unavailable to further authorize calls." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:539 -msgid "Returns a :class:`TransactionToken` identifying the pending transaction which can be used to capture (confirm) or cancel said transaction (`iap.odoo.com documentation`_)." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:0 -#: ../../content/developer/reference/backend/mixins.rst:0 -#: ../../content/developer/reference/frontend/framework_overview.rst:0 -#: ../../content/developer/reference/frontend/qweb.rst:0 -msgid "Parameters" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:545 -msgid "optional, helps users identify the reason for charges on their account" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:547 -msgid "optional, allows the user to benefit from trial credits if his database is eligible (see :ref:`Service registration `)" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:549 -msgid "optional, transaction time to live in hours. If the credit are not captured when the transaction expires, the transaction is cancelled. The default value is set to 4320 hours (= 180 days)." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:0 -#: ../../content/developer/reference/backend/mixins.rst:0 -#: ../../content/developer/reference/frontend/assets.rst:0 -#: ../../content/developer/reference/frontend/framework_overview.rst:0 -#: ../../content/developer/reference/frontend/hooks.rst:0 -#: ../../content/developer/reference/frontend/javascript_reference.rst:0 -#: ../../content/developer/reference/frontend/mobile.rst:0 -#: ../../content/developer/reference/frontend/qweb.rst:0 -#: ../../content/developer/reference/frontend/registries.rst:0 -#: ../../content/developer/reference/frontend/services.rst:0 -msgid "Returns" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:551 -msgid ":class:`TransactionToken` if the authorization succeeded" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:0 -msgid "raises" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:552 -msgid ":class:`~odoo.exceptions.AccessError` if the service token is invalid" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:553 -msgid ":class:`~odoo.addons.iap.models.iap.InsufficientCreditError` if the account does not have enough credits" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:554 -msgid "``TypeError`` if the ``credit`` value is not an integer or a float" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:577 -#: ../../content/developer/howtos/provide_iap_services.rst:855 -msgid "Capture" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:581 -msgid "Confirms the specified transaction, transferring the reserved credits from the user's account to the service provider's." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:584 -msgid "Capture calls are idempotent: performing capture calls on an already captured transaction has no further effect." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:589 -msgid "optional parameter to capture a smaller amount of credits than authorized" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:590 -#: ../../content/developer/howtos/provide_iap_services.rst:622 -msgid ":class:`~odoo.exceptions.AccessError`" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:610 -#: ../../content/developer/howtos/provide_iap_services.rst:817 -msgid "Cancel" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:614 -msgid "Cancels the specified transaction, releasing the hold on the user's credits." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:617 -msgid "Cancel calls are idempotent: performing capture calls on an already cancelled transaction has no further effect." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:640 -#: ../../content/developer/tutorials/getting_started/04_basicmodel.rst:134 -msgid "Types" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:642 -msgid "Exceptions aside, these are *abstract types* used for clarity, you should not care how they are implemented." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:647 -msgid "String identifying your service on https://iap.odoo.com (production) as well as the account related to your service in the client's database." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:652 -msgid "Identifier generated for the provider's service. Each key (and service) matches a token of a fixed value, as generated by the service provide." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:655 -msgid "Multiple types of tokens correspond to multiple services. As an exampe, SMS and MMS could either be the same service (with an MMS being 'worth' multiple SMS) or could be separate services at separate price points." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:659 -msgid "Your service key *is a secret*, leaking your service key allows other application developers to draw credits bought for your service(s)." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:665 -msgid "Identifier for a user account." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:669 -msgid "Transaction identifier, returned by the authorization process and consumed by either capturing or cancelling the transaction." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:674 -msgid "Raised during transaction authorization if the credits requested are not currently available on the account (either not enough credits or too many pending transactions/existing holds)." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:681 -msgid "Raised by:" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:683 -msgid "any operation to which a service token is required, if the service token is invalid; or" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:684 -msgid "any failure in an inter-server call. (typically, in :func:`~odoo.addons.iap.tools.iap_tools.iap_jsonrpc`)." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:689 -msgid "Raised by any unexpected behaviour at the discretion of the App developer (*you*)." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:693 -msgid "Test the API" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:695 -msgid "In order to test the developed app, we propose a sandbox platform that allows you to:" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:697 -msgid "Test the whole flow from the client's point of view - Actual services and transactions that can be consulted. (again this requires to change the endpoint, see the danger note in :ref:`Service `)." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:700 -msgid "Test the API." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:702 -msgid "The latter consists in specific tokens that will work on **IAP-Sandbox only**." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:704 -msgid "Token ``000000``: Represents a non-existing account. Returns an :class:`~odoo.addons.iap.tools.iap_tools.InsufficientCreditError` on authorize attempt." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:706 -msgid "Token ``000111``: Represents an account without sufficient credits to perform any service. Returns an :class:`~odoo.addons.iap.tools.iap_tools.InsufficientCreditError` on authorize attempt." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:708 -msgid "Token ``111111``: Represents an account with enough credits to perform any service. An authorize attempt will return a dummy transaction token that is processed by the capture and cancel routes." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:714 -msgid "Those tokens are only active on the IAP-Sanbox server." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:715 -msgid "The service key is completely ignored with this flow, If you want to run a robust test of your service, you should ignore these tokens." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:719 -msgid "Odoo Helpers" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:721 -msgid "For convenience, if you are implementing your service using Odoo the ``iap`` module provides a few helpers to make IAP flow even simpler." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:727 -msgid "Charging" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:731 -msgid "A *context manager* for authorizing and automatically capturing or cancelling transactions for use in the backend/proxy." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:734 -msgid "Works much like e.g. a cursor context manager:" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:736 -msgid "immediately authorizes a transaction with the specified parameters;" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:737 -msgid "executes the ``with`` body;" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:738 -msgid "if the body executes in full without error, captures the transaction;" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:739 -msgid "otherwise cancels it." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:741 -#: ../../content/developer/howtos/provide_iap_services.rst:781 -#: ../../content/developer/howtos/provide_iap_services.rst:823 -#: ../../content/developer/howtos/provide_iap_services.rst:861 -msgid "used to retrieve the ``iap.endpoint`` configuration key" -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:779 -msgid "Will authorize everything." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:821 -msgid "Will cancel an authorized transaction." -msgstr "" - -#: ../../content/developer/howtos/provide_iap_services.rst:859 -msgid "Will capture the amount ``credit`` on the given transaction." +msgid "Declare the :ref:`view ` in the arch." msgstr "" #: ../../content/developer/howtos/scss_tips.rst:3 @@ -1913,7 +1171,7 @@ msgid "`Bootstrap utility classes `_" +msgid "`Odoo custom utilities on github `_" msgstr "" #: ../../content/developer/howtos/scss_tips.rst:201 @@ -2342,7 +1600,7 @@ msgstr "" #: ../../content/developer/howtos/website_themes/building_blocks.rst:44 #: ../../content/developer/howtos/website_themes/building_blocks.rst:373 -msgid "`XML templates of the different snippets `_" +msgid "`XML templates of the different snippets `_" msgstr "" #: ../../content/developer/howtos/website_themes/building_blocks.rst:47 @@ -2394,7 +1652,6 @@ msgstr "" #: ../../content/developer/howtos/website_themes/pages.rst:251 #: ../../content/developer/howtos/website_themes/pages.rst:274 #: ../../content/developer/howtos/website_themes/shapes.rst:224 -#: ../../content/developer/reference/frontend/javascript_reference.rst:1810 #: ../../content/developer/tutorials/getting_started/04_basicmodel.rst:260 msgid "Attribute" msgstr "" @@ -2425,7 +1682,7 @@ msgstr "" #: ../../content/developer/howtos/website_themes/theming.rst:70 #: ../../content/developer/howtos/website_themes/theming.rst:120 #: ../../content/developer/howtos/website_themes/theming.rst:331 -#: ../../content/developer/reference/frontend/assets.rst:298 +#: ../../content/developer/reference/frontend/assets.rst:299 #: ../../content/developer/reference/frontend/framework_overview.rst:265 #: ../../content/developer/reference/frontend/hooks.rst:47 #: ../../content/developer/reference/frontend/hooks.rst:64 @@ -2438,21 +1695,23 @@ msgstr "" #: ../../content/developer/reference/frontend/odoo_editor.rst:148 #: ../../content/developer/reference/frontend/odoo_editor.rst:174 #: ../../content/developer/reference/frontend/odoo_editor.rst:218 -#: ../../content/developer/reference/frontend/owl_components.rst:179 -#: ../../content/developer/reference/frontend/owl_components.rst:242 -#: ../../content/developer/reference/frontend/owl_components.rst:310 -#: ../../content/developer/reference/frontend/owl_components.rst:330 -#: ../../content/developer/reference/frontend/owl_components.rst:349 -#: ../../content/developer/reference/frontend/owl_components.rst:365 -#: ../../content/developer/reference/frontend/owl_components.rst:428 -#: ../../content/developer/reference/frontend/owl_components.rst:476 -#: ../../content/developer/reference/frontend/owl_components.rst:520 -#: ../../content/developer/reference/frontend/owl_components.rst:704 +#: ../../content/developer/reference/frontend/owl_components.rst:172 +#: ../../content/developer/reference/frontend/owl_components.rst:235 +#: ../../content/developer/reference/frontend/owl_components.rst:303 +#: ../../content/developer/reference/frontend/owl_components.rst:323 +#: ../../content/developer/reference/frontend/owl_components.rst:342 +#: ../../content/developer/reference/frontend/owl_components.rst:358 +#: ../../content/developer/reference/frontend/owl_components.rst:421 +#: ../../content/developer/reference/frontend/owl_components.rst:469 +#: ../../content/developer/reference/frontend/owl_components.rst:516 +#: ../../content/developer/reference/frontend/owl_components.rst:700 #: ../../content/developer/reference/frontend/owl_components.rst:721 -#: ../../content/developer/reference/frontend/owl_components.rst:817 -#: ../../content/developer/reference/frontend/owl_components.rst:837 -#: ../../content/developer/reference/frontend/owl_components.rst:868 -#: ../../content/developer/reference/frontend/owl_components.rst:886 +#: ../../content/developer/reference/frontend/owl_components.rst:820 +#: ../../content/developer/reference/frontend/owl_components.rst:840 +#: ../../content/developer/reference/frontend/owl_components.rst:871 +#: ../../content/developer/reference/frontend/owl_components.rst:889 +#: ../../content/developer/reference/frontend/owl_components.rst:1049 +#: ../../content/developer/reference/frontend/owl_components.rst:1064 #: ../../content/developer/reference/frontend/patching_code.rst:17 #: ../../content/developer/reference/frontend/services.rst:247 #: ../../content/developer/reference/frontend/services.rst:439 @@ -2463,6 +1722,7 @@ msgid "Description" msgstr "" #: ../../content/developer/howtos/website_themes/building_blocks.rst:86 +#: ../../content/developer/reference/user_interface/view_architecture.rst:0 msgid "class" msgstr "" @@ -2802,6 +2062,7 @@ msgstr "" #: ../../content/developer/howtos/website_themes/building_blocks.rst:469 #: ../../content/developer/howtos/website_themes/building_blocks.rst:500 #: ../../content/developer/howtos/website_themes/layout.rst:71 +#: ../../content/developer/reference/user_interface/view_architecture.rst:0 #: ../../content/developer/reference/backend/data/res.country.state.csv:1 msgid "id" msgstr "" @@ -2819,7 +2080,9 @@ msgstr "" #: ../../content/developer/howtos/website_themes/pages.rst:203 #: ../../content/developer/howtos/website_themes/shapes.rst:134 #: ../../content/developer/howtos/website_themes/theming.rst:121 -#: ../../content/developer/tutorials/define_module_data.rst:176 +#: ../../content/developer/reference/user_interface/view_architecture.rst:0 +#: ../../content/developer/reference/user_interface/view_records.rst:0 +#: ../../content/developer/tutorials/define_module_data.rst:177 #: ../../content/developer/tutorials/getting_started/04_basicmodel.rst:189 #: ../../content/developer/tutorials/getting_started/04_basicmodel.rst:262 #: ../../content/developer/tutorials/getting_started/08_relations.rst:73 @@ -2941,8 +2204,8 @@ msgid "Create a task." msgstr "" #: ../../content/developer/howtos/website_themes/forms.rst:75 -#: ../../content/developer/reference/extract_api.rst:194 -#: ../../content/developer/reference/extract_api.rst:712 +#: ../../content/developer/reference/extract_api.rst:183 +#: ../../content/developer/reference/extract_api.rst:284 msgid "Success" msgstr "" @@ -3274,6 +2537,7 @@ msgid "The position defines where the code is placed inside the template. The po msgstr "" #: ../../content/developer/howtos/website_themes/layout.rst:153 +#: ../../content/developer/reference/user_interface/view_records.rst:0 msgid "replace" msgstr "" @@ -3282,6 +2546,7 @@ msgid "Replaces the targeted node with the XPath content." msgstr "" #: ../../content/developer/howtos/website_themes/layout.rst:155 +#: ../../content/developer/reference/user_interface/view_records.rst:0 msgid "inside" msgstr "" @@ -3290,6 +2555,7 @@ msgid "Adds the XPath content inside the targeted node." msgstr "" #: ../../content/developer/howtos/website_themes/layout.rst:157 +#: ../../content/developer/reference/user_interface/view_records.rst:0 msgid "before" msgstr "" @@ -3298,6 +2564,7 @@ msgid "Adds the XPath content before the targeted node." msgstr "" #: ../../content/developer/howtos/website_themes/layout.rst:159 +#: ../../content/developer/reference/user_interface/view_records.rst:0 msgid "after" msgstr "" @@ -3306,7 +2573,8 @@ msgid "Adds the XPath content after the targeted node." msgstr "" #: ../../content/developer/howtos/website_themes/layout.rst:161 -#: ../../content/developer/reference/frontend/qweb.rst:197 +#: ../../content/developer/reference/frontend/qweb.rst:196 +#: ../../content/developer/reference/user_interface/view_records.rst:0 msgid "attributes" msgstr "" @@ -3339,7 +2607,7 @@ msgid "You can find more information about XPath in this `cheat sheet `_" +msgid "`Bootstrap overridden SCSS `_" msgstr "" #: ../../content/developer/howtos/website_themes/theming.rst:493 @@ -5252,708 +4525,712 @@ msgstr "" msgid "Python framework" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:8 +#: ../../content/developer/reference/backend/actions.rst:5 msgid "Actions define the behavior of the system in response to user actions: login, action button, selection of an invoice, ..." msgstr "" -#: ../../content/developer/reference/backend/actions.rst:11 +#: ../../content/developer/reference/backend/actions.rst:8 msgid "Actions can be stored in the database or returned directly as dictionaries in e.g. button methods. All actions share two mandatory attributes:" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:15 +#: ../../content/developer/reference/backend/actions.rst:12 #: ../../content/developer/reference/backend/data.rst:135 -#: ../../content/developer/reference/backend/views.rst:1725 msgid "``type``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:15 +#: ../../content/developer/reference/backend/actions.rst:12 msgid "the category of the current action, determines which fields may be used and how the action is interpreted" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:19 -#: ../../content/developer/reference/backend/actions.rst:416 +#: ../../content/developer/reference/backend/actions.rst:16 +#: ../../content/developer/reference/backend/actions.rst:419 #: ../../content/developer/reference/backend/data.rst:221 -#: ../../content/developer/reference/backend/views.rst:840 -#: ../../content/developer/reference/backend/views.rst:1303 -#: ../../content/developer/reference/backend/views.rst:1727 -#: ../../content/developer/reference/backend/views.rst:1765 -#: ../../content/developer/reference/backend/views.rst:1853 -#: ../../content/developer/reference/backend/views.rst:2005 -#: ../../content/developer/reference/backend/views.rst:2174 -#: ../../content/developer/reference/backend/views.rst:2315 #: ../../content/developer/reference/external_api.rst:1104 #: ../../content/developer/reference/external_api.rst:1268 -#: ../../content/developer/reference/extract_api.rst:529 +#: ../../content/developer/reference/extract_api.rst:511 #: ../../content/developer/reference/frontend/services.rst:871 +#: ../../content/developer/reference/user_interface/view_architecture.rst:3535 +#: ../../content/developer/reference/user_interface/view_architecture.rst:4009 #: ../../content/developer/tutorials/web.rst:1320 msgid "``name``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:18 +#: ../../content/developer/reference/backend/actions.rst:15 msgid "short user-readable description of the action, may be displayed in the client's interface" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:21 +#: ../../content/developer/reference/backend/actions.rst:18 msgid "A client can get actions in 4 forms:" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:23 +#: ../../content/developer/reference/backend/actions.rst:20 msgid "``False``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:24 +#: ../../content/developer/reference/backend/actions.rst:21 msgid "if any action dialog is currently open, close it" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:26 +#: ../../content/developer/reference/backend/actions.rst:23 msgid "A string" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:26 +#: ../../content/developer/reference/backend/actions.rst:23 msgid "if a :ref:`client action ` matches, interpret as a client action's tag, otherwise treat as a number" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:29 +#: ../../content/developer/reference/backend/actions.rst:26 msgid "A number" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:29 +#: ../../content/developer/reference/backend/actions.rst:26 msgid "read the corresponding action record from the database, may be a database identifier or an :term:`external id`" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:32 +#: ../../content/developer/reference/backend/actions.rst:29 msgid "A dictionary" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:32 +#: ../../content/developer/reference/backend/actions.rst:29 msgid "treat as a client action descriptor and execute" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:37 +#: ../../content/developer/reference/backend/actions.rst:34 msgid "Bindings" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:39 +#: ../../content/developer/reference/backend/actions.rst:36 msgid "Aside from their two mandatory attributes, all actions also share *optional* attributes used to present an action in an arbitrary model's contextual menu:" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:45 +#: ../../content/developer/reference/backend/actions.rst:42 msgid "``binding_model_id``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:43 +#: ../../content/developer/reference/backend/actions.rst:40 msgid "specifies which model the action is bound to" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:45 +#: ../../content/developer/reference/backend/actions.rst:42 msgid "For Server Actions, use ``model_id``." msgstr "" -#: ../../content/developer/reference/backend/actions.rst:55 +#: ../../content/developer/reference/backend/actions.rst:52 msgid "``binding_type``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:48 +#: ../../content/developer/reference/backend/actions.rst:45 msgid "specifies the type of binding, which is mostly which contextual menu the action will appear under" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:52 +#: ../../content/developer/reference/backend/actions.rst:49 msgid "``action`` (default)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:52 +#: ../../content/developer/reference/backend/actions.rst:49 msgid "Specifies that the action will appear in the :menuselection:`Action` contextual menu of the bound model." msgstr "" -#: ../../content/developer/reference/backend/actions.rst:55 +#: ../../content/developer/reference/backend/actions.rst:52 msgid "``report``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:55 +#: ../../content/developer/reference/backend/actions.rst:52 msgid "Specifies that the action will appear in the :menuselection:`Print` contextual menu of the bound model." msgstr "" -#: ../../content/developer/reference/backend/actions.rst:60 +#: ../../content/developer/reference/backend/actions.rst:57 msgid "``binding_view_types``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:58 +#: ../../content/developer/reference/backend/actions.rst:55 msgid "a comma-separated list of view types for which the action appears in the contextual menu, mostly \"list\" and / or \"form\". Defaults to ``list,form`` (both list and form )" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:65 +#: ../../content/developer/reference/backend/actions.rst:62 msgid "Window Actions (``ir.actions.act_window``)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:67 -msgid "The most common action type, used to present visualisations of a model through :ref:`views `: a window action defines a set of view types (and possibly specific views) for a model (and possibly specific record of the model)." +#: ../../content/developer/reference/backend/actions.rst:64 +msgid "The most common action type, used to present visualisations of a model through :doc:`views <../user_interface/view_records>`: a window action defines a set of view types (and possibly specific views) for a model (and possibly specific record of the model)." msgstr "" -#: ../../content/developer/reference/backend/actions.rst:72 +#: ../../content/developer/reference/backend/actions.rst:69 msgid "Its fields are:" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:74 +#: ../../content/developer/reference/backend/actions.rst:71 #: ../../content/developer/tutorials/web.rst:1690 msgid "``res_model``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:75 +#: ../../content/developer/reference/backend/actions.rst:72 msgid "model to present views for" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:83 +#: ../../content/developer/reference/backend/actions.rst:80 #: ../../content/developer/tutorials/web.rst:1698 msgid "``views``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:77 +#: ../../content/developer/reference/backend/actions.rst:74 msgid "a list of ``(view_id, view_type)`` pairs. The second element of each pair is the category of the view (tree, form, graph, ...) and the first is an optional database id (or ``False``). If no id is provided, the client should fetch the default view of the specified type for the requested model (this is automatically done by :meth:`~odoo.models.Model.fields_view_get`). The first type of the list is the default view type and will be open by default when the action is executed. Each view type should be present at most once in the list" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:86 +#: ../../content/developer/reference/backend/actions.rst:83 #: ../../content/developer/tutorials/web.rst:1692 msgid "``res_id`` (optional)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:86 +#: ../../content/developer/reference/backend/actions.rst:83 msgid "if the default view is ``form``, specifies the record to load (otherwise a new record should be created)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:90 +#: ../../content/developer/reference/backend/actions.rst:87 msgid "``search_view_id`` (optional)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:89 +#: ../../content/developer/reference/backend/actions.rst:86 msgid "``(id, name)`` pair, ``id`` is the database identifier of a specific search view to load for the action. Defaults to fetching the default search view for the model" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:95 -#: ../../content/developer/reference/backend/actions.rst:393 +#: ../../content/developer/reference/backend/actions.rst:92 +#: ../../content/developer/reference/backend/actions.rst:396 msgid "``target`` (optional)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:93 +#: ../../content/developer/reference/backend/actions.rst:90 msgid "whether the views should be open in the main content area (``current``), in full screen mode (``fullscreen``) or in a dialog/popup (``new``). Use ``main`` instead of ``current`` to clear the breadcrumbs. Defaults to ``current``." msgstr "" -#: ../../content/developer/reference/backend/actions.rst:97 -#: ../../content/developer/reference/backend/actions.rst:222 +#: ../../content/developer/reference/backend/actions.rst:94 +#: ../../content/developer/reference/backend/actions.rst:225 msgid "``context`` (optional)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:98 +#: ../../content/developer/reference/backend/actions.rst:95 msgid "additional context data to pass to the views" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:99 -#: ../../content/developer/reference/backend/views.rst:2226 +#: ../../content/developer/reference/backend/actions.rst:96 msgid "``domain`` (optional)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:100 +#: ../../content/developer/reference/backend/actions.rst:97 msgid "filtering domain to implicitly add to all view search queries" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:103 +#: ../../content/developer/reference/backend/actions.rst:100 msgid "``limit`` (optional)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:102 +#: ../../content/developer/reference/backend/actions.rst:99 msgid "number of records to display in lists by default. Defaults to 80 in the web client" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:105 +#: ../../content/developer/reference/backend/actions.rst:102 msgid "For instance, to open customers (partner with the ``customer`` flag set) with list and form views::" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:115 +#: ../../content/developer/reference/backend/actions.rst:112 msgid "Or to open the form view of a specific product (obtained separately) in a new dialog::" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:126 +#: ../../content/developer/reference/backend/actions.rst:123 msgid "In-database window actions have a few different fields which should be ignored by clients, mostly to use in composing the ``views`` list:" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:130 +#: ../../content/developer/reference/backend/actions.rst:127 msgid "``view_mode`` (default= ``tree,form`` )" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:130 +#: ../../content/developer/reference/backend/actions.rst:127 msgid "comma-separated list of view types as a string (/!\\\\ No spaces /!\\\\). All of these types will be present in the generated ``views`` list (with at least a ``False`` view_id)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:148 +#: ../../content/developer/reference/backend/actions.rst:145 #: ../../content/developer/reference/external_api.rst:1115 msgid "``view_ids``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:133 +#: ../../content/developer/reference/backend/actions.rst:130 msgid "M2M\\ [#notquitem2m]_ to view objects, defines the initial content of ``views``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:136 +#: ../../content/developer/reference/backend/actions.rst:133 msgid "Act_window views can also be defined cleanly through ``ir.actions.act_window.view``." msgstr "" -#: ../../content/developer/reference/backend/actions.rst:138 +#: ../../content/developer/reference/backend/actions.rst:135 msgid "If you plan to allow multiple views for your model, prefer using ir.actions.act_window.view instead of the action ``view_ids``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:153 +#: ../../content/developer/reference/backend/actions.rst:150 msgid "``view_id``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:151 +#: ../../content/developer/reference/backend/actions.rst:148 msgid "specific view added to the ``views`` list in case its type is part of the ``view_mode`` list and not already filled by one of the views in ``view_ids``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:155 +#: ../../content/developer/reference/backend/actions.rst:152 msgid "These are mostly used when defining actions from :ref:`reference/data`:" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:166 +#: ../../content/developer/reference/backend/actions.rst:163 msgid "will use the \"my_specific_view\" view even if that's not the default view for the model." msgstr "" -#: ../../content/developer/reference/backend/actions.rst:169 +#: ../../content/developer/reference/backend/actions.rst:166 msgid "The server-side composition of the ``views`` sequence is the following:" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:171 +#: ../../content/developer/reference/backend/actions.rst:168 msgid "get each ``(id, type)`` from ``view_ids`` (ordered by ``sequence``)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:172 +#: ../../content/developer/reference/backend/actions.rst:169 msgid "if ``view_id`` is defined and its type isn't already filled, append its ``(id, type)``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:174 +#: ../../content/developer/reference/backend/actions.rst:171 msgid "for each unfilled type in ``view_mode``, append ``(False, type)``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:178 +#: ../../content/developer/reference/backend/actions.rst:175 msgid "``usage``?" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:179 +#: ../../content/developer/reference/backend/actions.rst:176 msgid "``groups_id``?" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:180 +#: ../../content/developer/reference/backend/actions.rst:177 msgid "``filter``?" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:182 +#: ../../content/developer/reference/backend/actions.rst:179 msgid "technically not an M2M: adds a sequence field and may be composed of just a view type, without a view id." msgstr "" -#: ../../content/developer/reference/backend/actions.rst:188 +#: ../../content/developer/reference/backend/actions.rst:185 msgid "URL Actions (``ir.actions.act_url``)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:190 +#: ../../content/developer/reference/backend/actions.rst:187 msgid "Allow opening a URL (website/web page) via an Odoo action. Can be customized via two fields:" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:193 +#: ../../content/developer/reference/backend/actions.rst:190 msgid "``url``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:194 +#: ../../content/developer/reference/backend/actions.rst:191 msgid "the address to open when activating the action" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:197 -#: ../../content/developer/tutorials/web.rst:1701 -msgid "``target``" +#: ../../content/developer/reference/backend/actions.rst:200 +msgid "``target`` (default= ``new``)" +msgstr "" + +#: ../../content/developer/reference/backend/actions.rst:193 +msgid "the available values are :" +msgstr "" + +#: ../../content/developer/reference/backend/actions.rst:195 +msgid "``new``: opens the URL in a new window/page" msgstr "" #: ../../content/developer/reference/backend/actions.rst:196 -msgid "opens the address in a new window/page if ``new``, replaces the current content with the page if ``self``. Defaults to ``new``" +msgid "``self``: opens the URL in the current window/page (replaces the actual content)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:207 -msgid "will replace the current content section by the Odoo home page." +#: ../../content/developer/reference/backend/actions.rst:197 +msgid "``download``: redirects to a download URL" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:212 +#: ../../content/developer/reference/backend/actions.rst:200 +msgid "example:" +msgstr "" + +#: ../../content/developer/reference/backend/actions.rst:210 +msgid "This will replace the current content section by the Odoo home page." +msgstr "" + +#: ../../content/developer/reference/backend/actions.rst:215 msgid "Server Actions (``ir.actions.server``)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:216 +#: ../../content/developer/reference/backend/actions.rst:219 msgid "Allow triggering complex server code from any valid action location. Only two fields are relevant to clients:" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:219 +#: ../../content/developer/reference/backend/actions.rst:222 #: ../../content/developer/reference/backend/data.rst:70 #: ../../content/developer/reference/backend/data.rst:155 #: ../../content/developer/reference/backend/data.rst:232 #: ../../content/developer/reference/backend/data.rst:242 -#: ../../content/developer/reference/backend/views.rst:675 -#: ../../content/developer/reference/extract_api.rst:171 -#: ../../content/developer/reference/extract_api.rst:290 -#: ../../content/developer/reference/extract_api.rst:697 +#: ../../content/developer/reference/extract_api.rst:168 +#: ../../content/developer/reference/extract_api.rst:264 msgid "``id``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:220 +#: ../../content/developer/reference/backend/actions.rst:223 msgid "the in-database identifier of the server action to run" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:222 +#: ../../content/developer/reference/backend/actions.rst:225 msgid "context data to use when running the server action" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:224 +#: ../../content/developer/reference/backend/actions.rst:227 msgid "In-database records are significantly richer and can perform a number of specific or generic actions based on their ``state``. Some fields (and corresponding behaviors) are shared between states:" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:229 -#: ../../content/developer/reference/backend/actions.rst:433 +#: ../../content/developer/reference/backend/actions.rst:232 +#: ../../content/developer/reference/backend/actions.rst:436 #: ../../content/developer/reference/external_api.rst:1266 msgid "``model_id``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:229 +#: ../../content/developer/reference/backend/actions.rst:232 msgid "Odoo model linked to the action." msgstr "" -#: ../../content/developer/reference/backend/actions.rst:231 +#: ../../content/developer/reference/backend/actions.rst:234 #: ../../content/developer/reference/external_api.rst:1109 #: ../../content/developer/reference/external_api.rst:1275 msgid "``state``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:233 +#: ../../content/developer/reference/backend/actions.rst:236 msgid "``code``: Executes python code given through the ``code`` argument." msgstr "" -#: ../../content/developer/reference/backend/actions.rst:235 +#: ../../content/developer/reference/backend/actions.rst:238 msgid "``object_create``: Creates a new record of model ``crud_model_id`` following ``fields_lines`` specifications." msgstr "" -#: ../../content/developer/reference/backend/actions.rst:237 +#: ../../content/developer/reference/backend/actions.rst:240 msgid "``object_write``: Updates the current record(s) following ``fields_lines`` specifications" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:239 +#: ../../content/developer/reference/backend/actions.rst:242 msgid "``multi``: Executes several actions given through the ``child_ids`` argument." msgstr "" -#: ../../content/developer/reference/backend/actions.rst:242 +#: ../../content/developer/reference/backend/actions.rst:245 msgid "State fields" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:244 +#: ../../content/developer/reference/backend/actions.rst:247 msgid "Depending on its state, the behavior is defined through different fields. The concerned state is given after each field." msgstr "" -#: ../../content/developer/reference/backend/actions.rst:289 +#: ../../content/developer/reference/backend/actions.rst:292 msgid "``code`` (code)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:248 +#: ../../content/developer/reference/backend/actions.rst:251 msgid "Specify a piece of Python code to execute when the action is called" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:263 +#: ../../content/developer/reference/backend/actions.rst:266 msgid "The code segment can define a variable called ``action``, which will be returned to the client as the next action to execute:" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:283 +#: ../../content/developer/reference/backend/actions.rst:286 msgid "will ask the client to open a form for the record if it fulfills some condition" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:291 +#: ../../content/developer/reference/backend/actions.rst:294 msgid "``crud_model_id`` (create)(required)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:292 +#: ../../content/developer/reference/backend/actions.rst:295 msgid "model in which to create a new record" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:295 +#: ../../content/developer/reference/backend/actions.rst:298 msgid "``link_field_id`` (create)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:294 +#: ../../content/developer/reference/backend/actions.rst:297 msgid "many2one to ``ir.model.fields``, specifies the current record's m2o field on which the newly created record should be set (models should match)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:309 +#: ../../content/developer/reference/backend/actions.rst:312 msgid "``fields_lines`` (create/write)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:298 +#: ../../content/developer/reference/backend/actions.rst:301 msgid "fields to override when creating or copying the record. :class:`~odoo.fields.One2many` with the fields:" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:302 +#: ../../content/developer/reference/backend/actions.rst:305 msgid "``col1``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:302 +#: ../../content/developer/reference/backend/actions.rst:305 msgid "``ir.model.fields`` to set in the concerned model (``crud_model_id`` for creates, ``model_id`` for updates)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:304 -#: ../../content/developer/reference/backend/orm.rst:928 -#: ../../content/developer/reference/backend/views.rst:1351 +#: ../../content/developer/reference/backend/actions.rst:307 +#: ../../content/developer/reference/backend/orm.rst:940 +#: ../../content/developer/reference/user_interface/view_architecture.rst:3583 msgid "``value``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:305 +#: ../../content/developer/reference/backend/actions.rst:308 msgid "value for the field, interpreted via ``type``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:309 +#: ../../content/developer/reference/backend/actions.rst:312 msgid "``type`` (value|reference|equation)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:307 +#: ../../content/developer/reference/backend/actions.rst:310 msgid "If ``value``, the ``value`` field is interpreted as a literal value (possibly converted), if ``equation`` the ``value`` field is interpreted as a Python expression and evaluated" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:314 +#: ../../content/developer/reference/backend/actions.rst:317 msgid "``child_ids`` (multi)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:312 +#: ../../content/developer/reference/backend/actions.rst:315 msgid "Specify the multiple sub-actions (``ir.actions.server``) to enact in state multi. If sub-actions themselves return actions, the last one will be returned to the client as the multi's own next action" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:319 +#: ../../content/developer/reference/backend/actions.rst:322 msgid "Evaluation context" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:321 +#: ../../content/developer/reference/backend/actions.rst:324 msgid "A number of keys are available in the evaluation context of or surrounding server actions:" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:324 +#: ../../content/developer/reference/backend/actions.rst:327 msgid "``model`` model object linked to the action via ``model_id``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:325 +#: ../../content/developer/reference/backend/actions.rst:328 msgid "``record``/``records`` record/recorset on which the action is triggered, can be void." msgstr "" -#: ../../content/developer/reference/backend/actions.rst:326 +#: ../../content/developer/reference/backend/actions.rst:329 msgid "``env`` Odoo Environment" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:327 +#: ../../content/developer/reference/backend/actions.rst:330 msgid "``datetime``, ``dateutil``, ``time``, ``timezone`` corresponding Python modules" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:328 +#: ../../content/developer/reference/backend/actions.rst:331 msgid "``log: log(message, level='info')`` logging function to record debug information in ir.logging table" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:329 +#: ../../content/developer/reference/backend/actions.rst:332 msgid "``Warning`` constructor for the ``Warning`` exception" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:334 +#: ../../content/developer/reference/backend/actions.rst:337 msgid "Report Actions (``ir.actions.report``)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:336 +#: ../../content/developer/reference/backend/actions.rst:339 msgid "Triggers the printing of a report." msgstr "" -#: ../../content/developer/reference/backend/actions.rst:338 +#: ../../content/developer/reference/backend/actions.rst:341 msgid "If you define your report through a `` instead of a `` tag and want the action to show up in the Print menu of the model's views, you will also need to specify ``binding_model_id`` from :ref:`reference/bindings`. It's not necessary to set ``binding_type`` to ``report``, since ``ir.actions.report`` will implicitly default to that." msgstr "" -#: ../../content/developer/reference/backend/actions.rst:347 +#: ../../content/developer/reference/backend/actions.rst:350 #: ../../content/developer/reference/backend/reports.rst:196 -#: ../../content/developer/reference/backend/views.rst:570 -#: ../../content/developer/reference/backend/views.rst:672 -#: ../../content/developer/reference/backend/views.rst:1153 -#: ../../content/developer/reference/backend/views.rst:2048 -#: ../../content/developer/reference/backend/views.rst:2376 +#: ../../content/developer/reference/user_interface/view_architecture.rst:2931 +#: ../../content/developer/reference/user_interface/view_architecture.rst:3049 +#: ../../content/developer/reference/user_interface/view_architecture.rst:3403 msgid "``name`` (mandatory)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:346 +#: ../../content/developer/reference/backend/actions.rst:349 msgid "used as the file name if ``print_report_name`` is not specified. Otherwise, only useful as a mnemonic/description of the report when looking for one in a list of some sort" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:349 +#: ../../content/developer/reference/backend/actions.rst:352 msgid "``model`` (mandatory)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:350 +#: ../../content/developer/reference/backend/actions.rst:353 msgid "the model your report will be about" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:351 +#: ../../content/developer/reference/backend/actions.rst:354 msgid "``report_type`` (default=qweb-pdf)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:352 +#: ../../content/developer/reference/backend/actions.rst:355 msgid "either ``qweb-pdf`` for PDF reports or ``qweb-html`` for HTML" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:353 +#: ../../content/developer/reference/backend/actions.rst:356 msgid "``report_name`` (mandatory)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:354 +#: ../../content/developer/reference/backend/actions.rst:357 msgid "the name (:term:`external id`) of the qweb template used to render the report" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:355 +#: ../../content/developer/reference/backend/actions.rst:358 msgid "``print_report_name``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:356 +#: ../../content/developer/reference/backend/actions.rst:359 msgid "python expression defining the name of the report." msgstr "" -#: ../../content/developer/reference/backend/actions.rst:358 +#: ../../content/developer/reference/backend/actions.rst:361 msgid "``groups_id``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:358 +#: ../../content/developer/reference/backend/actions.rst:361 msgid ":class:`~odoo.fields.Many2many` field to the groups allowed to view/use the current report" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:360 +#: ../../content/developer/reference/backend/actions.rst:363 +#: ../../content/developer/reference/user_interface/view_architecture.rst:2270 msgid "``multi``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:361 +#: ../../content/developer/reference/backend/actions.rst:364 msgid "if set to ``True``, the action will not be displayed on a form view." msgstr "" -#: ../../content/developer/reference/backend/actions.rst:363 +#: ../../content/developer/reference/backend/actions.rst:366 msgid "``paperformat_id``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:363 +#: ../../content/developer/reference/backend/actions.rst:366 msgid ":class:`~odoo.fields.Many2one` field to the paper format you wish to use for this report (if not specified, the company format will be used)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:370 +#: ../../content/developer/reference/backend/actions.rst:373 msgid "``attachment_use``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:366 +#: ../../content/developer/reference/backend/actions.rst:369 msgid "if set to ``True``, the report is only generated once the first time it is requested, and re-printed from the stored report afterwards instead of being re-generated every time." msgstr "" -#: ../../content/developer/reference/backend/actions.rst:370 +#: ../../content/developer/reference/backend/actions.rst:373 msgid "Can be used for reports which must only be generated once (e.g. for legal reasons)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:374 +#: ../../content/developer/reference/backend/actions.rst:377 msgid "``attachment``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:373 +#: ../../content/developer/reference/backend/actions.rst:376 msgid "python expression that defines the name of the report; the record is accessible as the variable ``object``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:379 +#: ../../content/developer/reference/backend/actions.rst:382 msgid "Client Actions (``ir.actions.client``)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:381 +#: ../../content/developer/reference/backend/actions.rst:384 msgid "Triggers an action implemented entirely in the client." msgstr "" -#: ../../content/developer/reference/backend/actions.rst:384 +#: ../../content/developer/reference/backend/actions.rst:387 msgid "``tag``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:384 +#: ../../content/developer/reference/backend/actions.rst:387 msgid "the client-side identifier of the action, an arbitrary string which the client should know how to react to" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:387 +#: ../../content/developer/reference/backend/actions.rst:390 msgid "``params`` (optional)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:387 +#: ../../content/developer/reference/backend/actions.rst:390 msgid "a Python dictionary of additional data to send to the client, alongside the client action tag" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:390 +#: ../../content/developer/reference/backend/actions.rst:393 msgid "whether the client action should be open in the main content area (``current``), in full screen mode (``fullscreen``) or in a dialog/popup (``new``). Use ``main`` instead of ``current`` to clear the breadcrumbs. Defaults to ``current``." msgstr "" -#: ../../content/developer/reference/backend/actions.rst:402 +#: ../../content/developer/reference/backend/actions.rst:405 msgid "tells the client to start the Point of Sale interface, the server has no idea how the POS interface works." msgstr "" -#: ../../content/developer/reference/backend/actions.rst:406 +#: ../../content/developer/reference/backend/actions.rst:409 msgid ":ref:`Tutorial: Client Actions `" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:411 +#: ../../content/developer/reference/backend/actions.rst:414 msgid "Automated Actions (``ir.cron``)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:413 +#: ../../content/developer/reference/backend/actions.rst:416 msgid "Actions triggered automatically on a predefined frequency." msgstr "" -#: ../../content/developer/reference/backend/actions.rst:416 +#: ../../content/developer/reference/backend/actions.rst:419 msgid "Name of the automated action (Mainly used in log display)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:419 +#: ../../content/developer/reference/backend/actions.rst:422 msgid "``interval_number``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:419 +#: ../../content/developer/reference/backend/actions.rst:422 msgid "Number of *interval_type* uom between two executions of the action" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:422 +#: ../../content/developer/reference/backend/actions.rst:425 msgid "``interval_type``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:422 +#: ../../content/developer/reference/backend/actions.rst:425 msgid "Unit of measure of frequency interval (``minutes``, ``hours``, ``days``, ``weeks``, ``months``)" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:426 +#: ../../content/developer/reference/backend/actions.rst:429 msgid "``numbercall``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:425 +#: ../../content/developer/reference/backend/actions.rst:428 msgid "Number of times this action has to be run. If the action is expected to run indefinitely, set to ``-1``." msgstr "" -#: ../../content/developer/reference/backend/actions.rst:430 +#: ../../content/developer/reference/backend/actions.rst:433 msgid "``doall``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:429 +#: ../../content/developer/reference/backend/actions.rst:432 msgid "Boolean precising whether the missed actions have to be executed in case of server restarts." msgstr "" -#: ../../content/developer/reference/backend/actions.rst:433 +#: ../../content/developer/reference/backend/actions.rst:436 msgid "Model on which this action will be called" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:441 +#: ../../content/developer/reference/backend/actions.rst:444 msgid "``code``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:436 +#: ../../content/developer/reference/backend/actions.rst:439 msgid "Code content of the action. Can be a simple call to the model's method :" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:443 +#: ../../content/developer/reference/backend/actions.rst:446 msgid "``nextcall``" msgstr "" -#: ../../content/developer/reference/backend/actions.rst:444 +#: ../../content/developer/reference/backend/actions.rst:447 msgid "Next planned execution date of this action (date/time format)" msgstr "" @@ -5986,8 +5263,8 @@ msgid "Core operations" msgstr "" #: ../../content/developer/reference/backend/data.rst:58 -#: ../../content/developer/reference/backend/views.rst:418 -#: ../../content/developer/reference/backend/views.rst:1568 +#: ../../content/developer/reference/user_interface/view_architecture.rst:2733 +#: ../../content/developer/reference/user_interface/view_architecture.rst:3274 msgid "``record``" msgstr "" @@ -6017,15 +5294,10 @@ msgid "for record modification, the record to modify" msgstr "" #: ../../content/developer/reference/backend/data.rst:72 -#: ../../content/developer/reference/backend/views.rst:719 -#: ../../content/developer/reference/backend/views.rst:1571 -#: ../../content/developer/reference/backend/views.rst:1754 -#: ../../content/developer/reference/backend/views.rst:1920 -#: ../../content/developer/reference/backend/views.rst:2132 -#: ../../content/developer/reference/backend/views.rst:2204 -#: ../../content/developer/reference/backend/views.rst:2311 #: ../../content/developer/reference/frontend/services.rst:853 -#: ../../content/developer/tutorials/backend.rst:935 +#: ../../content/developer/reference/user_interface/view_architecture.rst:2736 +#: ../../content/developer/reference/user_interface/view_architecture.rst:2826 +#: ../../content/developer/tutorials/backend.rst:936 #: ../../content/developer/tutorials/web.rst:1704 msgid "``context``" msgstr "" @@ -6047,11 +5319,7 @@ msgid "Requires an :term:`external id`, defaults to ``True``." msgstr "" #: ../../content/developer/reference/backend/data.rst:80 -#: ../../content/developer/reference/backend/views.rst:398 -#: ../../content/developer/reference/backend/views.rst:748 -#: ../../content/developer/reference/backend/views.rst:1521 -#: ../../content/developer/reference/backend/views.rst:1841 -#: ../../content/developer/reference/backend/views.rst:2211 +#: ../../content/developer/reference/user_interface/view_architecture.rst:3254 msgid "``field``" msgstr "" @@ -6073,7 +5341,7 @@ msgstr "" #: ../../content/developer/reference/backend/data.rst:98 #: ../../content/developer/reference/backend/data.rst:159 -#: ../../content/developer/tutorials/define_module_data.rst:267 +#: ../../content/developer/tutorials/define_module_data.rst:268 msgid "``search``" msgstr "" @@ -6086,7 +5354,7 @@ msgid "Will evaluate the domain, search the field's model using it and set the s msgstr "" #: ../../content/developer/reference/backend/data.rst:104 -#: ../../content/developer/tutorials/define_module_data.rst:218 +#: ../../content/developer/tutorials/define_module_data.rst:219 msgid "``ref``" msgstr "" @@ -6163,7 +5431,7 @@ msgid "should contain any number of ``value`` elements with the same properties msgstr "" #: ../../content/developer/reference/backend/data.rst:145 -#: ../../content/developer/tutorials/define_module_data.rst:248 +#: ../../content/developer/tutorials/define_module_data.rst:249 msgid "``eval``" msgstr "" @@ -6176,7 +5444,7 @@ msgid "The evaluation context contains various modules (``time``, ``datetime``, msgstr "" #: ../../content/developer/reference/backend/data.rst:148 -#: ../../content/developer/reference/backend/views.rst:1616 +#: ../../content/developer/reference/user_interface/view_architecture.rst:2781 msgid "``delete``" msgstr "" @@ -6201,7 +5469,7 @@ msgid "``id`` and ``search`` are exclusive" msgstr "" #: ../../content/developer/reference/backend/data.rst:164 -#: ../../content/developer/tutorials/define_module_data.rst:286 +#: ../../content/developer/tutorials/define_module_data.rst:287 msgid "``function``" msgstr "" @@ -6251,13 +5519,8 @@ msgstr "" #: ../../content/developer/reference/backend/data.rst:226 #: ../../content/developer/reference/backend/data.rst:250 -#: ../../content/developer/reference/backend/views.rst:704 -#: ../../content/developer/reference/backend/views.rst:1729 -#: ../../content/developer/reference/backend/views.rst:1774 -#: ../../content/developer/reference/backend/views.rst:2206 -#: ../../content/developer/reference/backend/views.rst:2321 -#: ../../content/developer/reference/backend/views.rst:2388 #: ../../content/developer/reference/external_api.rst:1280 +#: ../../content/developer/reference/user_interface/view_architecture.rst:2273 msgid "``groups``" msgstr "" @@ -6266,7 +5529,8 @@ msgid "A ``groups`` attribute is interpreted as a comma-separated sequence of :t msgstr "" #: ../../content/developer/reference/backend/data.rst:229 -#: ../../content/developer/reference/backend/views.rst:1725 +#: ../../content/developer/reference/user_interface/view_architecture.rst:453 +#: ../../content/developer/reference/user_interface/view_architecture.rst:1631 msgid "``action``" msgstr "" @@ -6283,7 +5547,7 @@ msgid "``template``" msgstr "" #: ../../content/developer/reference/backend/data.rst:239 -msgid "Creates a :ref:`QWeb view ` requiring only the ``arch`` section of the view, and allowing a few *optional* attributes:" +msgid "Creates a :ref:`QWeb view ` requiring only the ``arch`` section of the view, and allowing a few *optional* attributes:" msgstr "" #: ../../content/developer/reference/backend/data.rst:243 @@ -6311,7 +5575,7 @@ msgid "comma-separated list of group :term:`external identifiers`" msgstr "" #: ../../content/developer/reference/backend/data.rst:253 -#: ../../content/developer/reference/extract_api.rst:380 +#: ../../content/developer/reference/extract_api.rst:364 msgid "``page``" msgstr "" @@ -6320,7 +5584,6 @@ msgid "if set to ``\"True\"``, the template is a website page (linkable to, dele msgstr "" #: ../../content/developer/reference/backend/data.rst:258 -#: ../../content/developer/reference/backend/views.rst:1817 msgid "``optional``" msgstr "" @@ -6602,13 +5865,12 @@ msgstr "" #: ../../content/developer/reference/backend/http.rst:52 #: ../../content/developer/reference/backend/orm.rst:54 -#: ../../content/developer/reference/backend/views.rst:1968 #: ../../content/developer/reference/frontend/hooks.rst:87 #: ../../content/developer/reference/frontend/hooks.rst:122 #: ../../content/developer/reference/frontend/hooks.rst:170 #: ../../content/developer/reference/frontend/hooks.rst:213 #: ../../content/developer/reference/frontend/hooks.rst:341 -#: ../../content/developer/reference/frontend/qweb.rst:967 +#: ../../content/developer/reference/frontend/qweb.rst:914 #: ../../content/developer/reference/frontend/registries.rst:170 #: ../../content/developer/reference/frontend/services.rst:156 #: ../../content/developer/reference/frontend/services.rst:211 @@ -6619,6 +5881,7 @@ msgstr "" #: ../../content/developer/reference/frontend/services.rst:727 #: ../../content/developer/reference/frontend/services.rst:776 #: ../../content/developer/reference/frontend/services.rst:844 +#: ../../content/developer/reference/user_interface/view_architecture.rst:3974 msgid "API" msgstr "" @@ -6627,9 +5890,8 @@ msgid "Routing" msgstr "" #: ../../content/developer/reference/backend/http.rst:64 -#: ../../content/developer/reference/extract_api.rst:78 -#: ../../content/developer/reference/extract_api.rst:244 -#: ../../content/developer/reference/extract_api.rst:563 +#: ../../content/developer/reference/extract_api.rst:74 +#: ../../content/developer/reference/extract_api.rst:220 msgid "Request" msgstr "" @@ -6638,9 +5900,8 @@ msgid "The request object is automatically set on :data:`odoo.http.request` at t msgstr "" #: ../../content/developer/reference/backend/http.rst:81 -#: ../../content/developer/reference/extract_api.rst:165 -#: ../../content/developer/reference/extract_api.rst:280 -#: ../../content/developer/reference/extract_api.rst:691 +#: ../../content/developer/reference/extract_api.rst:162 +#: ../../content/developer/reference/extract_api.rst:254 msgid "Response" msgstr "" @@ -6653,6 +5914,7 @@ msgid "Odoo implements some useful classes and mixins that make it easy for you msgstr "" #: ../../content/developer/reference/backend/mixins.rst:15 +#: ../../content/developer/reference/user_interface/view_architecture.rst:530 msgid "Messaging features" msgstr "" @@ -6692,8 +5954,14 @@ msgstr "" msgid "Post a new message in an existing thread, returning the new mail.message ID." msgstr "" +#: ../../content/developer/reference/backend/mixins.rst:0 +#: ../../content/developer/reference/frontend/framework_overview.rst:0 +#: ../../content/developer/reference/frontend/qweb.rst:0 +msgid "Parameters" +msgstr "" + #: ../../content/developer/reference/backend/mixins.rst:84 -msgid "body of the message, usually raw HTML that will be sanitized" +msgid "body of the message. Will be escaped if `str`. Use a :class:`~markupsafe.Markup` object for HTML content." msgstr "" #: ../../content/developer/reference/backend/mixins.rst:86 @@ -6709,10 +5977,27 @@ msgid "list of attachment tuples in the form ``(name,content)``, where content i msgstr "" #: ../../content/developer/reference/backend/mixins.rst:91 +msgid "indicates whether `body` should be treated as HTML, even if `str`." +msgstr "" + +#: ../../content/developer/reference/backend/mixins.rst:92 msgid "extra keyword arguments will be used as default column values for the new mail.message record" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:93 +#: ../../content/developer/reference/backend/mixins.rst:0 +#: ../../content/developer/reference/frontend/assets.rst:0 +#: ../../content/developer/reference/frontend/framework_overview.rst:0 +#: ../../content/developer/reference/frontend/hooks.rst:0 +#: ../../content/developer/reference/frontend/javascript_reference.rst:0 +#: ../../content/developer/reference/frontend/mobile.rst:0 +#: ../../content/developer/reference/frontend/patching_code.rst:0 +#: ../../content/developer/reference/frontend/qweb.rst:0 +#: ../../content/developer/reference/frontend/registries.rst:0 +#: ../../content/developer/reference/frontend/services.rst:0 +msgid "Returns" +msgstr "" + +#: ../../content/developer/reference/backend/mixins.rst:94 msgid "ID of newly created mail.message" msgstr "" @@ -6720,884 +6005,884 @@ msgstr "" msgid "Return type" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:98 +#: ../../content/developer/reference/backend/mixins.rst:99 msgid "Helper method to send a mail / post a message using a view_id to render using the ir.qweb engine. This method is stand alone, because there is nothing in template and composer that allows to handle views in batch. This method will probably disappear when templates handle ir ui views." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:104 +#: ../../content/developer/reference/backend/mixins.rst:105 msgid "external id or record of the view that should be sent" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:109 +#: ../../content/developer/reference/backend/mixins.rst:110 msgid "Helper method to send a mail with a template" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:111 +#: ../../content/developer/reference/backend/mixins.rst:112 msgid "the id of the template to render to create the body of the message" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:112 +#: ../../content/developer/reference/backend/mixins.rst:113 msgid "parameter to create a mail.compose.message wizard (which inherit from mail.message)" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:115 +#: ../../content/developer/reference/backend/mixins.rst:116 msgid "Receiving messages" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:116 +#: ../../content/developer/reference/backend/mixins.rst:117 msgid "These methods are called when a new e-mail is processed by the mail gateway. These e-mails can either be new thread (if they arrive via an :ref:`alias `) or simply replies from an existing thread. Overriding them allows you to set values on the thread's record depending on some values from the email itself (i.e. update a date or an e-mail address, add CC's addresses as followers, etc.)." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:124 +#: ../../content/developer/reference/backend/mixins.rst:125 msgid "Called by ``message_process`` when a new message is received for a given thread model, if the message did not belong to an existing thread." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:128 +#: ../../content/developer/reference/backend/mixins.rst:129 msgid "The default behavior is to create a new record of the corresponding model (based on some very basic info extracted from the message). Additional behavior may be implemented by overriding this method." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:132 +#: ../../content/developer/reference/backend/mixins.rst:133 msgid "a map containing the email details and attachments. See ``message_process`` and ``mail.message.parse`` for details" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:134 +#: ../../content/developer/reference/backend/mixins.rst:135 msgid "optional dictionary of additional field values to pass to create() when creating the new thread record; be careful, these values may override any other values coming from the message" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:139 +#: ../../content/developer/reference/backend/mixins.rst:140 msgid "the id of the newly created thread object" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:143 +#: ../../content/developer/reference/backend/mixins.rst:144 msgid "Called by ``message_process`` when a new message is received for an existing thread. The default behavior is to update the record with ``update_vals`` taken from the incoming email." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:147 +#: ../../content/developer/reference/backend/mixins.rst:148 msgid "Additional behavior may be implemented by overriding this method." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:150 +#: ../../content/developer/reference/backend/mixins.rst:151 msgid "a map containing the email details and attachments; see ``message_process`` and ``mail.message.parse()`` for details." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:152 +#: ../../content/developer/reference/backend/mixins.rst:153 msgid "a dict containing values to update records given their ids; if the dict is None or is void, no write operation is performed." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:154 -#: ../../content/developer/reference/backend/mixins.rst:182 -#: ../../content/developer/reference/backend/mixins.rst:192 -#: ../../content/developer/tutorials/define_module_data.rst:186 +#: ../../content/developer/reference/backend/mixins.rst:155 +#: ../../content/developer/reference/backend/mixins.rst:183 +#: ../../content/developer/reference/backend/mixins.rst:193 #: ../../content/developer/tutorials/define_module_data.rst:187 +#: ../../content/developer/tutorials/define_module_data.rst:188 msgid "True" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:157 +#: ../../content/developer/reference/backend/mixins.rst:158 msgid "Followers management" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:160 +#: ../../content/developer/reference/backend/mixins.rst:161 msgid "Add partners to the records followers." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:162 -#: ../../content/developer/reference/backend/mixins.rst:178 +#: ../../content/developer/reference/backend/mixins.rst:163 +#: ../../content/developer/reference/backend/mixins.rst:179 msgid "IDs of the partners that will be subscribed to the record" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:164 -#: ../../content/developer/reference/backend/mixins.rst:180 +#: ../../content/developer/reference/backend/mixins.rst:165 +#: ../../content/developer/reference/backend/mixins.rst:181 msgid "IDs of the channels that will be subscribed to the record" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:166 +#: ../../content/developer/reference/backend/mixins.rst:167 msgid "IDs of the subtypes that the channels/partners will be subscribed to (defaults to the default subtypes if ``None``)" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:168 +#: ../../content/developer/reference/backend/mixins.rst:169 msgid "if True, delete existing followers before creating new one using the subtypes given in the parameters" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:170 +#: ../../content/developer/reference/backend/mixins.rst:171 msgid "Success/Failure" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:176 +#: ../../content/developer/reference/backend/mixins.rst:177 msgid "Remove partners from the record's followers." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:188 +#: ../../content/developer/reference/backend/mixins.rst:189 msgid "Wrapper on message_subscribe, using users." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:190 +#: ../../content/developer/reference/backend/mixins.rst:191 msgid "IDs of the users that will be unsubscribed to the record; if None, unsubscribe the current user instead." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:196 +#: ../../content/developer/reference/backend/mixins.rst:197 msgid "Logging changes" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:198 +#: ../../content/developer/reference/backend/mixins.rst:199 msgid "The ``mail`` module adds a powerful tracking system on fields, allowing you to log changes to specific fields in the record's chatter. To add tracking to a field, simple set the tracking attribute to True." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:204 +#: ../../content/developer/reference/backend/mixins.rst:205 msgid "Let's track changes on the name and responsible of our business trips:" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:218 +#: ../../content/developer/reference/backend/mixins.rst:219 msgid "From now on, every change to a trip's name or responsible will log a note on the record. The ``name`` field will be displayed in the notification as well to give more context about the notification (even if the name did not change)." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:224 +#: ../../content/developer/reference/backend/mixins.rst:225 msgid "Subtypes" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:226 +#: ../../content/developer/reference/backend/mixins.rst:227 msgid "Subtypes give you more granular control over messages. Subtypes act as a classification system for notifications, allowing subscribers to a document to customize the subtype of notifications they wish to receive." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:230 +#: ../../content/developer/reference/backend/mixins.rst:231 msgid "Subtypes are created as data in your module; the model has the following fields:" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:233 +#: ../../content/developer/reference/backend/mixins.rst:234 msgid "``name`` (mandatory) - :class:`~odoo.fields.Char`" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:233 +#: ../../content/developer/reference/backend/mixins.rst:234 msgid "name of the subtype, will be displayed in the notification customization popup" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:236 +#: ../../content/developer/reference/backend/mixins.rst:237 msgid "``description`` - :class:`~odoo.fields.Char`" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:236 +#: ../../content/developer/reference/backend/mixins.rst:237 msgid "description that will be added in the message posted for this subtype. If void, the name will be added instead" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:239 +#: ../../content/developer/reference/backend/mixins.rst:240 msgid "``internal`` - :class:`~odoo.fields.Boolean`" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:239 +#: ../../content/developer/reference/backend/mixins.rst:240 msgid "messages with internal subtypes will be visible only by employees, aka members of the ``base.group_user`` group" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:244 +#: ../../content/developer/reference/backend/mixins.rst:245 msgid "``parent_id`` - :class:`~odoo.fields.Many2one`" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:242 +#: ../../content/developer/reference/backend/mixins.rst:243 msgid "link subtypes for automatic subscription; for example project subtypes are linked to task subtypes through this link. When someone is subscribed to a project, he will be subscribed to all tasks of this project with subtypes found using the parent subtype" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:247 +#: ../../content/developer/reference/backend/mixins.rst:248 msgid "``relation_field`` - :class:`~odoo.fields.Char`" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:247 +#: ../../content/developer/reference/backend/mixins.rst:248 msgid "as an example, when linking project and tasks subtypes, the relation field is the project_id field of tasks" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:249 +#: ../../content/developer/reference/backend/mixins.rst:250 msgid "``res_model`` - :class:`~odoo.fields.Char`" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:250 +#: ../../content/developer/reference/backend/mixins.rst:251 msgid "model the subtype applies to; if False, this subtype applies to all models" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:251 +#: ../../content/developer/reference/backend/mixins.rst:252 msgid "``default`` - :class:`~odoo.fields.Boolean`" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:252 +#: ../../content/developer/reference/backend/mixins.rst:253 msgid "whether the subtype is activated by default when subscribing" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:253 +#: ../../content/developer/reference/backend/mixins.rst:254 msgid "``sequence`` - :class:`~odoo.fields.Integer`" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:254 +#: ../../content/developer/reference/backend/mixins.rst:255 msgid "used to order subtypes in the notification customization popup" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:257 +#: ../../content/developer/reference/backend/mixins.rst:258 msgid "``hidden`` - :class:`~odoo.fields.Boolean`" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:256 +#: ../../content/developer/reference/backend/mixins.rst:257 msgid "whether the subtype is hidden in the notification customization popup" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:259 +#: ../../content/developer/reference/backend/mixins.rst:260 msgid "Interfacing subtypes with field tracking allows to subscribe to different kind of notifications depending on what might interest users. To do this, you can override the ``_track_subtype()`` function:" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:265 -#: ../../content/developer/reference/backend/mixins.rst:346 +#: ../../content/developer/reference/backend/mixins.rst:266 +#: ../../content/developer/reference/backend/mixins.rst:347 msgid "Give the subtype triggered by the changes on the record according to values that have been updated." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:268 +#: ../../content/developer/reference/backend/mixins.rst:269 msgid "the original values of the record; only modified fields are present in the dict" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:270 -#: ../../content/developer/reference/backend/mixins.rst:388 +#: ../../content/developer/reference/backend/mixins.rst:271 +#: ../../content/developer/reference/backend/mixins.rst:389 msgid "a subtype's full external id or False if no subtype is triggered" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:275 +#: ../../content/developer/reference/backend/mixins.rst:276 msgid "Let's add a ``state`` field on our example class and trigger a notification with a specific subtype when this field change values." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:278 +#: ../../content/developer/reference/backend/mixins.rst:279 msgid "First, let's define our subtype:" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:290 +#: ../../content/developer/reference/backend/mixins.rst:291 msgid "Then, we need to override the ``track_subtype()`` function. This function is called by the tracking system to know which subtype should be used depending on the change currently being applied. In our case, we want to use our shiny new subtype when the ``state`` field changes from *draft* to *confirmed*:" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:320 +#: ../../content/developer/reference/backend/mixins.rst:321 msgid "Customizing notifications" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:322 +#: ../../content/developer/reference/backend/mixins.rst:323 msgid "When sending notifications to followers, it can be quite useful to add buttons in the template to allow quick actions directly from the e-mail. Even a simple button to link directly to the record's form view can be useful; however in most cases you don't want to display these buttons to portal users." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:327 +#: ../../content/developer/reference/backend/mixins.rst:328 msgid "The notification system allows customizing notification templates in the following ways:" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:330 +#: ../../content/developer/reference/backend/mixins.rst:331 msgid "Display *Access Buttons*: these buttons are visible at the top of the notification e-mail and allow the recipient to directly access the form view of the record" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:332 +#: ../../content/developer/reference/backend/mixins.rst:333 msgid "Display *Follow Buttons*: these buttons allow the recipient to directly quickly subscribe from the record" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:334 +#: ../../content/developer/reference/backend/mixins.rst:335 msgid "Display *Unfollow Buttons*: these buttons allow the recipient to directly quickly unsubscribe from the record" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:336 +#: ../../content/developer/reference/backend/mixins.rst:337 msgid "Display *Custom Action Buttons*: these buttons are calls to specific routes and allow you to make some useful actions directly available from the e-mail (i.e. converting a lead to an opportunity, validating an expense sheet for an Expense Manager, etc.)" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:341 +#: ../../content/developer/reference/backend/mixins.rst:342 msgid "These buttons settings can be applied to different groups that you can define yourself by overriding the function ``_notify_get_groups``." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:349 +#: ../../content/developer/reference/backend/mixins.rst:350 msgid "``mail.message`` record currently being sent" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:350 +#: ../../content/developer/reference/backend/mixins.rst:351 msgid "list of tuple of the form (group_name, group_func,group_data) where: group_name is an identifier used only to be able to override and manipulate groups. Default groups are ``user`` (recipients linked to an employee user), ``portal`` (recipients linked to a portal user) and ``customer`` (recipients not linked to any user). An example of override use would be to add a group linked to a res.groups like Hr Officers to set specific action buttons to them. group_func is a function pointer taking a partner record as parameter. This method will be applied on recipients to know whether they belong to a given group or not. Only first matching group is kept. Evaluation order is the list order. group_data is a dict containing parameters for the notification email with the following possible keys - values: - has_button_access whether to display Access in email. True by default for new groups, False for portal / customer. - button_access dict with url and title of the button - has_button_follow whether to display Follow in email (if recipient is not currently following the thread). True by default for new groups, False for portal / customer. - button_follow dict with url and title of the button - has_button_unfollow whether to display Unfollow in email (if recipient is currently following the thread). True by default for new groups, False for portal / customer. - button_unfollow dict with url and title of the button - actions list of action buttons to display in the notification email. Each action is a dict containing url and title of the button." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:350 +#: ../../content/developer/reference/backend/mixins.rst:351 msgid "list of tuple of the form (group_name, group_func,group_data) where:" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:357 +#: ../../content/developer/reference/backend/mixins.rst:358 msgid "group_name" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:353 +#: ../../content/developer/reference/backend/mixins.rst:354 msgid "is an identifier used only to be able to override and manipulate groups. Default groups are ``user`` (recipients linked to an employee user), ``portal`` (recipients linked to a portal user) and ``customer`` (recipients not linked to any user). An example of override use would be to add a group linked to a res.groups like Hr Officers to set specific action buttons to them." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:362 +#: ../../content/developer/reference/backend/mixins.rst:363 msgid "group_func" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:360 +#: ../../content/developer/reference/backend/mixins.rst:361 msgid "is a function pointer taking a partner record as parameter. This method will be applied on recipients to know whether they belong to a given group or not. Only first matching group is kept. Evaluation order is the list order." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:386 +#: ../../content/developer/reference/backend/mixins.rst:387 msgid "group_data" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:365 +#: ../../content/developer/reference/backend/mixins.rst:366 msgid "is a dict containing parameters for the notification email with the following possible keys - values:" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:369 +#: ../../content/developer/reference/backend/mixins.rst:370 msgid "has_button_access" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:369 +#: ../../content/developer/reference/backend/mixins.rst:370 msgid "whether to display Access in email. True by default for new groups, False for portal / customer." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:371 +#: ../../content/developer/reference/backend/mixins.rst:372 msgid "button_access" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:372 -#: ../../content/developer/reference/backend/mixins.rst:378 -#: ../../content/developer/reference/backend/mixins.rst:383 +#: ../../content/developer/reference/backend/mixins.rst:373 +#: ../../content/developer/reference/backend/mixins.rst:379 +#: ../../content/developer/reference/backend/mixins.rst:384 msgid "dict with url and title of the button" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:375 +#: ../../content/developer/reference/backend/mixins.rst:376 msgid "has_button_follow" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:374 +#: ../../content/developer/reference/backend/mixins.rst:375 msgid "whether to display Follow in email (if recipient is not currently following the thread). True by default for new groups, False for portal / customer." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:377 +#: ../../content/developer/reference/backend/mixins.rst:378 msgid "button_follow" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:380 +#: ../../content/developer/reference/backend/mixins.rst:381 msgid "has_button_unfollow" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:380 +#: ../../content/developer/reference/backend/mixins.rst:381 msgid "whether to display Unfollow in email (if recipient is currently following the thread). True by default for new groups, False for portal / customer." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:382 +#: ../../content/developer/reference/backend/mixins.rst:383 msgid "button_unfollow" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:386 +#: ../../content/developer/reference/backend/mixins.rst:387 msgid "actions" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:385 +#: ../../content/developer/reference/backend/mixins.rst:386 msgid "list of action buttons to display in the notification email. Each action is a dict containing url and title of the button." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:391 +#: ../../content/developer/reference/backend/mixins.rst:392 msgid "The urls in the actions list can be generated automatically by calling the ``_notify_get_action_link()`` function:" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:397 +#: ../../content/developer/reference/backend/mixins.rst:398 msgid "Generate a link for the given type on the current record (or on a specific record if the kwargs ``model`` and ``res_id`` are set)." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:400 +#: ../../content/developer/reference/backend/mixins.rst:401 msgid "link type to be generated; can be any of these values: ``view`` link to form view of the record ``assign`` assign the logged user to the ``user_id`` field of the record (if it exists) ``follow`` self-explanatory ``unfollow`` self-explanatory ``method`` call a method on the record; the method's name should be provided as the kwarg ``method`` ``new`` open an empty form view for a new record; you can specify a specific action by providing its id (database id or fully resolved external id) in the kwarg ``action_id``" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:400 +#: ../../content/developer/reference/backend/mixins.rst:401 msgid "link type to be generated; can be any of these values:" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:402 +#: ../../content/developer/reference/backend/mixins.rst:403 msgid "``view``" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:403 +#: ../../content/developer/reference/backend/mixins.rst:404 msgid "link to form view of the record" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:405 +#: ../../content/developer/reference/backend/mixins.rst:406 msgid "``assign``" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:405 +#: ../../content/developer/reference/backend/mixins.rst:406 msgid "assign the logged user to the ``user_id`` field of the record (if it exists)" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:407 +#: ../../content/developer/reference/backend/mixins.rst:408 msgid "``follow``" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:408 -#: ../../content/developer/reference/backend/mixins.rst:410 -#: ../../content/developer/reference/backend/views.rst:1574 -#: ../../content/developer/reference/backend/views.rst:1576 +#: ../../content/developer/reference/backend/mixins.rst:409 +#: ../../content/developer/reference/backend/mixins.rst:411 +#: ../../content/developer/reference/user_interface/view_architecture.rst:2739 +#: ../../content/developer/reference/user_interface/view_architecture.rst:2741 msgid "self-explanatory" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:409 +#: ../../content/developer/reference/backend/mixins.rst:410 msgid "``unfollow``" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:412 +#: ../../content/developer/reference/backend/mixins.rst:413 msgid "``method``" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:412 +#: ../../content/developer/reference/backend/mixins.rst:413 msgid "call a method on the record; the method's name should be provided as the kwarg ``method``" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:417 +#: ../../content/developer/reference/backend/mixins.rst:418 msgid "``new``" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:415 +#: ../../content/developer/reference/backend/mixins.rst:416 msgid "open an empty form view for a new record; you can specify a specific action by providing its id (database id or fully resolved external id) in the kwarg ``action_id``" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:419 +#: ../../content/developer/reference/backend/mixins.rst:420 msgid "link of the type selected for the record" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:424 +#: ../../content/developer/reference/backend/mixins.rst:425 msgid "Let's add a custom button to the Business Trip state change notification; this button will reset the state to Draft and will be only visible to a member of the (imaginary) group Travel Manager (``business.group_trip_manager``)" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:463 +#: ../../content/developer/reference/backend/mixins.rst:464 msgid "Note that that I could have defined my evaluation function outside of this method and define a global function to do it instead of a lambda, but for the sake of being more brief and less verbose in these documentation files that can sometimes be boring, I choose the former instead of the latter." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:469 +#: ../../content/developer/reference/backend/mixins.rst:470 msgid "Overriding defaults" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:471 +#: ../../content/developer/reference/backend/mixins.rst:472 msgid "There are several ways you can customize the behaviour of ``mail.thread`` models, including (but not limited to):" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:476 +#: ../../content/developer/reference/backend/mixins.rst:477 msgid "``_mail_post_access`` - :class:`~odoo.models.Model` attribute" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:475 +#: ../../content/developer/reference/backend/mixins.rst:476 msgid "the required access rights to be able to post a message on the model; by default a ``write`` access is needed, can be set to ``read`` as well" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:496 +#: ../../content/developer/reference/backend/mixins.rst:497 msgid "Context keys:" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:479 +#: ../../content/developer/reference/backend/mixins.rst:480 msgid "These context keys can be used to somewhat control ``mail.thread`` features like auto-subscription or field tracking during calls to ``create()`` or ``write()`` (or any other method where it may be useful)." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:483 +#: ../../content/developer/reference/backend/mixins.rst:484 msgid "``mail_create_nosubscribe``: at create or message_post, do not subscribe the current user to the record thread" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:485 +#: ../../content/developer/reference/backend/mixins.rst:486 msgid "``mail_create_nolog``: at create, do not log the automatic ' created' message" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:487 +#: ../../content/developer/reference/backend/mixins.rst:488 msgid "``mail_notrack``: at create and write, do not perform the value tracking creating messages" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:489 +#: ../../content/developer/reference/backend/mixins.rst:490 msgid "``tracking_disable``: at create and write, perform no MailThread features (auto subscription, tracking, post, ...)" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:491 +#: ../../content/developer/reference/backend/mixins.rst:492 msgid "``mail_auto_delete``: auto delete mail notifications; True by default" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:492 +#: ../../content/developer/reference/backend/mixins.rst:493 msgid "``mail_notify_force_send``: if less than 50 email notifications to send, send them directly instead of using the queue; True by default" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:494 +#: ../../content/developer/reference/backend/mixins.rst:495 msgid "``mail_notify_user_signature``: add the current user signature in email notifications; True by default" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:501 +#: ../../content/developer/reference/backend/mixins.rst:502 msgid "Mail alias" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:503 +#: ../../content/developer/reference/backend/mixins.rst:504 msgid "Aliases are configurable email addresses that are linked to a specific record (which usually inherits the ``mail.alias.mixin`` model) that will create new records when contacted via e-mail. They are an easy way to make your system accessible from the outside, allowing users or customers to quickly create records in your database without needing to connect to Odoo directly." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:510 +#: ../../content/developer/reference/backend/mixins.rst:511 msgid "Aliases vs. Incoming Mail Gateway" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:512 +#: ../../content/developer/reference/backend/mixins.rst:513 msgid "Some people use the Incoming Mail Gateway for this same purpose. You still need a correctly configured mail gateway to use aliases, however a single catchall domain will be sufficient since all routing will be done inside Odoo. Aliases have several advantages over Mail Gateways:" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:520 +#: ../../content/developer/reference/backend/mixins.rst:521 msgid "Easier to configure" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:518 +#: ../../content/developer/reference/backend/mixins.rst:519 msgid "A single incoming gateway can be used by many aliases; this avoids having to configure multiple emails on your domain name (all configuration is done inside Odoo)" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:521 +#: ../../content/developer/reference/backend/mixins.rst:522 msgid "No need for System access rights to configure aliases" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:522 +#: ../../content/developer/reference/backend/mixins.rst:523 msgid "More coherent" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:523 +#: ../../content/developer/reference/backend/mixins.rst:524 msgid "Configurable on the related record, not in a Settings submenu" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:528 +#: ../../content/developer/reference/backend/mixins.rst:529 msgid "Easier to override server-side" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:525 +#: ../../content/developer/reference/backend/mixins.rst:526 msgid "Mixin model is built to be extended from the start, allowing you to extract useful data from incoming e-mails more easily than with a mail gateway." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:531 +#: ../../content/developer/reference/backend/mixins.rst:532 msgid "Alias support integration" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:533 +#: ../../content/developer/reference/backend/mixins.rst:534 msgid "Aliases are usually configured on a parent model which will then create specific record when contacted by e-mail. For example, Project have aliases to create tasks or issues, Sales Team have aliases to generate Leads." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:537 +#: ../../content/developer/reference/backend/mixins.rst:538 msgid "The model that will be created by the alias **must** inherit the ``mail_thread`` model." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:540 +#: ../../content/developer/reference/backend/mixins.rst:541 msgid "Alias support is added by inheriting ``mail.alias.mixin``; this mixin will generate a new ``mail.alias`` record for each record of the parent class that gets created (for example, every ``project.project`` record having its ``mail.alias`` record initialized on creation)." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:545 +#: ../../content/developer/reference/backend/mixins.rst:546 msgid "Aliases can also be created manually and supported by a simple :class:`~odoo.fields.Many2one` field. This guide assumes you wish a more complete integration with automatic creation of the alias, record-specific default values, etc." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:550 +#: ../../content/developer/reference/backend/mixins.rst:551 msgid "Unlike ``mail.thread`` inheritance, the ``mail.alias.mixin`` **requires** some specific overrides to work correctly. These overrides will specify the values of the created alias, like the kind of record it must create and possibly some default values these records may have depending on the parent object:" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:557 +#: ../../content/developer/reference/backend/mixins.rst:558 msgid "Return the model name for the alias. Incoming emails that are not replies to existing records will cause the creation of a new record of this alias model. The value may depend on ``vals``, the dict of values passed to ``create`` when a record of this model is created." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:562 +#: ../../content/developer/reference/backend/mixins.rst:563 msgid "values of the newly created record that will holding the alias" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:564 +#: ../../content/developer/reference/backend/mixins.rst:565 msgid "model name" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:569 +#: ../../content/developer/reference/backend/mixins.rst:570 msgid "Return values to create an alias, or to write on the alias after its creation. While not completely mandatory, it is usually required to make sure that newly created records will be linked to the alias' parent (i.e. tasks getting created in the right project) by setting a dictionary of default values in the alias' ``alias_defaults`` field." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:575 +#: ../../content/developer/reference/backend/mixins.rst:576 msgid "dictionary of values that will be written to the new alias" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:578 +#: ../../content/developer/reference/backend/mixins.rst:579 msgid "The ``_get_alias_values()`` override is particularly interesting as it allows you to modify the behaviour of your aliases easily. Among the fields that can be set on the alias, the following are of particular interest:" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:583 +#: ../../content/developer/reference/backend/mixins.rst:584 msgid "``alias_name`` - :class:`~odoo.fields.Char`" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:583 +#: ../../content/developer/reference/backend/mixins.rst:584 msgid "name of the email alias, e.g. 'jobs' if you want to catch emails for " msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:588 +#: ../../content/developer/reference/backend/mixins.rst:589 msgid "``alias_user_id`` - :class:`~odoo.fields.Many2one` (``res.users``)" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:586 +#: ../../content/developer/reference/backend/mixins.rst:587 msgid "owner of records created upon receiving emails on this alias; if this field is not set the system will attempt to find the right owner based on the sender (From) address, or will use the Administrator account if no system user is found for that address" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:591 +#: ../../content/developer/reference/backend/mixins.rst:592 msgid "``alias_defaults`` - :class:`~odoo.fields.Text`" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:591 +#: ../../content/developer/reference/backend/mixins.rst:592 msgid "Python dictionary that will be evaluated to provide default values when creating new records for this alias" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:595 +#: ../../content/developer/reference/backend/mixins.rst:596 msgid "``alias_force_thread_id`` - :class:`~odoo.fields.Integer`" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:594 +#: ../../content/developer/reference/backend/mixins.rst:595 msgid "optional ID of a thread (record) to which all incoming messages will be attached, even if they did not reply to it; if set, this will disable the creation of new records completely" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:602 +#: ../../content/developer/reference/backend/mixins.rst:603 msgid "``alias_contact`` - :class:`~odoo.fields.Selection`" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:598 +#: ../../content/developer/reference/backend/mixins.rst:599 msgid "Policy to post a message on the document using the mailgateway" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:600 +#: ../../content/developer/reference/backend/mixins.rst:601 msgid "*everyone*: everyone can post" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:601 +#: ../../content/developer/reference/backend/mixins.rst:602 msgid "*partners*: only authenticated partners" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:602 +#: ../../content/developer/reference/backend/mixins.rst:603 msgid "*followers*: only followers of the related document or members of following channels" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:604 +#: ../../content/developer/reference/backend/mixins.rst:605 msgid "Note that aliases make use of :ref:`delegation inheritance `, which means that while the alias is stored in another table, you have access to all these fields directly from your parent object. This allows you to make your alias easily configurable from the record's form view." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:611 +#: ../../content/developer/reference/backend/mixins.rst:612 msgid "Let's add aliases on our business trip class to create expenses on the fly via e-mail." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:659 +#: ../../content/developer/reference/backend/mixins.rst:660 msgid "We would like our alias to be easily configurable from the form view of our business trips, so let's add the following to our form view:" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:684 +#: ../../content/developer/reference/backend/mixins.rst:685 msgid "Now we can change the alias address directly from the form view and change who can send e-mails to the alias." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:687 +#: ../../content/developer/reference/backend/mixins.rst:688 msgid "We can then override ``message_new()`` on our expense model to fetch the values from our email when the expense will be created:" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:724 +#: ../../content/developer/reference/backend/mixins.rst:725 msgid "Activities tracking" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:726 +#: ../../content/developer/reference/backend/mixins.rst:727 msgid "Activities are actions users have to take on a document like making a phone call or organizing a meeting. Activities come with the mail module as they are integrated in the Chatter but are *not bundled with mail.thread*. Activities are records of the ``mail.activity`` class, which have a type (``mail.activity.type``), name, description, scheduled time (among others). Pending activities are visible above the message history in the chatter widget." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:733 +#: ../../content/developer/reference/backend/mixins.rst:734 msgid "You can integrate activities using the ``mail.activity.mixin`` class on your object and the specific widgets to display them (via the field ``activity_ids``) in the form view and kanban view of your records (``mail_activity`` and ``kanban_activity`` widgets, respectively)." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:740 +#: ../../content/developer/reference/backend/mixins.rst:741 msgid "Organizing a business trip is a tedious process and tracking needed activities like ordering plane tickets or a cab for the airport could be useful. To do so, we will add the activities mixin on our model and display the next planned activities in the message history of our trip." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:755 +#: ../../content/developer/reference/backend/mixins.rst:756 msgid "We modify the form view of our trips to display their next activities:" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:774 -#: ../../content/developer/reference/backend/mixins.rst:850 -#: ../../content/developer/reference/backend/mixins.rst:1069 +#: ../../content/developer/reference/backend/mixins.rst:775 +#: ../../content/developer/reference/backend/mixins.rst:851 +#: ../../content/developer/reference/backend/mixins.rst:1070 msgid "You can find concrete examples of integration in the following models:" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:776 -#: ../../content/developer/reference/backend/mixins.rst:852 +#: ../../content/developer/reference/backend/mixins.rst:777 +#: ../../content/developer/reference/backend/mixins.rst:853 msgid "``crm.lead`` in the CRM (*crm*) Application" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:777 +#: ../../content/developer/reference/backend/mixins.rst:778 msgid "``sale.order`` in the Sales (*sale*) Application" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:778 +#: ../../content/developer/reference/backend/mixins.rst:779 msgid "``project.task`` in the Project (*project*) Application" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:784 +#: ../../content/developer/reference/backend/mixins.rst:785 msgid "Website features" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:789 +#: ../../content/developer/reference/backend/mixins.rst:790 msgid "Visitor tracking" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:791 +#: ../../content/developer/reference/backend/mixins.rst:792 msgid "The ``utm.mixin`` class can be used to track online marketing/communication campaigns through arguments in links to specified resources. The mixin adds 3 fields to your model:" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:795 +#: ../../content/developer/reference/backend/mixins.rst:796 msgid "``campaign_id``: :class:`~odoo.fields.Many2one` field to a ``utm.campaign`` object (i.e. Christmas_Special, Fall_Collection, etc.)" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:797 +#: ../../content/developer/reference/backend/mixins.rst:798 msgid "``source_id``: :class:`~odoo.fields.Many2one` field to a ``utm.source`` object (i.e. Search Engine, mailing list, etc.)" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:799 +#: ../../content/developer/reference/backend/mixins.rst:800 msgid "``medium_id``: :class:`~odoo.fields.Many2one` field to a ``utm.medium`` object (i.e. Snail Mail, e-Mail, social network update, etc.)" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:802 +#: ../../content/developer/reference/backend/mixins.rst:803 msgid "These models have a single field ``name`` (i.e. they are simply there to distinguish campaigns but don't have any specific behaviour)." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:805 +#: ../../content/developer/reference/backend/mixins.rst:806 msgid "Once a customer visits your website with these parameters set in the url (i.e. https://www.odoo.com/?campaign_id=mixin_talk&source_id=www.odoo.com&medium_id=website), three cookies are set in the visitor's website for these parameters. Once a object that inherits the utm.mixin is created from the website (i.e. lead form, job application, etc.), the utm.mixin code kicks in and fetches the values from the cookies to set them in the new record. Once this is done, you can then use the campaign/source/medium fields as any other field when defining reports and views (group by, etc.)." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:814 +#: ../../content/developer/reference/backend/mixins.rst:815 msgid "To extend this behaviour, simply add a relational field to a simple model (the model should support the *quick create* (i.e. call to ``create()`` with a single ``name`` value) and extend the function ``tracking_fields()``:" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:843 +#: ../../content/developer/reference/backend/mixins.rst:844 msgid "This will tell the system to create a cookie named *odoo_utm_my_field* with the value found in the url parameter ``my_field``; once a new record of this model is created by a call from a website form, the generic override of the ``create()`` method of ``utm.mixin`` will fetch the default values for this field from the cookie (and the ``my_module.my_track`` record will be creatwed on the fly if it does not exist yet)." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:853 +#: ../../content/developer/reference/backend/mixins.rst:854 msgid "``hr.applicant`` in the Recruitment Process (*hr_recruitment*) Application" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:854 -#: ../../content/developer/reference/backend/mixins.rst:1072 +#: ../../content/developer/reference/backend/mixins.rst:855 +#: ../../content/developer/reference/backend/mixins.rst:1073 msgid "``helpdesk.ticket`` in the Helpdesk (*helpdesk* - Odoo Enterprise only) Application" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:859 +#: ../../content/developer/reference/backend/mixins.rst:860 msgid "Website visibility" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:861 +#: ../../content/developer/reference/backend/mixins.rst:862 msgid "You can quite easily add a website visibility toggle on any of your record. While this mixin is quite easy to implement manually, it is the most often-used after the ``mail.thread`` inheritance; a testament to its usefulness. The typical use case for this mixin is any object that has a frontend-page; being able to control the visibility of the page allows you to take your time while editing the page and only publish it when you're satisfied." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:868 +#: ../../content/developer/reference/backend/mixins.rst:869 msgid "To include the functionality, you only need to inherit ``website.published.mixin``:" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:877 +#: ../../content/developer/reference/backend/mixins.rst:878 msgid "This mixin adds 2 fields on your model:" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:879 +#: ../../content/developer/reference/backend/mixins.rst:880 msgid "``website_published``: :class:`~odoo.fields.Boolean` field which represents the status of the publication" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:881 +#: ../../content/developer/reference/backend/mixins.rst:882 msgid "``website_url``: :class:`~odoo.fields.Char` field which represents the URL through which the object is accessed" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:884 +#: ../../content/developer/reference/backend/mixins.rst:885 msgid "Note that this last field is a computed field and must be implemented for your class:" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:892 +#: ../../content/developer/reference/backend/mixins.rst:893 msgid "Once the mechanism is in place, you just have to adapt your frontend and backend views to make it accessible. In the backend, adding a button in the button box is usually the way to go:" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:903 +#: ../../content/developer/reference/backend/mixins.rst:904 msgid "In the frontend, some security checks are needed to avoid showing 'Editing' buttons to website visitors:" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:917 +#: ../../content/developer/reference/backend/mixins.rst:918 msgid "Note that you must pass your object as the variable ``object`` to the template; in this example, the ``blog.post`` record was passed as the ``blog_post`` variable to the ``qweb`` rendering engine, it is necessary to specify this to the publish management template. The ``publish_edit`` variable allow the frontend button to link to the backend (allowing you to switch from frontend to backend and vice-versa easily); if set, you must specify the full external id of the action you want to call in the backend in the ``action`` variable (note that a Form View must exist for the model)." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:926 +#: ../../content/developer/reference/backend/mixins.rst:927 msgid "The action ``website_publish_button`` is defined in the mixin and adapts its behaviour to your object: if the class has a valid ``website_url`` compute function, the user is redirected to the frontend when he clicks on the button; the user can then publish the page directly from the frontend. This ensures that no online publication can happen by accident. If there is not compute function, the boolean ``website_published`` is simply triggered." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:936 +#: ../../content/developer/reference/backend/mixins.rst:937 msgid "Website metadata" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:938 +#: ../../content/developer/reference/backend/mixins.rst:939 msgid "This simple mixin simply allows you to easily inject metadata in your frontend pages." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:948 +#: ../../content/developer/reference/backend/mixins.rst:949 msgid "This mixin adds 3 fields on your model:" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:950 +#: ../../content/developer/reference/backend/mixins.rst:951 msgid "``website_meta_title``: :class:`~odoo.fields.Char` field that allow you to set an additional title to your page" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:952 +#: ../../content/developer/reference/backend/mixins.rst:953 msgid "``website_meta_description``: :class:`~odoo.fields.Char` field that contains a short description of the page (sometimes used in search engines results)" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:954 +#: ../../content/developer/reference/backend/mixins.rst:955 msgid "``website_meta_keywords``: :class:`~odoo.fields.Char` field that contains some keywords to help your page to be classified more precisely by search engines; the \"Promote\" tool will help you select lexically-related keywords easily" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:958 +#: ../../content/developer/reference/backend/mixins.rst:959 msgid "These fields are editable in the frontend using the \"Promote\" tool from the Editor toolbar. Setting these fields can help search engines to better index your pages. Note that search engines do not base their results only on these metadata; the best SEO practice should still be to get referenced by reliable sources." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:966 +#: ../../content/developer/reference/backend/mixins.rst:967 msgid "Others" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:971 +#: ../../content/developer/reference/backend/mixins.rst:972 msgid "Customer Rating" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:973 +#: ../../content/developer/reference/backend/mixins.rst:974 msgid "The rating mixin allows sending email to ask for customer rating, automatic transitioning in a kanban processes and aggregating statistics on your ratings." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:977 +#: ../../content/developer/reference/backend/mixins.rst:978 msgid "Adding rating on your model" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:979 +#: ../../content/developer/reference/backend/mixins.rst:980 msgid "To add rating support, simply inherit the ``rating.mixin`` model:" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:990 +#: ../../content/developer/reference/backend/mixins.rst:991 msgid "The behaviour of the mixin adapts to your model:" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:992 +#: ../../content/developer/reference/backend/mixins.rst:993 msgid "The ``rating.rating`` record will be linked to the ``partner_id`` field of your model (if the field is present)." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:995 +#: ../../content/developer/reference/backend/mixins.rst:996 msgid "this behaviour can be overridden with the function ``rating_get_partner_id()`` if you use another field than ``partner_id``" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:998 +#: ../../content/developer/reference/backend/mixins.rst:999 msgid "The ``rating.rating`` record will be linked to the partner of the ``user_id`` field of your model (if the field is present) (i.e. the partner who is rated)" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:1001 +#: ../../content/developer/reference/backend/mixins.rst:1002 msgid "this behaviour can be overridden with the function ``rating_get_rated_partner_id()`` if you use another field than ``user_id`` (note that the function must return a ``res.partner``, for ``user_id`` the system automatically fetches the partner of the user)" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:1006 +#: ../../content/developer/reference/backend/mixins.rst:1007 msgid "The chatter history will display the rating event (if your model inherits from ``mail.thread``)" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:1010 +#: ../../content/developer/reference/backend/mixins.rst:1011 msgid "Send rating requests by e-mail" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:1012 +#: ../../content/developer/reference/backend/mixins.rst:1013 msgid "If you wish to send emails to request a rating, simply generate an e-mail with links to the rating object. A very basic email template could look like this:" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:1036 +#: ../../content/developer/reference/backend/mixins.rst:1037 msgid "Your customer will then receive an e-mail with links to a simple webpage allowing them to provide a feedback on their interaction with your users (including a free-text feedback message)." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:1040 +#: ../../content/developer/reference/backend/mixins.rst:1041 msgid "You can then quite easily integrate your ratings with your form view by defining an action for the ratings:" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:1066 +#: ../../content/developer/reference/backend/mixins.rst:1067 msgid "Note that there are default views (kanban,pivot,graph) for ratings which allow you a quick bird's eye view of your customer ratings." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:1071 +#: ../../content/developer/reference/backend/mixins.rst:1072 msgid "``project.task`` in the Project (*rating_project*) Application" msgstr "" @@ -7606,7 +6891,7 @@ msgid "Module Manifests" msgstr "" #: ../../content/developer/reference/backend/module.rst:11 -#: ../../content/developer/tutorials/define_module_data.rst:67 +#: ../../content/developer/tutorials/define_module_data.rst:68 msgid "Manifest" msgstr "" @@ -7891,10 +7176,10 @@ msgid "AbstractModel" msgstr "" #: ../../content/developer/reference/backend/orm.rst:94 -#: ../../content/developer/tutorials/getting_started/12_sprinkles.rst:153 -#: ../../content/developer/tutorials/getting_started/12_sprinkles.rst:182 -#: ../../content/developer/tutorials/getting_started/12_sprinkles.rst:215 -#: ../../content/developer/tutorials/getting_started/12_sprinkles.rst:262 +#: ../../content/developer/tutorials/getting_started/12_sprinkles.rst:154 +#: ../../content/developer/tutorials/getting_started/12_sprinkles.rst:183 +#: ../../content/developer/tutorials/getting_started/12_sprinkles.rst:216 +#: ../../content/developer/tutorials/getting_started/12_sprinkles.rst:263 msgid "Model" msgstr "" @@ -8068,6 +7353,7 @@ msgid "not copied" msgstr "" #: ../../content/developer/reference/backend/orm.rst:355 +#: ../../content/developer/reference/user_interface/view_architecture.rst:0 msgid "readonly" msgstr "" @@ -8107,64 +7393,73 @@ msgstr "" msgid "Raise an Error otherwise." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:413 -msgid "Access Log fields" +#: ../../content/developer/reference/backend/orm.rst:412 +msgid "Name :class:`field ` displayed by default in the web client" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:415 -msgid "These fields are automatically set and updated if :attr:`~odoo.models.BaseModel._log_access` is enabled. It can be disabled to avoid creating or updating those fields on tables for which they are not useful." +#: ../../content/developer/reference/backend/orm.rst:414 +msgid "By default, it equals to :attr:`~odoo.models.BaseModel._rec_name` value field but the behavior can be customized by overriding :attr:`~odoo.models.BaseModel._compute_display_name`" msgstr "" #: ../../content/developer/reference/backend/orm.rst:420 +msgid "Access Log fields" +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:422 +msgid "These fields are automatically set and updated if :attr:`~odoo.models.BaseModel._log_access` is enabled. It can be disabled to avoid creating or updating those fields on tables for which they are not useful." +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:427 msgid "By default, :attr:`~odoo.models.BaseModel._log_access` is set to the same value as :attr:`~odoo.models.BaseModel._auto`" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:425 +#: ../../content/developer/reference/backend/orm.rst:432 msgid "Stores when the record was created, :class:`~odoo.fields.Datetime`" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:429 +#: ../../content/developer/reference/backend/orm.rst:436 msgid "Stores *who* created the record, :class:`~odoo.fields.Many2one` to a ``res.users``." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:434 +#: ../../content/developer/reference/backend/orm.rst:441 msgid "Stores when the record was last updated, :class:`~odoo.fields.Datetime`" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:438 +#: ../../content/developer/reference/backend/orm.rst:445 msgid "Stores who last updated the record, :class:`~odoo.fields.Many2one` to a ``res.users``." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:441 +#: ../../content/developer/reference/backend/orm.rst:448 msgid ":attr:`~odoo.models.BaseModel._log_access` *must* be enabled on :class:`~odoo.models.TransientModel`." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:447 +#: ../../content/developer/reference/backend/orm.rst:454 msgid "Reserved Field names" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:449 +#: ../../content/developer/reference/backend/orm.rst:456 msgid "A few field names are reserved for pre-defined behaviors beyond that of automated fields. They should be defined on a model when the related behavior is desired:" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:455 +#: ../../content/developer/reference/backend/orm.rst:462 msgid "default value for :attr:`~odoo.models.BaseModel._rec_name`, used to display records in context where a representative \"naming\" is necessary." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:459 +#: ../../content/developer/reference/backend/orm.rst:466 #: ../../content/developer/reference/backend/orm.rst:503 +#: ../../content/developer/reference/user_interface/view_records.rst:83 msgid ":class:`~odoo.fields.Char`" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:463 +#: ../../content/developer/reference/backend/orm.rst:470 msgid "toggles the global visibility of the record, if ``active`` is set to ``False`` the record is invisible in most searches and listing." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:466 +#: ../../content/developer/reference/backend/orm.rst:473 msgid ":class:`~odoo.fields.Boolean`" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:468 +#: ../../content/developer/reference/backend/orm.rst:475 msgid "Special methods:" msgstr "" @@ -8181,6 +7476,7 @@ msgid "default_value of :attr:`~._parent_name`, used to organize records in a tr msgstr "" #: ../../content/developer/reference/backend/orm.rst:494 +#: ../../content/developer/reference/user_interface/view_records.rst:119 msgid ":class:`~odoo.fields.Many2one`" msgstr "" @@ -8264,496 +7560,500 @@ msgstr "" msgid "The prefetching also works on *secondary records*: when relational fields are read, their values (which are records) are subscribed for future prefetching. Accessing one of those secondary records prefetches all secondary records from the same model. This makes the following example generate only two queries, one for partners and one for countries::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:622 +#: ../../content/developer/reference/backend/orm.rst:619 +msgid "The methods :meth:`~odoo.models.Model.search_fetch` and :meth:`~odoo.models.Model.fetch` can be used to populate the cache of records, typically in cases where the prefetching mechanism does not work well." +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:628 msgid "Method decorators" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:636 +#: ../../content/developer/reference/backend/orm.rst:642 msgid "With sphinx 2.0 : autodecorator" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:638 +#: ../../content/developer/reference/backend/orm.rst:644 msgid "Add in Views reference * It is possible to suppress the trigger from a specific field by adding ``on_change=\"0\"`` in a view::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:644 +#: ../../content/developer/reference/backend/orm.rst:650 msgid "will not trigger any interface update when the field is edited by the user, even if there are function fields or explicit onchange depending on that field." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:651 +#: ../../content/developer/reference/backend/orm.rst:657 #: ../../content/developer/reference/frontend/framework_overview.rst:96 msgid "Environment" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:668 +#: ../../content/developer/reference/backend/orm.rst:674 msgid "When creating a recordset from an other recordset, the environment is inherited. The environment can be used to get an empty recordset in an other model, and query that model:" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:679 +#: ../../content/developer/reference/backend/orm.rst:685 msgid "Some lazy properties are available to access the environment (contextual) data:" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:687 +#: ../../content/developer/reference/backend/orm.rst:693 msgid "Useful environment methods" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:695 +#: ../../content/developer/reference/backend/orm.rst:701 msgid "Altering the environment" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:712 +#: ../../content/developer/reference/backend/orm.rst:718 msgid "SQL Execution" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:714 +#: ../../content/developer/reference/backend/orm.rst:720 msgid "The :attr:`~odoo.api.Environment.cr` attribute on environments is the cursor for the current database transaction and allows executing SQL directly, either for queries which are difficult to express using the ORM (e.g. complex joins) or for performance reasons::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:722 +#: ../../content/developer/reference/backend/orm.rst:728 msgid "Executing raw SQL bypasses the ORM and, by consequent, Odoo security rules. Please make sure your queries are sanitized when using user input and prefer using ORM utilities if you don't really need to use SQL queries." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:726 +#: ../../content/developer/reference/backend/orm.rst:732 msgid "One important thing to know about models is that they don't necessarily perform database updates right away. Indeed, for performance reasons, the framework delays the recomputation of fields after modifying records. And some database updates are delayed, too. Therefore, before querying the database, one has to make sure that it contains the relevant data for the query. This operation is called *flushing* and performs the expected database updates." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:743 +#: ../../content/developer/reference/backend/orm.rst:749 msgid "Before every SQL query, one has to flush the data needed for that query. There are three levels for flushing, each with its own API. One can flush either everything, all the records of a model, or some specific records. Because delaying updates improves performance in general, we recommend to be *specific* when flushing." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:755 +#: ../../content/developer/reference/backend/orm.rst:761 msgid "Because models use the same cursor and the :class:`~odoo.api.Environment` holds various caches, these caches must be invalidated when *altering* the database in raw SQL, or further uses of models may become incoherent. It is necessary to clear caches when using ``CREATE``, ``UPDATE`` or ``DELETE`` in SQL, but not ``SELECT`` (which simply reads the database)." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:773 +#: ../../content/developer/reference/backend/orm.rst:779 msgid "Just like flushing, one can invalidate either the whole cache, the cache of all the records of a model, or the cache of specific records. One can even invalidate specific fields on some records or all records of a model. As the cache improves performance in general, we recommend to be *specific* when invalidating." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:785 +#: ../../content/developer/reference/backend/orm.rst:791 msgid "The methods above keep the caches and the database consistent with each other. However, if computed field dependencies have been modified in the database, one has to inform the models for the computed fields to be recomputed. The only thing the framework needs to know is *what* fields have changed on *which* records." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:807 +#: ../../content/developer/reference/backend/orm.rst:813 msgid "One has to figure out which records have been modified. There are many ways to do this, possibly involving extra SQL queries. In the example above, we take advantage of the ``RETURNING`` clause of PostgreSQL to retrieve the information without an extra query. After making the cache consistent by invalidation, invoke the method ``modified`` on the modified records with the fields that have been updated." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:820 +#: ../../content/developer/reference/backend/orm.rst:826 msgid "Common ORM methods" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:825 +#: ../../content/developer/reference/backend/orm.rst:831 msgid "Create/update" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:827 +#: ../../content/developer/reference/backend/orm.rst:833 msgid "api.model_create_multi information" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:840 +#: ../../content/developer/reference/backend/orm.rst:846 msgid "Search/Read" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:862 +#: ../../content/developer/reference/backend/orm.rst:874 msgid "Search domains" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:864 +#: ../../content/developer/reference/backend/orm.rst:876 msgid "A domain is a list of criteria, each criterion being a triple (either a ``list`` or a ``tuple``) of ``(field_name, operator, value)`` where:" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:870 +#: ../../content/developer/reference/backend/orm.rst:882 msgid "``field_name`` (``str``)" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:868 +#: ../../content/developer/reference/backend/orm.rst:880 msgid "a field name of the current model, or a relationship traversal through a :class:`~odoo.fields.Many2one` using dot-notation e.g. ``'street'`` or ``'partner_id.country'``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:924 +#: ../../content/developer/reference/backend/orm.rst:936 msgid "``operator`` (``str``)" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:873 +#: ../../content/developer/reference/backend/orm.rst:885 msgid "an operator used to compare the ``field_name`` with the ``value``. Valid operators are:" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:876 +#: ../../content/developer/reference/backend/orm.rst:888 msgid "``=``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:877 +#: ../../content/developer/reference/backend/orm.rst:889 msgid "equals to" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:878 +#: ../../content/developer/reference/backend/orm.rst:890 msgid "``!=``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:879 +#: ../../content/developer/reference/backend/orm.rst:891 msgid "not equals to" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:880 +#: ../../content/developer/reference/backend/orm.rst:892 msgid "``>``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:881 +#: ../../content/developer/reference/backend/orm.rst:893 msgid "greater than" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:882 +#: ../../content/developer/reference/backend/orm.rst:894 msgid "``>=``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:883 +#: ../../content/developer/reference/backend/orm.rst:895 msgid "greater than or equal to" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:884 +#: ../../content/developer/reference/backend/orm.rst:896 msgid "``<``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:885 +#: ../../content/developer/reference/backend/orm.rst:897 msgid "less than" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:886 +#: ../../content/developer/reference/backend/orm.rst:898 msgid "``<=``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:887 +#: ../../content/developer/reference/backend/orm.rst:899 msgid "less than or equal to" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:889 +#: ../../content/developer/reference/backend/orm.rst:901 msgid "``=?``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:889 +#: ../../content/developer/reference/backend/orm.rst:901 msgid "unset or equals to (returns true if ``value`` is either ``None`` or ``False``, otherwise behaves like ``=``)" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:893 +#: ../../content/developer/reference/backend/orm.rst:905 msgid "``=like``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:892 +#: ../../content/developer/reference/backend/orm.rst:904 msgid "matches ``field_name`` against the ``value`` pattern. An underscore ``_`` in the pattern stands for (matches) any single character; a percent sign ``%`` matches any string of zero or more characters." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:896 +#: ../../content/developer/reference/backend/orm.rst:908 msgid "``like``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:896 +#: ../../content/developer/reference/backend/orm.rst:908 msgid "matches ``field_name`` against the ``%value%`` pattern. Similar to ``=like`` but wraps ``value`` with '%' before matching" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:898 +#: ../../content/developer/reference/backend/orm.rst:910 msgid "``not like``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:899 +#: ../../content/developer/reference/backend/orm.rst:911 msgid "doesn't match against the ``%value%`` pattern" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:900 +#: ../../content/developer/reference/backend/orm.rst:912 msgid "``ilike``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:901 +#: ../../content/developer/reference/backend/orm.rst:913 msgid "case insensitive ``like``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:902 +#: ../../content/developer/reference/backend/orm.rst:914 msgid "``not ilike``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:903 +#: ../../content/developer/reference/backend/orm.rst:915 msgid "case insensitive ``not like``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:904 +#: ../../content/developer/reference/backend/orm.rst:916 msgid "``=ilike``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:905 +#: ../../content/developer/reference/backend/orm.rst:917 msgid "case insensitive ``=like``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:907 +#: ../../content/developer/reference/backend/orm.rst:919 msgid "``in``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:907 +#: ../../content/developer/reference/backend/orm.rst:919 msgid "is equal to any of the items from ``value``, ``value`` should be a list of items" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:909 +#: ../../content/developer/reference/backend/orm.rst:921 msgid "``not in``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:910 +#: ../../content/developer/reference/backend/orm.rst:922 msgid "is unequal to all of the items from ``value``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:916 +#: ../../content/developer/reference/backend/orm.rst:928 msgid "``child_of``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:912 +#: ../../content/developer/reference/backend/orm.rst:924 msgid "is a child (descendant) of a ``value`` record (value can be either one item or a list of items)." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:915 -#: ../../content/developer/reference/backend/orm.rst:922 +#: ../../content/developer/reference/backend/orm.rst:927 +#: ../../content/developer/reference/backend/orm.rst:934 msgid "Takes the semantics of the model into account (i.e following the relationship field named by :attr:`~odoo.models.Model._parent_name`)." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:924 +#: ../../content/developer/reference/backend/orm.rst:936 msgid "``parent_of``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:919 +#: ../../content/developer/reference/backend/orm.rst:931 msgid "is a parent (ascendant) of a ``value`` record (value can be either one item or a list of items)." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:927 +#: ../../content/developer/reference/backend/orm.rst:939 msgid "variable type, must be comparable (through ``operator``) to the named field." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:930 +#: ../../content/developer/reference/backend/orm.rst:942 msgid "Domain criteria can be combined using logical operators in *prefix* form:" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:933 +#: ../../content/developer/reference/backend/orm.rst:945 msgid "``'&'``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:933 +#: ../../content/developer/reference/backend/orm.rst:945 msgid "logical *AND*, default operation to combine criteria following one another. Arity 2 (uses the next 2 criteria or combinations)." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:935 +#: ../../content/developer/reference/backend/orm.rst:947 msgid "``'|'``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:936 +#: ../../content/developer/reference/backend/orm.rst:948 msgid "logical *OR*, arity 2." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:942 +#: ../../content/developer/reference/backend/orm.rst:954 msgid "``'!'``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:938 +#: ../../content/developer/reference/backend/orm.rst:950 msgid "logical *NOT*, arity 1." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:940 +#: ../../content/developer/reference/backend/orm.rst:952 msgid "Mostly to negate combinations of criteria Individual criterion generally have a negative form (e.g. ``=`` -> ``!=``, ``<`` -> ``>=``) which is simpler than negating the positive." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:946 +#: ../../content/developer/reference/backend/orm.rst:958 msgid "To search for partners named *ABC*, from belgium or germany, whose language is not english::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:954 +#: ../../content/developer/reference/backend/orm.rst:966 msgid "This domain is interpreted as:" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:963 +#: ../../content/developer/reference/backend/orm.rst:975 #: ../../content/developer/tutorials/getting_started/13_inheritance.rst:0 msgid "Unlink" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:970 +#: ../../content/developer/reference/backend/orm.rst:982 msgid "Record(set) information" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:976 +#: ../../content/developer/reference/backend/orm.rst:988 msgid "Returns the environment of the given recordset." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:978 +#: ../../content/developer/reference/backend/orm.rst:990 msgid ":class:`~odoo.api.Environment`" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:980 +#: ../../content/developer/reference/backend/orm.rst:992 msgid "Environment documentation" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:993 -#: ../../content/developer/reference/frontend/assets.rst:102 +#: ../../content/developer/reference/backend/orm.rst:1003 +#: ../../content/developer/reference/frontend/assets.rst:103 msgid "Operations" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:995 +#: ../../content/developer/reference/backend/orm.rst:1005 msgid "Recordsets are immutable, but sets of the same model can be combined using various set operations, returning new recordsets." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1000 +#: ../../content/developer/reference/backend/orm.rst:1010 msgid "``record in set`` returns whether ``record`` (which must be a 1-element recordset) is present in ``set``. ``record not in set`` is the inverse operation" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1003 +#: ../../content/developer/reference/backend/orm.rst:1013 msgid "``set1 <= set2`` and ``set1 < set2`` return whether ``set1`` is a subset of ``set2`` (resp. strict)" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1005 +#: ../../content/developer/reference/backend/orm.rst:1015 msgid "``set1 >= set2`` and ``set1 > set2`` return whether ``set1`` is a superset of ``set2`` (resp. strict)" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1007 +#: ../../content/developer/reference/backend/orm.rst:1017 msgid "``set1 | set2`` returns the union of the two recordsets, a new recordset containing all records present in either source" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1009 +#: ../../content/developer/reference/backend/orm.rst:1019 msgid "``set1 & set2`` returns the intersection of two recordsets, a new recordset containing only records present in both sources" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1011 +#: ../../content/developer/reference/backend/orm.rst:1021 msgid "``set1 - set2`` returns a new recordset containing only records of ``set1`` which are *not* in ``set2``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1014 +#: ../../content/developer/reference/backend/orm.rst:1024 msgid "Recordsets are iterable so the usual Python tools are available for transformation (:func:`python:map`, :func:`python:sorted`, :func:`~python:itertools.ifilter`, ...) however these return either a :class:`python:list` or an :term:`python:iterator`, removing the ability to call methods on their result, or to use set operations." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1020 +#: ../../content/developer/reference/backend/orm.rst:1030 msgid "Recordsets therefore provide the following operations returning recordsets themselves (when possible):" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1024 +#: ../../content/developer/reference/backend/orm.rst:1034 #: ../../content/developer/tutorials/getting_started/07_basicviews.rst:0 msgid "Filter" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1031 -#: ../../content/developer/reference/backend/views.rst:1953 +#: ../../content/developer/reference/backend/orm.rst:1041 +#: ../../content/developer/reference/user_interface/view_architecture.rst:3961 msgid "Map" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1037 +#: ../../content/developer/reference/backend/orm.rst:1047 msgid "Since V13, multi-relational field access is supported and works like a mapped call:" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1046 +#: ../../content/developer/reference/backend/orm.rst:1056 msgid "Sort" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1051 +#: ../../content/developer/reference/backend/orm.rst:1061 msgid "Grouping" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1058 +#: ../../content/developer/reference/backend/orm.rst:1068 msgid "Inheritance and extension" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1060 +#: ../../content/developer/reference/backend/orm.rst:1070 msgid "Odoo provides three different mechanisms to extend models in a modular way:" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1062 +#: ../../content/developer/reference/backend/orm.rst:1072 msgid "creating a new model from an existing one, adding new information to the copy but leaving the original module as-is" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1064 +#: ../../content/developer/reference/backend/orm.rst:1074 msgid "extending models defined in other modules in-place, replacing the previous version" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1066 +#: ../../content/developer/reference/backend/orm.rst:1076 msgid "delegating some of the model's fields to records it contains" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1072 +#: ../../content/developer/reference/backend/orm.rst:1082 msgid "Classical inheritance" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1074 +#: ../../content/developer/reference/backend/orm.rst:1084 msgid "When using the :attr:`~odoo.models.Model._inherit` and :attr:`~odoo.models.Model._name` attributes together, Odoo creates a new model using the existing one (provided via :attr:`~odoo.models.Model._inherit`) as a base. The new model gets all the fields, methods and meta-information (defaults & al) from its base." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1102 +#: ../../content/developer/reference/backend/orm.rst:1112 msgid "and using them::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1110 +#: ../../content/developer/reference/backend/orm.rst:1120 msgid "will yield:" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1112 +#: ../../content/developer/reference/backend/orm.rst:1122 msgid "\"This is model 0 record A\" \"This is model 1 record B\"" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1115 +#: ../../content/developer/reference/backend/orm.rst:1125 msgid "the second model has inherited from the first model's ``check`` method and its ``name`` field, but overridden the ``call`` method, as when using standard :ref:`Python inheritance `." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1120 +#: ../../content/developer/reference/backend/orm.rst:1130 msgid "Extension" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1122 +#: ../../content/developer/reference/backend/orm.rst:1132 msgid "When using :attr:`~odoo.models.Model._inherit` but leaving out :attr:`~odoo.models.Model._name`, the new model replaces the existing one, essentially extending it in-place. This is useful to add new fields or methods to existing models (created in other modules), or to customize or reconfigure them (e.g. to change their default sort order)::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1144 +#: ../../content/developer/reference/backend/orm.rst:1154 msgid "will yield::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1151 +#: ../../content/developer/reference/backend/orm.rst:1161 msgid "It will also yield the various :ref:`automatic fields ` unless they've been disabled" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1155 +#: ../../content/developer/reference/backend/orm.rst:1165 msgid "Delegation" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1157 +#: ../../content/developer/reference/backend/orm.rst:1167 msgid "The third inheritance mechanism provides more flexibility (it can be altered at runtime) but less power: using the :attr:`~odoo.models.Model._inherits` a model *delegates* the lookup of any field not found on the current model to \"children\" models. The delegation is performed via :class:`~odoo.fields.Reference` fields automatically set up on the parent model." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1164 +#: ../../content/developer/reference/backend/orm.rst:1174 msgid "The main difference is in the meaning. When using Delegation, the model **has one** instead of **is one**, turning the relationship in a composition instead of inheritance::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1206 -#: ../../content/developer/reference/frontend/qweb.rst:26 -#: ../../content/developer/reference/frontend/qweb.rst:36 -#: ../../content/developer/reference/frontend/qweb.rst:330 +#: ../../content/developer/reference/backend/orm.rst:1216 +#: ../../content/developer/reference/frontend/qweb.rst:25 +#: ../../content/developer/reference/frontend/qweb.rst:35 +#: ../../content/developer/reference/frontend/qweb.rst:329 msgid "will result in::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1211 +#: ../../content/developer/reference/backend/orm.rst:1221 msgid "and it's possible to write directly on the delegated field::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1215 +#: ../../content/developer/reference/backend/orm.rst:1225 msgid "when using delegation inheritance, methods are *not* inherited, only fields" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1220 +#: ../../content/developer/reference/backend/orm.rst:1230 msgid "`_inherits` is more or less implemented, avoid it if you can;" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1221 +#: ../../content/developer/reference/backend/orm.rst:1231 msgid "chained `_inherits` is essentially not implemented, we cannot guarantee anything on the final behavior." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1225 +#: ../../content/developer/reference/backend/orm.rst:1235 msgid "Fields Incremental Definition" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1227 +#: ../../content/developer/reference/backend/orm.rst:1237 msgid "A field is defined as class attribute on a model class. If the model is extended, one can also extend the field definition by redefining a field with the same name and same type on the subclass. In that case, the attributes of the field are taken from the parent class and overridden by the ones given in subclasses." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1233 +#: ../../content/developer/reference/backend/orm.rst:1243 msgid "For instance, the second class below only adds a tooltip on the field ``state``::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1247 +#: ../../content/developer/reference/backend/orm.rst:1257 msgid "Error management" msgstr "" @@ -8762,26 +8062,50 @@ msgid "Changelog" msgstr "" #: ../../content/developer/reference/backend/orm/changelog.rst:8 -msgid "Odoo version 16.0" +msgid "Odoo Online version 16.4" msgstr "" #: ../../content/developer/reference/backend/orm/changelog.rst:10 -msgid "Translations for translated fields are stored as JSONB values with `#97692 `_ and `#101115 `_. Code translations are no longer stored into the database. They become static and are extracted from the PO files when needed." +msgid "`odoo.models.Model.name_get` has been deprecated with `#122085 `_. Read `display_name` instead." +msgstr "" + +#: ../../content/developer/reference/backend/orm/changelog.rst:15 +msgid "Odoo Online version 16.3" msgstr "" #: ../../content/developer/reference/backend/orm/changelog.rst:17 +msgid "`odoo.models.Model._read_group` has a new signature with `#110737 `_" +msgstr "" + +#: ../../content/developer/reference/backend/orm/changelog.rst:21 +msgid "Odoo Online version 16.2" +msgstr "" + +#: ../../content/developer/reference/backend/orm/changelog.rst:23 +msgid "Refactor the implementation of searching and reading methods to be able to combine both in a minimal number of SQL queries. We introduce two new methods `odoo.models.Model.search_fetch` and `odoo.models.Model.fetch` that take advantage of the combination. More details can be found on the pull request `#112126 `_." +msgstr "" + +#: ../../content/developer/reference/backend/orm/changelog.rst:30 +msgid "Odoo version 16.0" +msgstr "" + +#: ../../content/developer/reference/backend/orm/changelog.rst:32 +msgid "Translations for translated fields are stored as JSONB values with `#97692 `_ and `#101115 `_. Code translations are no longer stored into the database. They become static and are extracted from the PO files when needed." +msgstr "" + +#: ../../content/developer/reference/backend/orm/changelog.rst:39 msgid "Odoo Online version 15.4" msgstr "" -#: ../../content/developer/reference/backend/orm/changelog.rst:19 +#: ../../content/developer/reference/backend/orm/changelog.rst:41 msgid "New API for flushing to the database and invalidating the cache with `#87527 `_. New methods have been added to `odoo.models.Model` and `odoo.api.Environment`, and are less confusing about what is actually done in each case. See the section :ref:`SQL Execution `." msgstr "" -#: ../../content/developer/reference/backend/orm/changelog.rst:26 +#: ../../content/developer/reference/backend/orm/changelog.rst:48 msgid "Odoo Online version 15.2" msgstr "" -#: ../../content/developer/reference/backend/orm/changelog.rst:28 +#: ../../content/developer/reference/backend/orm/changelog.rst:50 msgid "Specific index types on fields: With `#83274 `_ and `#83015 `_, developers can now define what type of indexes can be used on fields by PostgreSQL. See the :ref:`index property ` of `odoo.fields.Field`." msgstr "" @@ -8935,19 +8259,20 @@ msgstr "" #: ../../content/developer/reference/frontend/odoo_editor.rst:146 #: ../../content/developer/reference/frontend/odoo_editor.rst:172 #: ../../content/developer/reference/frontend/odoo_editor.rst:216 -#: ../../content/developer/reference/frontend/owl_components.rst:240 -#: ../../content/developer/reference/frontend/owl_components.rst:328 -#: ../../content/developer/reference/frontend/owl_components.rst:363 +#: ../../content/developer/reference/frontend/owl_components.rst:233 +#: ../../content/developer/reference/frontend/owl_components.rst:321 +#: ../../content/developer/reference/frontend/owl_components.rst:356 #: ../../content/developer/reference/frontend/owl_components.rst:719 -#: ../../content/developer/reference/frontend/owl_components.rst:835 -#: ../../content/developer/reference/frontend/owl_components.rst:884 +#: ../../content/developer/reference/frontend/owl_components.rst:838 +#: ../../content/developer/reference/frontend/owl_components.rst:887 +#: ../../content/developer/reference/frontend/owl_components.rst:1062 #: ../../content/developer/reference/frontend/services.rst:245 #: ../../content/developer/reference/frontend/services.rst:437 #: ../../content/developer/reference/frontend/services.rst:465 #: ../../content/developer/reference/frontend/services.rst:735 #: ../../content/developer/reference/frontend/services.rst:850 -#: ../../content/developer/tutorials/getting_started/12_sprinkles.rst:186 #: ../../content/developer/tutorials/getting_started/12_sprinkles.rst:187 +#: ../../content/developer/tutorials/getting_started/12_sprinkles.rst:188 msgid "Name" msgstr "" @@ -9263,7 +8588,7 @@ msgstr "" #: ../../content/developer/reference/backend/reports.rst:31 #: ../../content/developer/reference/backend/security.rst:124 -#: ../../content/developer/tutorials/backend.rst:1311 +#: ../../content/developer/tutorials/backend.rst:1312 msgid "``user``" msgstr "" @@ -9280,7 +8605,7 @@ msgid "record for the current ``user``'s company" msgstr "" #: ../../content/developer/reference/backend/reports.rst:35 -#: ../../content/developer/reference/extract_api.rst:470 +#: ../../content/developer/reference/extract_api.rst:452 msgid "``website``" msgstr "" @@ -9321,7 +8646,7 @@ msgid "By default, the rendering context will also expose the following items:" msgstr "" #: ../../content/developer/reference/backend/reports.rst:70 -#: ../../content/developer/tutorials/backend.rst:1308 +#: ../../content/developer/tutorials/backend.rst:1309 msgid "``docs``" msgstr "" @@ -9430,12 +8755,17 @@ msgstr "" msgid "only useful as a mnemonic/description of the report when looking for one in a list of some sort" msgstr "" +#: ../../content/developer/reference/backend/reports.rst:198 +#: ../../content/developer/reference/extract_api.rst:491 +msgid "``description``" +msgstr "" + #: ../../content/developer/reference/backend/reports.rst:199 msgid "a small description of your format" msgstr "" #: ../../content/developer/reference/backend/reports.rst:202 -#: ../../content/developer/reference/backend/views.rst:1423 +#: ../../content/developer/reference/user_interface/view_architecture.rst:3655 msgid "``format``" msgstr "" @@ -9494,11 +8824,11 @@ msgstr "" #: ../../content/developer/reference/backend/reports.rst:217 #: ../../content/developer/reference/backend/reports.rst:285 #: ../../content/developer/reference/backend/reports.rst:295 -#: ../../content/developer/reference/frontend/qweb.rst:576 -#: ../../content/developer/reference/frontend/qweb.rst:598 -#: ../../content/developer/reference/frontend/qweb.rst:635 -#: ../../content/developer/reference/frontend/qweb.rst:666 -#: ../../content/developer/reference/frontend/qweb.rst:706 +#: ../../content/developer/reference/frontend/qweb.rst:523 +#: ../../content/developer/reference/frontend/qweb.rst:545 +#: ../../content/developer/reference/frontend/qweb.rst:582 +#: ../../content/developer/reference/frontend/qweb.rst:613 +#: ../../content/developer/reference/frontend/qweb.rst:653 msgid "Example::" msgstr "" @@ -9839,116 +9169,147 @@ msgid "While formatting the template differently would prevent such vulnerabilit msgstr "" #: ../../content/developer/reference/backend/security.rst:357 -msgid "Escaping vs Sanitizing" +msgid "Creating safe content using :class:`~markupsafe.Markup`" msgstr "" -#: ../../content/developer/reference/backend/security.rst:361 -msgid "Escaping is always 100% mandatory when you mix data and code, no matter how safe the data" +#: ../../content/developer/reference/backend/security.rst:359 +msgid "See the `official documentation `_ for explanations, but the big advantage of :class:`~markupsafe.Markup` is that it's a very rich type overrinding :class:`str` operations to *automatically escape parameters*." msgstr "" #: ../../content/developer/reference/backend/security.rst:364 -msgid "**Escaping** converts *TEXT* to *CODE*. It is absolutely mandatory to do it every time you mix *DATA/TEXT* with *CODE* (e.g. generating HTML or python code to be evaluated inside a `safe_eval`), because *CODE* always requires *TEXT* to be encoded. It is critical for security, but it's also a question of correctness. Even when there is no security risk (because the text is 100% guarantee to be safe or trusted), it is still required (e.g. to avoid breaking the layout in generated HTML)." +msgid "This means that it's easy to create *safe* html snippets by using :class:`~markupsafe.Markup` on a string literal and \"formatting in\" user-provided (and thus potentially unsafe) content:" msgstr "" -#: ../../content/developer/reference/backend/security.rst:372 -msgid "Escaping will never break any feature, as long as the developer identifies which variable contains *TEXT* and which contains *CODE*." +#: ../../content/developer/reference/backend/security.rst:375 +msgid "though it is a very good thing, note that the effects can be odd at times:" msgstr "" #: ../../content/developer/reference/backend/security.rst:388 +msgid "Most of the content-safe APIs actually return a :class:`~markupsafe.Markup` with all that implies." +msgstr "" + +#: ../../content/developer/reference/backend/security.rst:391 +msgid "The :class:`~markupsafe.escape` method (and its alias :class:`~odoo.tools.misc.html_escape`) turns a `str` into a :class:`~markupsafe.Markup` and escapes its content. It will not escape the content of a :class:`~markupsafe.Markup` object." +msgstr "" + +#: ../../content/developer/reference/backend/security.rst:410 +msgid "When generating HTML code, it is important to separate the structure (tags) from the content (text)." +msgstr "" + +#: ../../content/developer/reference/backend/security.rst:437 +msgid "When working with translations, it is especially important to separate the HTML from the text. The translation methods accepts a :class:`~markupsafe.Markup` parameters and will escape the translation if it gets receives at least one." +msgstr "" + +#: ../../content/developer/reference/backend/security.rst:454 +msgid "Escaping vs Sanitizing" +msgstr "" + +#: ../../content/developer/reference/backend/security.rst:458 +msgid "Escaping is always 100% mandatory when you mix data and code, no matter how safe the data" +msgstr "" + +#: ../../content/developer/reference/backend/security.rst:461 +msgid "**Escaping** converts *TEXT* to *CODE*. It is absolutely mandatory to do it every time you mix *DATA/TEXT* with *CODE* (e.g. generating HTML or python code to be evaluated inside a `safe_eval`), because *CODE* always requires *TEXT* to be encoded. It is critical for security, but it's also a question of correctness. Even when there is no security risk (because the text is 100% guarantee to be safe or trusted), it is still required (e.g. to avoid breaking the layout in generated HTML)." +msgstr "" + +#: ../../content/developer/reference/backend/security.rst:469 +msgid "Escaping will never break any feature, as long as the developer identifies which variable contains *TEXT* and which contains *CODE*." +msgstr "" + +#: ../../content/developer/reference/backend/security.rst:485 msgid "**Sanitizing** converts *CODE* to *SAFER CODE* (but not necessary *safe* code). It does not work on *TEXT*. Sanitizing is only necessary when *CODE* is untrusted, because it comes in full or in part from some user-provided data. If the user-provided data is in the form of *TEXT* (e.g. the content from a form filled by a user), and if that data was correctly escaped before putting it in *CODE*, then sanitizing is useless (but can still be done). If however, the user-provided data was **not escaped**, then sanitizing will **not** work as expected." msgstr "" -#: ../../content/developer/reference/backend/security.rst:407 +#: ../../content/developer/reference/backend/security.rst:504 msgid "Sanitizing can break features, depending on whether the *CODE* is expected to contain patterns that are not safe. That's why `fields.Html` and `tools.html_sanitize()` have options to fine-tune the level of sanitization for styles, etc. Those options have to be carefully considered depending on where the data comes from, and the desired features. The sanitization safety is balanced against sanitization breakages: the safer the sanitisation the more likely it is to break things." msgstr "" -#: ../../content/developer/reference/backend/security.rst:424 +#: ../../content/developer/reference/backend/security.rst:521 msgid "Evaluating content" msgstr "" -#: ../../content/developer/reference/backend/security.rst:426 +#: ../../content/developer/reference/backend/security.rst:523 msgid "Some may want to ``eval`` to parse user provided content. Using ``eval`` should be avoided at all cost. A safer, sandboxed, method :class:`~odoo.tools.safe_eval` can be used instead but still gives tremendous capabilities to the user running it and must be reserved for trusted privileged users only as it breaks the barrier between code and data." msgstr "" -#: ../../content/developer/reference/backend/security.rst:448 +#: ../../content/developer/reference/backend/security.rst:545 msgid "Parsing content does not need ``eval``" msgstr "" -#: ../../content/developer/reference/backend/security.rst:451 +#: ../../content/developer/reference/backend/security.rst:548 msgid "Language" msgstr "" -#: ../../content/developer/reference/backend/security.rst:451 +#: ../../content/developer/reference/backend/security.rst:548 msgid "Data type" msgstr "" -#: ../../content/developer/reference/backend/security.rst:451 +#: ../../content/developer/reference/backend/security.rst:548 msgid "Suitable parser" msgstr "" -#: ../../content/developer/reference/backend/security.rst:453 -#: ../../content/developer/reference/backend/security.rst:455 +#: ../../content/developer/reference/backend/security.rst:550 +#: ../../content/developer/reference/backend/security.rst:552 #: ../../content/developer/reference/backend/testing.rst:715 -#: ../../content/developer/reference/frontend/qweb.rst:353 -#: ../../content/developer/reference/frontend/qweb.rst:467 +#: ../../content/developer/reference/frontend/qweb.rst:352 +#: ../../content/developer/reference/frontend/qweb.rst:414 #: ../../content/developer/tutorials/getting_started/11_constraints.rst:69 msgid "Python" msgstr "" -#: ../../content/developer/reference/backend/security.rst:453 -#: ../../content/developer/reference/backend/security.rst:454 +#: ../../content/developer/reference/backend/security.rst:550 +#: ../../content/developer/reference/backend/security.rst:551 msgid "int, float, etc." msgstr "" -#: ../../content/developer/reference/backend/security.rst:453 +#: ../../content/developer/reference/backend/security.rst:550 msgid "int(), float()" msgstr "" -#: ../../content/developer/reference/backend/security.rst:454 -#: ../../content/developer/reference/backend/security.rst:456 +#: ../../content/developer/reference/backend/security.rst:551 +#: ../../content/developer/reference/backend/security.rst:553 #: ../../content/developer/reference/backend/testing.rst:582 -#: ../../content/developer/reference/frontend/qweb.rst:410 -#: ../../content/developer/reference/frontend/qweb.rst:804 +#: ../../content/developer/reference/frontend/qweb.rst:751 msgid "Javascript" msgstr "" -#: ../../content/developer/reference/backend/security.rst:454 +#: ../../content/developer/reference/backend/security.rst:551 msgid "parseInt(), parseFloat()" msgstr "" -#: ../../content/developer/reference/backend/security.rst:455 +#: ../../content/developer/reference/backend/security.rst:552 msgid "dict" msgstr "" -#: ../../content/developer/reference/backend/security.rst:455 +#: ../../content/developer/reference/backend/security.rst:552 msgid "json.loads(), ast.literal_eval()" msgstr "" -#: ../../content/developer/reference/backend/security.rst:456 +#: ../../content/developer/reference/backend/security.rst:553 msgid "object, list, etc." msgstr "" -#: ../../content/developer/reference/backend/security.rst:456 +#: ../../content/developer/reference/backend/security.rst:553 msgid "JSON.parse()" msgstr "" -#: ../../content/developer/reference/backend/security.rst:460 +#: ../../content/developer/reference/backend/security.rst:557 msgid "Accessing object attributes" msgstr "" -#: ../../content/developer/reference/backend/security.rst:462 +#: ../../content/developer/reference/backend/security.rst:559 msgid "If the values of a record needs to be retrieved or modified dynamically, one may want to use the ``getattr`` and ``setattr`` methods." msgstr "" -#: ../../content/developer/reference/backend/security.rst:472 +#: ../../content/developer/reference/backend/security.rst:569 msgid "This code is however not safe as it allows to access any property of the record, including private attributes or methods." msgstr "" -#: ../../content/developer/reference/backend/security.rst:475 +#: ../../content/developer/reference/backend/security.rst:572 msgid "The ``__getitem__`` of a recordset has been defined and accessing a dynamic field value can be easily achieved safely:" msgstr "" -#: ../../content/developer/reference/backend/security.rst:485 +#: ../../content/developer/reference/backend/security.rst:582 msgid "The above method is obviously still too optimistic and additional verifications on the record id and field value must be done." msgstr "" @@ -10001,7 +9362,7 @@ msgid "By default, tests are run once right after the corresponding module has b msgstr "" #: ../../content/developer/reference/backend/testing.rst:74 -msgid "The most common situation is to use :class:`~odoo.tests.common.TransactionCase` and test a property of a model in each method::" +msgid "The most common situation is to use :class:`~odoo.tests.TransactionCase` and test a property of a model in each method::" msgstr "" #: ../../content/developer/reference/backend/testing.rst:90 @@ -10025,7 +9386,7 @@ msgid "In Odoo, Python tests can be tagged to facilitate the test selection when msgstr "" #: ../../content/developer/reference/backend/testing.rst:118 -msgid "Subclasses of :class:`odoo.tests.common.BaseCase` (usually through :class:`~odoo.tests.common.TransactionCase` or :class:`~odoo.tests.common.HttpCase`) are automatically tagged with ``standard`` and ``at_install`` by default." +msgid "Subclasses of :class:`odoo.tests.BaseCase` (usually through :class:`~odoo.tests.TransactionCase` or :class:`~odoo.tests.HttpCase`) are automatically tagged with ``standard`` and ``at_install`` by default." msgstr "" #: ../../content/developer/reference/backend/testing.rst:124 @@ -10041,7 +9402,7 @@ msgid "This option defaults to ``+standard`` meaning tests tagged ``standard`` ( msgstr "" #: ../../content/developer/reference/backend/testing.rst:135 -msgid "When writing tests, the :func:`~odoo.tests.common.tagged` decorator can be used on **test classes** to add or remove tags." +msgid "When writing tests, the :func:`~odoo.tests.tagged` decorator can be used on **test classes** to add or remove tags." msgstr "" #: ../../content/developer/reference/backend/testing.rst:138 @@ -10049,7 +9410,7 @@ msgid "The decorator's arguments are tag names, as strings." msgstr "" #: ../../content/developer/reference/backend/testing.rst:140 -msgid ":func:`~odoo.tests.common.tagged` is a class decorator, it has no effect on functions or methods" +msgid ":func:`~odoo.tests.tagged` is a class decorator, it has no effect on functions or methods" msgstr "" #: ../../content/developer/reference/backend/testing.rst:143 @@ -10069,7 +9430,7 @@ msgid "The config switch parameter also accepts the ``+`` and ``-`` prefixes. Th msgstr "" #: ../../content/developer/reference/backend/testing.rst:182 -msgid "When you write a test that does not inherit from the :class:`~odoo.tests.common.BaseCase`, this test will not have the default tags, you have to add them explicitly to have the test included in the default test suite. This is a common issue when using a simple ``unittest.TestCase`` as they're not going to get run:" +msgid "When you write a test that does not inherit from the :class:`~odoo.tests.BaseCase`, this test will not have the default tags, you have to add them explicitly to have the test included in the default test suite. This is a common issue when using a simple ``unittest.TestCase`` as they're not going to get run:" msgstr "" #: ../../content/developer/reference/backend/testing.rst:197 @@ -10097,7 +9458,7 @@ msgid "Special tags" msgstr "" #: ../../content/developer/reference/backend/testing.rst:232 -msgid "``standard``: All Odoo tests that inherit from :class:`~odoo.tests.common.BaseCase` are implicitly tagged standard. :option:`--test-tags ` also defaults to ``standard``." +msgid "``standard``: All Odoo tests that inherit from :class:`~odoo.tests.BaseCase` are implicitly tagged standard. :option:`--test-tags ` also defaults to ``standard``." msgstr "" #: ../../content/developer/reference/backend/testing.rst:236 @@ -10350,7 +9711,7 @@ msgid "when working on a failing test, it is common to add the debug flag, then msgstr "" #: ../../content/developer/reference/backend/testing.rst:534 -#: ../../content/developer/reference/extract_api.rst:731 +#: ../../content/developer/reference/extract_api.rst:523 msgid "Integration Testing" msgstr "" @@ -10395,7 +9756,7 @@ msgid "Add any step you want." msgstr "" #: ../../content/developer/reference/backend/testing.rst:599 -msgid "Every step contains at least a trigger. You can either use the `predefined steps `_ or write your own personalized step." +msgid "Every step contains at least a trigger. You can either use the `predefined steps `_ or write your own personalized step." msgstr "" #: ../../content/developer/reference/backend/testing.rst:603 @@ -10531,7 +9892,7 @@ msgid "`jQuery documentation about find `_" msgstr "" #: ../../content/developer/reference/backend/testing.rst:717 -msgid "To start a tour from a python test, make the class inherit from :class:`~odoo.tests.common.HTTPCase`, and call `start_tour`:" +msgid "To start a tour from a python test, make the class inherit from :class:`~odoo.tests.HTTPCase`, and call `start_tour`:" msgstr "" #: ../../content/developer/reference/backend/testing.rst:728 @@ -10729,3328 +10090,7 @@ msgid "Query counts" msgstr "" #: ../../content/developer/reference/backend/testing.rst:859 -msgid "One of the ways to test performance is to measure database queries. Manually, this can be tested with the `--log-sql` CLI parameter. If you want to establish the maximum number of queries for an operation, you can use the :meth:`~odoo.tests.common.BaseCase.assertQueryCount` method, integrated in Odoo test classes." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:8 -msgid "Views are what define how records should be displayed to end-users. They are specified in XML which means that they can be edited independently from the models that they represent. They are flexible and allow a high level of customization of the screens that they control. There exist various types of views. Each of them represents a mode of visualization: *form*, *list*, *kanban*, etc." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:13 -msgid "Build doc of ir_ui_view.py ?" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:18 -#: ../../content/developer/reference/backend/views.rst:775 -msgid "Generic structure" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:20 -msgid "Basic views generally share the common structure defined below. Placeholders are denoted in all caps." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:38 -msgid "View objects expose a number of fields. They are optional unless specified otherwise." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:40 -msgid "``name`` (mandatory) :class:`~odoo.fields.Char`" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:42 -msgid "Only useful as a mnemonic/description of the view when looking for one in a list of some sort." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:44 -msgid "``model`` :class:`~odoo.fields.Char`" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:46 -msgid "The model linked to the view, if applicable." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:48 -msgid "``priority`` :class:`~odoo.fields.Integer`" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:50 -msgid "When a view is requested by ``(model, type)``, the view matching the model and the type, with the lowest priority will be returned (it is the default view)." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:53 -msgid "It also defines the order of views application during :ref:`view inheritance `." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:56 -msgid "``groups_id`` :class:`~odoo.fields.Many2many` -> :class:`odoo.addons.base.models.res_users.Groups`" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:58 -msgid "The groups allowed to use/access the current view." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:60 -msgid "If the view extends an existing view, the extension will only be applied for a given user if the user has access to the provided ``groups_id``." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:63 -msgid "``arch`` :class:`~odoo.fields.Text`" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:65 -msgid "The description of the view layout." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:68 -#: ../../content/developer/reference/backend/views.rst:345 -#: ../../content/developer/tutorials/getting_started/08_relations.rst:71 -#: ../../content/developer/tutorials/getting_started/08_relations.rst:178 -#: ../../content/developer/tutorials/getting_started/08_relations.rst:241 -msgid "Attributes" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:72 -msgid "view attributes & view element attributes attrs & states attributes are missing generic information" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:75 -msgid "The different view types have a wide variety of attributes allowing customizations of the generic behaviors. Some main attributes will be explained here. They do not all have an impact on all view types." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:79 -msgid "The current context and user access rights may also impact the view abilities." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:81 -msgid "info on create/... in the context ?" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:83 -#: ../../content/developer/reference/backend/views.rst:1920 -msgid "``create``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:85 -msgid "Disable/enable record creation on the view." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:87 -msgid "``edit`` (``form`` & ``list`` & ``gantt``)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:89 -msgid "Disable/enable record editing on the view." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:91 -msgid "``delete`` (``form`` & ``list``)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:93 -msgid "Disable/enable record deletion on the view through the **Action** dropdown." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:95 -msgid "``duplicate`` (``form``)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:97 -msgid "Disable/enable record duplication on the view through the **Action** dropdown." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:99 -msgid "``decoration-{$name}`` (``list`` & ``gantt``)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:101 -msgid "Define a conditional display of a record in the style of a row's text based on the corresponding record's attributes." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:104 -#: ../../content/developer/reference/backend/views.rst:966 -#: ../../content/developer/tutorials/backend.rst:857 -msgid "Values are Python expressions. For each record, the expression is evaluated with the record's attributes as context values and if ``true``, the corresponding style is applied to the row. Here are some of the other values available in the context:" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:109 -#: ../../content/developer/reference/backend/views.rst:971 -#: ../../content/developer/tutorials/backend.rst:862 -msgid "``uid``: the id of the current user," -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:110 -#: ../../content/developer/reference/backend/views.rst:972 -#: ../../content/developer/tutorials/backend.rst:863 -msgid "``today``: the current local date as a string of the form ``YYYY-MM-DD``," -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:111 -#: ../../content/developer/reference/backend/views.rst:973 -#: ../../content/developer/tutorials/backend.rst:864 -msgid "``now``: same as ``today`` with the addition of the current time. This value is formatted as ``YYYY-MM-DD hh:mm:ss``." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:123 -msgid "Supported values differ for the two view types. The Gantt view only supports ``success``, ``info``, ``warning``, ``danger`` and ``secondary`` displays. The list view supports ``bf``, ``it``, ``success``, ``info``, ``warning``, ``danger``, ``muted`` and ``primary`` displays." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:127 -msgid "``sample`` (``kanban`` & ``list`` & ``gantt`` & ``graph`` & ``pivot`` & ``cohort``)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:129 -msgid "Populate the view with a set of sample records if none are found for the current model. This attribute is false by default." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:132 -msgid "These fake records will have heuristics for certain field names/models. For example, a field 'display_name' on the model 'res.users' will be populated with sample people names while an 'email' field will be in the form 'firstname.lastname@sample.demo'." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:136 -msgid "The user will not be able to interact with these data and they will be discarded as soon as an action is performed (record created, column added, etc.)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:139 -msgid "``banner_route`` a route address to be fetched and prepended to the view." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:142 -msgid "If this attribute is set, the :ref:`controller route url` will be fetched and displayed above the view. The json response from the controller should contain an \"html\" key." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:147 -msgid "If the html contains a stylesheet tag, it will be removed and appended to ." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:150 -msgid "To interact with the backend you can use tags. Please take a look at the documentation of the _onActionClicked method of AbstractController (*addons/web/static/src/js/views/abstract_controller.js*) for more details." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:155 -msgid "Only views extending AbstractView and AbstractController can use this attribute, like :ref:`reference/views/form`, :ref:`reference/views/kanban`, :ref:`reference/views/list`, ..." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:159 -#: ../../content/developer/reference/backend/views.rst:2236 -#: ../../content/developer/reference/backend/views.rst:2302 -#: ../../content/developer/reference/frontend/framework_overview.rst:331 -#: ../../content/developer/reference/frontend/registries.rst:292 -msgid "Example:" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:179 -msgid "Views main content section, with field, group & separator ?" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:184 -#: ../../content/developer/reference/frontend/javascript_reference.rst:196 -#: ../../content/developer/tutorials/backend.rst:520 -msgid "Inheritance" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:187 -msgid "Inheritance fields" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:189 -msgid "The two following :class:`~odoo.addons.base.ir_ui_view.View` fields are used to specify inherited views." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:192 -msgid "``inherit_id`` :class:`~odoo.fields.Many2one`" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:194 -msgid "the current view's parent view, unset by default. Specify the parent using the `ref` attribute:" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:201 -msgid "``mode`` :class:`~odoo.fields.Selection`: `extension / primary`" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:203 -msgid "inheritance mode, ``extension`` by default if ``inherit_id`` is set, ``primary`` otherwise." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:206 -msgid "An example of where you would want to override ``mode`` while using ``inherit_id`` is delegation inheritance. In that case your derived model will be separate from its parent and views matching with one won't match with the other. Suppose you inherit from a view associated with the parent model and want to customize the derived view to show data from the derived model. The ``mode`` of the derived view needs to be set to ``primary``, because it's the base (and maybe only) view for that derived model. Otherwise the :ref:`view matching ` rules won't apply." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:219 -msgid "View matching" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:221 -msgid "if a view is requested by ``(model, type)``, the view with the right model and type, ``mode=primary`` and the lowest priority is matched." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:223 -msgid "when a view is requested by ``id``, if its mode is not ``primary`` its *closest* parent with mode ``primary`` is matched." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:227 -msgid "View resolution" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:229 -msgid "Resolution generates the final ``arch`` for a requested/matched ``primary`` view:" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:232 -msgid "if the view has a parent, the parent is fully resolved then the current view's inheritance specs are applied" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:234 -msgid "if the view has no parent, its ``arch`` is used as-is" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:235 -msgid "the current view's children with mode ``extension`` are looked up and their inheritance specs are applied depth-first (a child view is applied, then its children, then its siblings)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:239 -msgid "The result of applying children views yields the final ``arch``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:241 -msgid "NOTE on fields_view_get and link to ORM ?" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:244 -msgid "Inheritance specs" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:246 -msgid "Inheritance specs are comprised of an element locator, to match the inherited element in the parent view, and children element that will be used to modify the inherited element." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:250 -msgid "There are three types of element locators for matching a target element:" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:252 -msgid "An ``xpath`` element with an ``expr`` attribute. ``expr`` is an XPath_ expression\\ [#hasclass]_ applied to the current ``arch``, the first node it finds is the match" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:255 -msgid "a ``field`` element with a ``name`` attribute, matches the first ``field`` with the same ``name``. All other attributes are ignored during matching" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:257 -msgid "any other element: the first element with the same name and identical attributes (ignoring ``position`` and ``version`` attributes) is matched" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:274 -msgid "The inheritance spec may have an optional ``position`` attribute specifying how the matched node should be altered:" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:279 -msgid "``inside`` (default)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:280 -msgid "the content of the inheritance spec is appended to the matched node" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:284 -#: ../../content/developer/reference/frontend/qweb.rst:903 -#: ../../content/developer/tutorials/backend.rst:584 -#: ../../content/developer/tutorials/getting_started/13_inheritance.rst:212 -msgid "``replace``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:282 -msgid "the content of the inheritance spec replaces the matched node. Any text node containing only ``$0`` within the contents of the spec will be replaced by a complete copy of the matched node, effectively wrapping the matched node." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:287 -#: ../../content/developer/reference/frontend/qweb.rst:899 -#: ../../content/developer/tutorials/backend.rst:588 -#: ../../content/developer/tutorials/getting_started/13_inheritance.rst:216 -msgid "``after``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:287 -msgid "the content of the inheritance spec is added to the matched node's parent, after the matched node" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:290 -#: ../../content/developer/reference/frontend/qweb.rst:897 -#: ../../content/developer/tutorials/backend.rst:586 -#: ../../content/developer/tutorials/getting_started/13_inheritance.rst:214 -msgid "``before``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:290 -msgid "the content of the inheritance spec is added to the matched node's parent, before the matched node" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:315 -#: ../../content/developer/reference/frontend/qweb.rst:908 -#: ../../content/developer/tutorials/backend.rst:592 -#: ../../content/developer/tutorials/getting_started/13_inheritance.rst:220 -msgid "``attributes``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:293 -msgid "the content of the inheritance spec should be ``attribute`` elements with a ``name`` attribute and an optional body:" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:296 -msgid "if the ``attribute`` element has a body, a new attributed named after its ``name`` is created on the matched node with the ``attribute`` element's text as value" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:299 -msgid "if the ``attribute`` element has no body, the attribute named after its ``name`` is removed from the matched node. If no such attribute exists, an error is raised" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:302 -msgid "if the ``attribute`` element has an ``add`` attribute, a ``remove`` attribute, or both, the value of the matched node's attribute named after ``name`` is recomputed to include the value(s) of ``add`` (separated by ``separator``) and delete the value(s) of ``remove`` (separated by ``separator``). If ``separator`` is not provided, ``,`` is used instead." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:331 -msgid "``move``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:318 -msgid "can be used as a direct child of a inheritance spec with a ``inside``, ``replace``, ``after`` or ``before`` ``position`` attribute to move a node." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:333 -msgid "A view's specs are applied sequentially." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:335 -msgid "an extension function is added for simpler matching in QWeb views: ``hasclass(*classes)`` matches if the context node has all the specified classes" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:340 -msgid "Model Commons" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:350 -#: ../../content/developer/reference/frontend/mobile.rst:61 -msgid "Methods" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:358 -msgid "View types" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:363 -msgid "Activity" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:365 -msgid "The Activity view is used to display the activities linked to the records. The data are displayed in a chart with the records forming the rows and the activity types the columns. The first cell of each row displays a (customizable, see ``templates``, quite similarly to :ref:`reference/views/kanban`) card representing the corresponding record. When clicking on others cells, a detailed description of all activities of the same type for the record is displayed." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:374 -msgid "The Activity view is only available when the ``mail`` module is installed, and for the models that inherit from the ``mail.activity.mixin``." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:377 -msgid "The root element of the Activity view is ````, it accepts the following attributes:" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:383 -#: ../../content/developer/reference/backend/views.rst:535 -msgid "``string`` (mandatory)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:383 -#: ../../content/developer/reference/backend/views.rst:535 -msgid "A title, which should describe the view" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:385 -#: ../../content/developer/reference/backend/views.rst:1502 -msgid "Possible children of the view element are:" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:390 -msgid "declares fields to use in activity *logic*. If the field is simply displayed in the activity view, it does not need to be pre-declared." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:393 -#: ../../content/developer/reference/backend/views.rst:1510 -#: ../../content/developer/reference/backend/views.rst:1526 -msgid "Possible attributes are:" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:398 -#: ../../content/developer/reference/backend/views.rst:1515 -msgid "``name`` (required)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:398 -#: ../../content/developer/reference/backend/views.rst:1515 -msgid "the name of the field to fetch" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:418 -#: ../../content/developer/reference/backend/views.rst:1083 -#: ../../content/developer/reference/backend/views.rst:1621 -msgid "``templates``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:401 -msgid "defines the :ref:`reference/qweb` templates. Cards definition may be split into multiple templates for clarity, but activity views *must* define at least one root template ``activity-box``, which will be rendered once for each record." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:406 -msgid "The activity view uses mostly-standard :ref:`javascript qweb ` and provides the following context variables (see :ref:`reference/views/kanban` for more details):" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:414 -#: ../../content/developer/reference/backend/views.rst:685 -#: ../../content/developer/reference/backend/views.rst:1079 -#: ../../content/developer/reference/backend/views.rst:1561 -#: ../../content/developer/reference/backend/views.rst:1786 -msgid "``widget``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:413 -msgid "the current :js:class:`ActivityRecord`, can be used to fetch some meta-information. These methods are also available directly in the template context and don't need to be accessed via ``widget``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:417 -msgid "an object with all the requested fields as its attributes. Each field has two attributes ``value`` and ``raw_value``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:423 -msgid "Calendar" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:425 -msgid "Calendar views display records as events in a daily, weekly, monthly or yearly calendar." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:428 -msgid "By default the calendar view will be centered around the current date (today). You can pass a specific initial date to the context of the action in order to set the initial focus of the calendar on the period (see `mode`) around this date (the context key to use being `initial_date`)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:433 -msgid "Their root element is ````. Available attributes on the calendar view are:" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:438 -#: ../../content/developer/reference/backend/views.rst:946 -msgid "``date_start`` (required)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:439 -msgid "name of the record's field holding the start date for the event" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:442 -msgid "``date_stop``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:441 -msgid "name of the record's field holding the end date for the event, if ``date_stop`` is provided records become movable (via drag and drop) directly in the calendar" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:445 -msgid "``date_delay``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:445 -msgid "alternative to ``date_stop``, provides the duration of the event instead of its end date (unit: day)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:450 -#: ../../content/developer/reference/backend/views.rst:960 -#: ../../content/developer/reference/backend/views.rst:2397 -#: ../../content/developer/tutorials/backend.rst:900 -msgid "``color``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:448 -msgid "name of a record field to use for *color segmentation*. Records in the same color segment are allocated the same highlight color in the calendar, colors are allocated semi-randomly. Displayed the display_name/avatar of the visible record in the sidebar" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:454 -#: ../../content/developer/reference/backend/views.rst:1088 -msgid "``form_view_id``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:453 -msgid "view to open when the user create or edit an event. Note that if this attribute is not set, the calendar view will fall back to the id of the form view in the current action, if any." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:458 -msgid "``event_open_popup``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:457 -msgid "If the option 'event_open_popup' is set to true, then the calendar view will open events (or records) in a FormViewDialog. Otherwise, it will open events in a new form view (with a do_action)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:463 -msgid "``quick_add``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:461 -msgid "enables quick-event creation on click: only asks the user for a ``name`` (the field to which this values is saved can be controlled through ``rec_name``) and tries to create a new event with just that and the clicked event time. Falls back to a full form dialog if the quick creation fails" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:466 -msgid "``create_name_field``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:466 -msgid "name of the record's field holding the textual representation of the record, this is used when creating records through the 'quick create' mechanism" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:469 -msgid "``all_day``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:469 -msgid "name of a boolean field on the record indicating whether the corresponding event is flagged as day-long (and duration is irrelevant)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:472 -#: ../../content/developer/reference/backend/views.rst:736 -msgid "``mode``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:472 -msgid "Default display mode when loading the calendar. Possible attributes are: ``day``, ``week``, ``month``, ``year``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:475 -#: ../../content/developer/reference/backend/views.rst:1065 -msgid "``scales``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:475 -msgid "Comma-separated list of scales to provide. By default, all scales are available. See mode for possible scale values." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:478 -msgid "``create``, ``delete``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:478 -msgid "allows disabling the corresponding action in the view by setting the corresponding attribute to ``false``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:499 -msgid "````" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:481 -msgid "declares fields to aggregate or to use in kanban *logic*. If the field is simply displayed in the calendar cards." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:484 -msgid "Fields can have additional attributes:" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:488 -#: ../../content/developer/reference/backend/views.rst:1772 -msgid "``invisible``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:489 -msgid "use \"True\" to hide the value in the cards" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:491 -msgid "``avatar_field``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:491 -msgid "only for x2many field, to display the avatar instead of the display_name in the cards" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:495 -msgid "``write_model`` and ``write_field`` and ``filter_field``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:494 -msgid "you can add a filter and save the result in the defined model, the filter is added in the sidebar. The ``filter_field`` is optional and allows you to specify the field that will hold the status of the filter." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:499 -msgid "``filters`` and ``color``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:498 -msgid "use \"True\" to add this field in filter in the sidebar. You can specify a ``color`` field used to colorize the checkbox." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:504 -msgid "Cohort" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:510 -msgid "The cohort view is used to display and understand the way some data changes over a period of time. For example, imagine that for a given business, clients can subscribe to some service. The cohort view can then display the total number of subscriptions each month, and study the rate at which client leave the service (churn). When clicking on a cell, the cohort view will redirect you to a new action in which you will only see the records contained in the cell's time interval; this action contains a list view and a form view." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:518 -msgid "By default the cohort view will use the same list and form views as those defined on the action. You can pass a list view and a form view to the context of the action in order to set/override the views that will be used (the context keys to use being `form_view_id` and `list_view_id`)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:523 -msgid "For example, here is a very simple cohort view:" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:529 -msgid "The root element of the Cohort view is , it accepts the following attributes:" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:539 -msgid "``date_start`` (mandatory)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:538 -msgid "A valid date or datetime field. This field is understood by the view as the beginning date of a record" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:543 -msgid "``date_stop`` (mandatory)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:542 -msgid "A valid date or datetime field. This field is understood by the view as the end date of a record. This is the field that will determine the churn." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:548 -msgid "``mode`` (optional)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:546 -msgid "A string to describe the mode. It should be either 'churn' or 'retention' (default). Churn mode will start at 0% and accumulate over time whereas retention will start at 100% and decrease over time." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:554 -msgid "``timeline`` (optional)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:551 -msgid "A string to describe the timeline. It should be either 'backward' or 'forward' (default). Forward timeline will display data from date_start to date_stop, whereas backward timeline will display data from date_stop to date_start (when the date_start is in future / greater than date_stop)." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:558 -#: ../../content/developer/reference/backend/views.rst:1169 -msgid "``interval`` (optional)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:557 -msgid "A string to describe a time interval. It should be 'day', 'week', 'month'' (default) or 'year'." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:562 -msgid "``measure`` (optional)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:561 -msgid "A field that can be aggregated. This field will be used to compute the values for each cell. If not set, the cohort view will count the number of occurrences." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:578 -msgid "```` (optional)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:565 -msgid "allows to specify a particular field in order to manage it from the available measures, it's main use is for hiding a field from the selectable measures:" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:571 -msgid "the name of the field to use in the view." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:573 -#: ../../content/developer/reference/backend/views.rst:891 -#: ../../content/developer/reference/backend/views.rst:1144 -#: ../../content/developer/reference/backend/views.rst:1174 -#: ../../content/developer/reference/backend/views.rst:2052 -msgid "``string`` (optional)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:573 -msgid "the name that would be used to display the field in the cohort view, overrides the default python String attribute of the field." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:578 -#: ../../content/developer/reference/backend/views.rst:1157 -#: ../../content/developer/reference/backend/views.rst:2074 -msgid "``invisible`` (optional)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:576 -#: ../../content/developer/reference/backend/views.rst:2072 -msgid "if true, the field will not appear either in the active measures nor in the selectable measures (useful for fields that do not make sense aggregated, such as fields in different units, e.g. ā‚¬ and $)." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:583 -#: ../../content/developer/tutorials/getting_started/07_basicviews.rst:72 -#: ../../content/developer/tutorials/getting_started/12_sprinkles.rst:234 -msgid "Form" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:585 -msgid "Form views are used to display the data from a single record. Their root element is ``
``. They are composed of regular HTML_ with additional structural and semantic components." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:590 -#: ../../content/developer/reference/backend/views.rst:1977 -msgid "Structural components" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:592 -msgid "Structural components provide structure or \"visual\" features with little logic. They are used as elements or sets of elements in form views." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:610 -msgid "``notebook``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:598 -msgid "defines a tabbed section. Each tab is defined through a ``page`` child element. Pages can have the following attributes:" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:603 -#: ../../content/developer/reference/backend/views.rst:1913 -#: ../../content/developer/reference/backend/views.rst:2223 -msgid "``string`` (required)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:604 -msgid "the title of the tab" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:605 -msgid "``accesskey``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:606 -msgid "an HTML accesskey_" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:608 -#: ../../content/developer/reference/backend/views.rst:714 -#: ../../content/developer/reference/backend/views.rst:772 -#: ../../content/developer/reference/backend/views.rst:1739 -#: ../../content/developer/reference/backend/views.rst:1795 -msgid "``attrs``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:608 -msgid "standard dynamic attributes based on record values" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:610 -msgid "Note that ``notebook`` should not be placed within ``group``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:625 -#: ../../content/developer/reference/backend/views.rst:2356 -msgid "``group``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:613 -msgid "used to define column layouts in forms. By default, groups define 2 columns and most direct children of groups take a single column. ``field`` direct children of groups display a label by default, and the label and the field itself have a colspan of 1 each." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:618 -msgid "The number of columns in a ``group`` can be customized using the ``col`` attribute, the number of columns taken by an element can be customized using ``colspan``." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:622 -msgid "Children are laid out horizontally (tries to fill the next column before changing row)." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:625 -msgid "Groups can have a ``string`` attribute, which is displayed as the group's title" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:629 -msgid "``newline``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:628 -msgid "only useful within ``group`` elements, ends the current row early and immediately switches to a new row (without filling any remaining column beforehand)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:632 -#: ../../content/developer/reference/backend/views.rst:2352 -msgid "``separator``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:632 -msgid "small horizontal spacing, with a ``string`` attribute behaves as a section title" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:635 -msgid "``sheet``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:635 -msgid "can be used as a direct child to ``form`` for a narrower and more responsive form layout" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:639 -#: ../../content/developer/reference/backend/views.rst:1889 -msgid "``header``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:638 -msgid "combined with ``sheet``, provides a full-width location above the sheet itself, generally used to display workflow buttons and status widgets" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:642 -msgid "Semantic components" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:644 -msgid "Semantic components tie into and allow interaction with the Odoo system. Available semantic components are:" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:661 -#: ../../content/developer/reference/backend/views.rst:1756 -#: ../../content/developer/reference/backend/views.rst:1889 -msgid "``button``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:650 -msgid "call into the Odoo system, similar to :ref:`list view buttons `. In addition, the following attribute can be specified:" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:657 -msgid "``special``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:657 -msgid "for form views opened in dialogs: ``save`` to save the record and close the dialog, ``cancel`` to close the dialog without saving." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:661 -msgid "``confirm``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:660 -msgid "confirmation message to display (and for the user to accept) before performing the button's Odoo call (also works in Kanban views)." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:664 -msgid "renders (and allow editing of, possibly) a single field of the current record. Using several times a field in a form view is supported and the fields can receive different values for modifiers 'invisible' and 'readonly'. However, the behavior is not guaranteed when several fields exist with different values for modifier 'required'. Possible attributes of the field node are:" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:673 -msgid "the name of the field to render" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:675 -msgid "the node id. Useful when there are several occurrences of the same field in the view (see ``label`` component below). Default is the field name." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:678 -msgid "fields have a default rendering based on their type (e.g. :class:`~odoo.fields.Char`, :class:`~odoo.fields.Many2one`). The ``widget`` attributes allows using a different rendering method and context." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:683 -msgid "list of widgets" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:685 -msgid "& options & specific attributes (e.g. widget=statusbar statusbar_visible clickable)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:688 -msgid "``options``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:688 -msgid "JSON object specifying configuration option for the field's widget (including default widgets)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:702 -#: ../../content/developer/reference/backend/views.rst:768 -#: ../../content/developer/reference/backend/views.rst:1472 -msgid "``class``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:691 -msgid "HTML class to set on the generated element, common field classes are:" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:695 -msgid "``oe_inline``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:696 -msgid "prevent the usual line break following fields and limit their span." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:697 -msgid "``oe_left``, ``oe_right``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:698 -msgid "floats_ the field to the corresponding direction" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:699 -msgid "``oe_read_only``, ``oe_edit_only``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:700 -msgid "only displays the field in the corresponding form mode" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:702 -msgid "``oe_avatar``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:702 -msgid "for image fields, displays images as \"avatar\" (square, 90x90 maximum size, some image decorations)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:705 -msgid "only displays the field for specific users" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:712 -msgid "``on_change``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:707 -msgid "calls the specified method when this field's value is edited, can generate update other fields or display warnings for the user" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:712 -msgid "Use :func:`odoo.api.onchange` on the model" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:715 -msgid "dynamic meta-parameters based on record values" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:717 -#: ../../content/developer/reference/backend/views.rst:1353 -#: ../../content/developer/reference/backend/views.rst:1402 -#: ../../content/developer/reference/backend/views.rst:1415 -#: ../../content/developer/reference/backend/views.rst:2130 -#: ../../content/developer/reference/backend/views.rst:2211 -#: ../../content/developer/tutorials/backend.rst:931 -msgid "``domain``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:717 -msgid "for relational fields only, filters to apply when displaying existing records for selection" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:720 -msgid "for relational fields only, context to pass when fetching possible values" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:722 -msgid "``readonly``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:722 -msgid "display the field in both readonly and edit mode, but never make it editable" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:725 -msgid "``required``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:725 -msgid "generates an error and prevents saving the record if the field doesn't have a value" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:728 -#: ../../content/developer/reference/backend/views.rst:1812 -msgid "``nolabel``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:728 -msgid "don't automatically display the field's label, only makes sense if the field is a direct child of a ``group`` element" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:732 -msgid "``placeholder``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:731 -msgid "help message to display in *empty* fields. Can replace field labels in complex forms. *Should not* be an example of data as users are liable to confuse placeholder text with filled fields" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:735 -msgid "for :class:`~odoo.fields.One2many`, display mode (view type) to use for the field's linked records. One of ``tree``, ``form``, ``kanban`` or ``graph``. The default is ``tree`` (a list display)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:738 -#: ../../content/developer/reference/backend/views.rst:2318 -msgid "``help``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:739 -msgid "tooltip displayed for users when hovering the field or its label" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:741 -msgid "``filename``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:741 -msgid "for binary fields, name of the related field providing the name of the file" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:744 -msgid "``password``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:744 -msgid "indicates that a :class:`~odoo.fields.Char` field stores a password and that its data shouldn't be displayed" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:748 -msgid "``kanban_view_ref``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:747 -msgid "for opening specific kanban view when selecting records from m2o/m2m in mobile environment" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:772 -msgid "``label``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:751 -msgid "when a ``field`` component isn't placed directly inside a ``group``, or when its ``nolabel`` attribute is set, the field's label isn't automatically displayed alongside its value. The ``label`` component is the manual alternative of displaying the label of a field. Possible attributes are:" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:763 -msgid "``for`` (mandatory)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:759 -msgid "the reference to the field associated with the label. Can be either the name of a field, or its id (``id`` attribute set on the ``field``). When there are several occurrences of the same field in the view, and there are several ``label`` components associated with these ``field`` nodes, those labels must have unique ``for`` attributes (in this case referencing the ``id`` attribute of the corresponding ``field`` nodes)." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:766 -#: ../../content/developer/reference/backend/views.rst:838 -#: ../../content/developer/reference/backend/views.rst:1017 -#: ../../content/developer/reference/backend/views.rst:1305 -#: ../../content/developer/reference/backend/views.rst:1704 -#: ../../content/developer/reference/backend/views.rst:1768 -#: ../../content/developer/reference/backend/views.rst:2008 -#: ../../content/developer/reference/backend/views.rst:2176 -#: ../../content/developer/reference/backend/views.rst:2391 -#: ../../content/developer/reference/frontend/services.rst:869 -#: ../../content/developer/reference/frontend/services.rst:872 -#: ../../content/developer/reference/frontend/services.rst:878 -#: ../../content/developer/reference/frontend/services.rst:884 -#: ../../content/developer/tutorials/backend.rst:907 -msgid "``string``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:766 -msgid "the label to display. Display the field's label (coming from the field definition in the model) by default." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:769 -#: ../../content/developer/reference/backend/views.rst:771 -msgid "same as for ``field`` component." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:807 -msgid "classes for forms" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:809 -msgid "widgets?" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:812 -msgid "Settings Form View" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:814 -msgid "The settings form view is a customization of the form view. It's used to centralize all the settings of Odoo." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:817 -msgid "This view differs from a generic form view because it has a search bar, a sidebar and accepts 3 additional tags: ``app``, ``block`` and ``setting``." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:843 -msgid "``app``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:823 -msgid "The ``app`` tag is used to declare the application on the settings view. It creates an entry with its logo on the sidebar of the view. It also acts as delimiter when searching." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:826 -#: ../../content/developer/reference/backend/views.rst:848 -#: ../../content/developer/reference/backend/views.rst:872 -msgid "Syntax:" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:834 -#: ../../content/developer/reference/backend/views.rst:856 -#: ../../content/developer/reference/backend/views.rst:881 -msgid "Parameters:" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:839 -msgid "The \"display\" name of the application." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:841 -msgid "The technical name of the application (the name of the module)." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:843 -msgid "``logo`` (optional)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:843 -msgid "The relative path to the logo. If not set, the logo is created using the ``name`` parameter : ``/{name}/static/description/icon.png``." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:863 -msgid "``block``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:846 -msgid "The ``block`` tag is used to declare a group of settings. This group can have a title and a description/help." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:860 -#: ../../content/developer/reference/backend/views.rst:893 -msgid "``title`` (optional)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:861 -msgid "The title of the block of settings, you can perform research on its text." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:863 -#: ../../content/developer/reference/backend/views.rst:895 -msgid "``help`` (optional)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:863 -msgid "The description/help of the block of settings, you can perform research on its text." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:903 -msgid "``setting``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:866 -msgid "The ``setting`` tag is used to declare the setting itself. The first field in the setting is used as the main field (optional). This field is placed on the left panel (if it's a boolean field) or on the top of the right panel (otherwise). The field is also used to create the setting label if a ``string`` is not defined. The ``setting`` tag can also contain more elements (e.g. html), all of these elements are rendered in the right panel." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:889 -#: ../../content/developer/reference/backend/views.rst:1129 -#: ../../content/developer/reference/backend/views.rst:1163 -#: ../../content/developer/reference/backend/views.rst:2069 -msgid "``type`` (optional)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:886 -msgid "By default, a setting is visually separated on two panels (left and right), and is used to edit a given field. By defining ``type='header'``, a special kind of setting is rendered instead. This setting is used to modify the scope of the other settings. For example, on the website application, this setting is used to indicate to which website the other settings apply. The header setting is visually represented as a yellow banner on the top of the screen." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:892 -msgid "The text used as label of the setting. If it's not defined, the first field is used as label." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:894 -msgid "The text used as tooltip." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:896 -msgid "The help/description of the setting. This text is displayed just below the setting label (with classname ``text-muted``)." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:898 -msgid "``company_dependent`` (optional)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:898 -msgid "If this attribute is set to \"1\" an icon is displayed next to the setting label to explicit that this setting is company-specific." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:903 -msgid "``documentation`` (optional)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:901 -msgid "If this attribute is set, an icon is added next to the setting label, this icon is a link to the documentation. Note that you can use relative or absolute path. The relative path is relative to ``https://www.odoo.com/documentation/``, so it's not necessary to hard-code the server version on the arch anymore." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:932 -#: ../../content/developer/tutorials/backend.rst:970 -msgid "Gantt" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:938 -msgid "Gantt views appropriately display Gantt charts (for scheduling)." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:940 -msgid "The root element of gantt views is ````, it has no children but can take the following attributes:" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:946 -msgid "name of the field providing the start datetime of the event for each record." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:949 -msgid "``date_stop`` (required)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:949 -msgid "name of the field providing the end duration of the event for each record." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:954 -msgid "``dependency_field``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:952 -msgid "name of the ``many2many`` field that provides the dependency relation between two records. If B depends on A, ``dependency_field`` is the field that allows getting A from B. Both this field and ``dependency_inverted_field`` field are used to draw dependency arrows between pills and reschedule them." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:958 -msgid "``dependency_inverted_field`` (required if ``dependency_field`` is provided)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:957 -msgid "name of the ``many2many`` field that provides the invert dependency relation than ``dependency_field``. If B depends on A, ``dependency_inverted_field`` is the field that allows getting B from A." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:961 -msgid "name of the field used to color the pills according to its value" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:976 -#: ../../content/developer/reference/backend/views.rst:1676 -#: ../../content/developer/reference/backend/views.rst:1809 -#: ../../content/developer/tutorials/backend.rst:878 -msgid "``decoration-{$name}``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:963 -#: ../../content/developer/reference/backend/views.rst:1672 -#: ../../content/developer/tutorials/backend.rst:854 -msgid "allow changing the style of a row's text based on the corresponding record's attributes." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:976 -msgid "``{$name}`` can be one of the following `bootstrap contextual color`_ (``danger``, ``info``, ``secondary``, ``success`` or ``warning``)." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:978 -#: ../../content/developer/reference/backend/views.rst:1467 -#: ../../content/developer/reference/backend/views.rst:1658 -msgid "``default_group_by``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:979 -msgid "name of a field to group tasks by" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:980 -msgid "``disable_drag_drop``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:981 -msgid "if set to true, the gantt view will not have any drag&drop support" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:982 -msgid "``consolidation``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:983 -msgid "field name to display consolidation value in record cell" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:986 -msgid "``consolidation_max``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:985 -msgid "dictionary with the \"group by\" field as key and the maximum consolidation value that can be reached before displaying the cell in red (e.g. ``{\"user_id\": 100}``)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:990 -msgid "``consolidation_exclude``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:989 -msgid "name of the field that describes if the task has to be excluded from the consolidation if set to true it displays a striped zone in the consolidation line" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1007 -msgid "``create``, ``cell_create``, ``edit``, ``delete``, ``plan``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:993 -msgid "allows *dis*\\ abling the corresponding action in the view by setting the corresponding attribute to ``false`` (default: ``true``)." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:996 -msgid "``create``: If enabled, an ``Add`` button will be available in the control panel to create records." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:998 -msgid "``cell_create``: If enabled and ``create`` enabled, a \"**+**\" button will be displayed while hovering on a time slot cell to create a new record on that slot." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1000 -msgid "``edit``: If enabled, the opened records will be in edit mode (thus editable)." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1001 -msgid "``plan``: If enabled and ``edit`` enabled, a \"magnifying glass\" button will be displayed on time slots to plan unassigned records into that time slot." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1006 -msgid "When you do not want to create records on the gantt view and the beginning and end dates are required on the model, the planning feature should be disabled because no record will ever be found." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1012 -msgid "``offset``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1010 -msgid "Depending on the scale, the number of units to add to today to compute the default period. Examples: An offset of +1 in default_scale week will open the gantt view for next week, and an offset of -2 in default_scale month will open the gantt view of 2 months ago." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1015 -msgid "``progress``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1015 -msgid "name of a field providing the completion percentage for the record's event, between 0 and 100" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1018 -msgid "title of the gantt view" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1043 -msgid "``precision``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1020 -msgid "JSON object specifying snapping precisions for the pills in each scale." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1022 -msgid "Possible values for scale ``day`` are (default: ``hour``):" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1024 -msgid "``hour``: records times snap to full hours (ex: 7:12 becomes 8:00)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1026 -msgid "``hour:half``: records times snap to half hours (ex: 7:12 becomes 7:30)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1028 -msgid "``hour:quarter``: records times snap to half hours (ex: 7:12 becomes 7:15)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1030 -msgid "Possible values for scale ``week`` are (default: ``day:half``):" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1032 -#: ../../content/developer/reference/backend/views.rst:1038 -msgid "``day``: records times snap to full days (ex: 7:28 AM becomes 11:59:59 PM of the previous day, 10:32 PM becomes 12:00 PM of the current day)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1034 -#: ../../content/developer/reference/backend/views.rst:1040 -msgid "``day:half``: records times snap to half hours (ex: 7:28 AM becomes 12:00 PM)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1036 -msgid "Possible values for scale ``month`` are (default: ``day:half``):" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1042 -msgid "Scale ``year`` always snap to full day." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1044 -msgid "Example of precision attribute: ``{\"day\": \"hour:quarter\", \"week\": \"day:half\", \"month\": \"day\"}``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1046 -msgid "``total_row``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1046 -msgid "boolean to control whether the row containing the total count of records should be displayed. (default: ``false``)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1049 -msgid "``collapse_first_level``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1049 -msgid "boolean to control whether it is possible to collapse each row if grouped by one field. (default: ``false``, the collapse starts when grouping by two fields)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1053 -msgid "``display_unavailability``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1052 -msgid "boolean to mark the dates returned by the ``gantt_unavailability`` function of the model as available inside the gantt view. Records can still be scheduled in them, but their unavailability is visually displayed. (default: ``false``)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1061 -msgid "``default_scale``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1056 -msgid "default scale when rendering the view. Possible values are (default: ``month``):" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1058 -msgid "``day``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1059 -msgid "``week``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1060 -msgid "``month``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1061 -msgid "``year``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1064 -msgid "comma-separated list of allowed scales for this view. By default, all scales are allowed. For possible scale values to use in this list, see ``default_scale``." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1068 -msgid "defines the :ref:`reference/qweb` template ``gantt-popover`` which is used when the user hovers over one of the records in the gantt view." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1071 -msgid "The gantt view uses mostly-standard :ref:`javascript qweb ` and provides the following context variables:" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1077 -msgid "the current :js:class:`GanttRow`, can be used to fetch some meta-information. The ``getColor`` method to convert in a color integer is also available directly in the template context without using ``widget``." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1083 -msgid "``on_create``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1082 -msgid "If specified when clicking the add button on the view, instead of opening a generic dialog, launch a client action. this should hold the xmlid of the action (eg: ``on_create=\"%(my_module.my_wizard)d\"``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1086 -msgid "view to open when the user create or edit a record. Note that if this attribute is not set, the gantt view will fall back to the id of the form view in the current action, if any." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1092 -msgid "``dynamic_range``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1091 -msgid "if set to true, the gantt view will start at the first record, instead of starting at the beginning of the year/month/day." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1096 -msgid "``pill_label``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1095 -msgid "If set to true, the time appears in the pill label when the scale is set on week or month. (e.g. `7:00 AM - 11:00 AM (4h) - DST Task 1`)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1115 -msgid "``thumbnails``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1099 -msgid "This allows to display a thumbnail next to groups name if the group is a relationnal field. This expects a python dict which keys are the name of the field on the active model. Values are the names of the field holding the thumbnail on the related model." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1103 -msgid "Example: tasks have a field user_id that reference res.users. The res.users model has a field image that holds the avatar, then:" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1115 -msgid "will display the users avatars next to their names when grouped by user_id." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1120 -msgid "Graph" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1122 -msgid "The graph view is used to visualize aggregations over a number of records or record groups. Its root element is ```` which can take the following attributes:" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1129 -msgid "one of ``bar`` (default), ``pie`` and ``line``, the type of graph to use" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1133 -msgid "``stacked`` (optional)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1132 -msgid "only used for ``bar`` charts. Set to ``0`` to prevent the bars within a group to be stacked initially." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1136 -#: ../../content/developer/reference/backend/views.rst:2027 -msgid "``disable_linking`` (optional)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1136 -msgid "set to ``1`` to prevent from redirecting clicks on graph to list view" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1141 -msgid "``order`` (optional)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1139 -msgid "if set, x-axis values will be sorted by default according their measure with respect to the given order (``asc`` or ``desc``). Only used for ``bar`` and ``pie`` charts." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1144 -msgid "string displayed in the breadcrumbs when redirecting to list view." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1146 -msgid "The only allowed element within a graph view is ``field`` which can have the following attributes:" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1152 -#: ../../content/developer/reference/backend/views.rst:2047 -msgid "the name of a field to use in the view. If used for grouping (rather than aggregating)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1156 -msgid "if true, the field will not appear either in the active measures nor in the selectable measures." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1160 -msgid "if set to ``measure``, the field will be used as an aggregated value within a group instead of a grouping criteria. It only works for the last field with that attribute but it is useful for other fields with string attribute (see below)." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1166 -msgid "on date and datetime fields, groups by the specified interval (``day``, ``week``, ``month``, ``quarter`` or ``year``) instead of grouping on the specific datetime (fixed second resolution) or date (fixed day resolution). Default is ``month``." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1172 -msgid "only used for field with ``type=\"measure\"``. The name that will be used to display the field in the graph view, overrides the default python String attribute of the field." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1176 -#: ../../content/developer/reference/backend/views.rst:2076 -msgid "The measures are automatically generated from the model fields; only the aggregatable fields are used. Those measures are also alphabetically sorted on the string of the field." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1182 -msgid "graph view aggregations are performed on database content, non-stored function fields can not be used in graph views" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1188 -msgid "Grid" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1195 -#: ../../content/developer/reference/frontend/javascript_modules.rst:193 -msgid "Limitations" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1197 -msgid "This view is a work in progress and may have to be expanded or altered." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1199 -msgid "only ``date`` column fields have been tested, ``selection`` and ``many2one`` are nominally implemented and supported but have not been tested, ``datetime`` is not implemented at all." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1202 -msgid "column cells are hardly configurable and must be numerical" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1203 -msgid "cell adjustment is disabled by default and must be configured to be enabled" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1204 -msgid "``create``, ``edit`` and ``delete`` ACL metadata doesn't get automatically set on the view root due to limitations in ``fields_view_get`` post-processing (there's a fixed explicit list of the view types getting those attributes)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1210 -msgid "Schema" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1212 -msgid "The grid view has its own schema and additional validation in this module. The view architecture is:" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1269 -msgid "```` (1)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1216 -msgid "architecture root element" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1218 -msgid "mandatory ``string`` attribute" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1219 -msgid "optional ``create``, ``edit`` and ``delete`` attributes" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1220 -msgid "optional ``adjustment`` and ``adjust_name`` attributes" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1222 -msgid "``adjustment`` can be either ``object`` or ``action`` to indicate whether a cell's adjustment should be performed through a method call or an action execution. ``adjust_name`` provides respectively the method name and the action id." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1227 -msgid "In both cases, the adjustment parameters are provided as a ``grid_adjust`` context member, in the ``object`` case, the parameters are also provided as positional function parameters (next to an empty list of ids):" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1232 -msgid "``row_domain``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1233 -msgid "the domain matching the entire row of the adjusted cell" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1234 -msgid "``column_field``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1235 -msgid "the name of the column for the adjusted cell" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1236 -msgid "``column_value``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1237 -msgid "the value of the column for the adjusted cell" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1238 -msgid "``cell_field``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1239 -msgid "the measure field of the adjusted cell" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1242 -msgid "``change``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1241 -msgid "the difference between the old value of the cell and the adjusted one, may be positive or negative" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1244 -msgid "optional ``hide_line_total`` and ``hide_column_total`` attributes" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1246 -msgid "``hide_line_total``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1247 -msgid "set to true to hide total line (default false)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1249 -msgid "``hide_column_total``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1249 -msgid "set to true to hide total column (default false)" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1251 -msgid "optional ``barchart_total`` attribute" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1255 -msgid "``barchart_total``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1254 -msgid "set to ``true`` in order to display a bar chart at the bottom of the grid, based on the totals of the columns (default false)." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1257 -msgid "optional ``create_inline`` and ``display_empty`` attributes" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1263 -msgid "``create_inline``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1260 -msgid "set to ``true`` in order to display an additional row at bottom of the grid with an ``Add a line`` button (default false). When this option is set to ``true``, the ``Add a line`` button from the control panel is hidden. When no data is available and when ``display_empty`` is not set (so when the help content is displayed), the the ``Add a line`` button from the control panel is shown in order to let the user create a first record." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1269 -msgid "``display_empty``" -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1266 -msgid "set to ``true`` in order to keep displaying the grid when there is no data (default false). This can be useful when you want the user to be able to keep track of the current period (as dates are displayed in the columns headers). As a reminder, when no data are present and when this attribute is no set, the help content is displayed instead of the grid." -msgstr "" - -#: ../../content/developer/reference/backend/views.rst:1285 -msgid "``