diff --git a/locale/sources/administration.pot b/locale/sources/administration.pot index a9d0fcf53..254224f37 100644 --- a/locale/sources/administration.pot +++ b/locale/sources/administration.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo 17.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-19 15:28+0000\n" +"POT-Creation-Date: 2024-03-08 12:48+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -412,7 +412,7 @@ msgid "Needed RAM = #worker * ( (light_worker_ratio * light_worker_ram_estimatio msgstr "" #: ../../content/administration/install/deploy.rst:225 -#: ../../content/administration/install/deploy.rst:412 +#: ../../content/administration/install/deploy.rst:413 msgid "LiveChat" msgstr "" @@ -484,340 +484,340 @@ msgstr "" msgid "in ``/etc/nginx/sites-enabled/odoo.conf`` set:" msgstr "" -#: ../../content/administration/install/deploy.rst:361 +#: ../../content/administration/install/deploy.rst:362 msgid "HTTPS Hardening" msgstr "" -#: ../../content/administration/install/deploy.rst:363 +#: ../../content/administration/install/deploy.rst:364 msgid "Add the `Strict-Transport-Security` header to all requests, in order to prevent browsers from ever sending a plain HTTP request to this domain. You will need to maintain a working HTTPS service with a valid certificate on this domain at all times, otherwise your users will see security alerts or be entirely unable to access it." msgstr "" -#: ../../content/administration/install/deploy.rst:369 +#: ../../content/administration/install/deploy.rst:370 msgid "Force HTTPS connections during a year for every visitor in NGINX with the line:" msgstr "" -#: ../../content/administration/install/deploy.rst:375 +#: ../../content/administration/install/deploy.rst:376 msgid "Additional configuration can be defined for the `session_id` cookie. The `Secure` flag can be added to ensure it is never transmitted over HTTP and `SameSite=Lax` to prevent authenticated `CSRF`_." msgstr "" -#: ../../content/administration/install/deploy.rst:386 +#: ../../content/administration/install/deploy.rst:387 msgid "Odoo as a WSGI Application" msgstr "" -#: ../../content/administration/install/deploy.rst:388 +#: ../../content/administration/install/deploy.rst:389 msgid "It is also possible to mount Odoo as a standard WSGI_ application. Odoo provides the base for a WSGI launcher script as ``odoo-wsgi.example.py``. That script should be customized (possibly after copying it from the setup directory) to correctly set the configuration directly in :mod:`odoo.tools.config` rather than through the command-line or a configuration file." msgstr "" -#: ../../content/administration/install/deploy.rst:394 +#: ../../content/administration/install/deploy.rst:395 msgid "However the WSGI server will only expose the main HTTP endpoint for the web client, website and webservice API. Because Odoo does not control the creation of workers anymore it can not setup cron or livechat workers" msgstr "" -#: ../../content/administration/install/deploy.rst:399 +#: ../../content/administration/install/deploy.rst:400 msgid "Cron Workers" msgstr "" -#: ../../content/administration/install/deploy.rst:401 +#: ../../content/administration/install/deploy.rst:402 msgid "Starting one of the built-in Odoo servers next to the WSGI server is required to process cron jobs. That server must be configured to only process crons and not HTTP requests using the :option:`--no-http ` cli option or the ``http_enable = False`` configuration file setting." msgstr "" -#: ../../content/administration/install/deploy.rst:406 +#: ../../content/administration/install/deploy.rst:407 msgid "On Linux-like systems, using the multi-processing server over the multi-threading one is recommended to benefit from better hardware usage and increased stability, i.e., using the :option:`--workers=-1 ` and :option:`--max-cron-threads=n ` cli options." msgstr "" -#: ../../content/administration/install/deploy.rst:414 +#: ../../content/administration/install/deploy.rst:415 msgid "Using a gevent-compatible WSGI server is required for the correct operation of the live chat feature. That server should be able to handle many simultaneous long-lived connections but doesn't need a lot of processing power. All requests whose path starts with ``/websocket/`` should be directed to that server. A regular (thread/process-based) WSGI server should be used for all other requests." msgstr "" -#: ../../content/administration/install/deploy.rst:420 +#: ../../content/administration/install/deploy.rst:421 msgid "The Odoo cron server can also be used to serve the live chat requests. Just drop the :option:`--no-http ` cli option from the cron server and make sure requests whose path starts with ``/websocket/`` are directed to this server, either on the :option:`--http-port ` (multi-threading server) or on the :option:`--gevent-port ` (multi-processing server)." msgstr "" -#: ../../content/administration/install/deploy.rst:429 +#: ../../content/administration/install/deploy.rst:430 msgid "Serving static files and attachments" msgstr "" -#: ../../content/administration/install/deploy.rst:431 +#: ../../content/administration/install/deploy.rst:432 msgid "For development convenience, Odoo directly serves all static files and attachments in its modules. This may not be ideal when it comes to performances, and static files should generally be served by a static HTTP server." msgstr "" -#: ../../content/administration/install/deploy.rst:436 +#: ../../content/administration/install/deploy.rst:437 msgid "Serving static files" msgstr "" -#: ../../content/administration/install/deploy.rst:438 +#: ../../content/administration/install/deploy.rst:439 msgid "Odoo static files are located in each module's :file:`static/` folder, so static files can be served by intercepting all requests to :samp:`/{MODULE}/static/{FILE}`, and looking up the right module (and file) in the various addons paths." msgstr "" -#: ../../content/administration/install/deploy.rst:442 +#: ../../content/administration/install/deploy.rst:443 msgid "It is recommended to set the ``Content-Security-Policy: default-src 'none'`` header on all images delivered by the web server. It is not strictly necessary as users cannot modify/inject content inside of modules' :file:`static/` folder and existing images are final (they do not fetch new resources by themselves). However, it is good practice." msgstr "" -#: ../../content/administration/install/deploy.rst:447 +#: ../../content/administration/install/deploy.rst:448 msgid "Using the above NGINX (https) configuration, the following ``map`` and ``location`` blocks should be added to serve static files via NGINX." msgstr "" -#: ../../content/administration/install/deploy.rst:474 +#: ../../content/administration/install/deploy.rst:475 msgid "The actual ``root`` and ``try_files`` directives are dependant on your installation, specifically on your :option:`--addons-path `." msgstr "" -#: ../../content/administration/install/deploy.rst:481 +#: ../../content/administration/install/deploy.rst:482 msgid "Debian package" msgstr "" -#: ../../content/administration/install/deploy.rst:483 +#: ../../content/administration/install/deploy.rst:484 msgid "Say Odoo has been installed via the **debian packages** for Community and Enterprise, and that the :option:`--addons-path ` is ``'/usr/lib/python3/dist-packages/odoo/addons'``." msgstr "" -#: ../../content/administration/install/deploy.rst:487 -#: ../../content/administration/install/deploy.rst:501 +#: ../../content/administration/install/deploy.rst:488 +#: ../../content/administration/install/deploy.rst:502 msgid "The ``root`` and ``try_files`` should be:" msgstr "" -#: ../../content/administration/install/deploy.rst:494 +#: ../../content/administration/install/deploy.rst:495 msgid "Git sources" msgstr "" -#: ../../content/administration/install/deploy.rst:496 +#: ../../content/administration/install/deploy.rst:497 msgid "Say Odoo has been installed via the **sources**, that both the Community and Enterprise git repositories were cloned in :file:`/opt/odoo/community` and :file:`/opt/odoo/enterprise` respectively, and that the :option:`--addons-path ` is ``'/opt/odoo/community/odoo/addons,/opt/odoo/community/addons,/opt/odoo/enterprise'``." msgstr "" -#: ../../content/administration/install/deploy.rst:509 +#: ../../content/administration/install/deploy.rst:510 msgid "Serving attachments" msgstr "" -#: ../../content/administration/install/deploy.rst:511 +#: ../../content/administration/install/deploy.rst:512 msgid "Attachments are files stored in the filestore which access is regulated by Odoo. They cannot be directly accessed via a static web server as accessing them requires multiple lookups in the database to determine where the files are stored and whether the current user can access them or not." msgstr "" -#: ../../content/administration/install/deploy.rst:516 +#: ../../content/administration/install/deploy.rst:517 msgid "Nevertheless, once the file has been located and the access rights verified by Odoo, it is a good idea to serve the file using the static web server instead of Odoo. For Odoo to delegate serving files to the static web server, the `X-Sendfile `_ (apache) or `X-Accel `_ (nginx) extensions must be enabled and configured on the static web server. Once it is set up, start Odoo with the :option:`--x-sendfile ` CLI flag (this unique flag is used for both X-Sendfile and X-Accel)." msgstr "" -#: ../../content/administration/install/deploy.rst:526 +#: ../../content/administration/install/deploy.rst:527 msgid "The X-Sendfile extension for apache (and compatible web servers) does not require any supplementary configuration." msgstr "" -#: ../../content/administration/install/deploy.rst:528 +#: ../../content/administration/install/deploy.rst:529 msgid "The X-Accel extension for NGINX **does** require the following additionnal configuration:" msgstr "" -#: ../../content/administration/install/deploy.rst:537 +#: ../../content/administration/install/deploy.rst:538 msgid "In case you don't know what is the path to your filestore, start Odoo with the :option:`--x-sendfile ` option and navigate to the ``/web/filestore`` URL directly via Odoo (don't navigate to the URL via NGINX). This logs a warnings, the message contains the configuration you need." msgstr "" -#: ../../content/administration/install/deploy.rst:546 +#: ../../content/administration/install/deploy.rst:547 msgid "Security" msgstr "" -#: ../../content/administration/install/deploy.rst:548 +#: ../../content/administration/install/deploy.rst:549 msgid "For starters, keep in mind that securing an information system is a continuous process, not a one-shot operation. At any moment, you will only be as secure as the weakest link in your environment." msgstr "" -#: ../../content/administration/install/deploy.rst:552 +#: ../../content/administration/install/deploy.rst:553 msgid "So please do not take this section as the ultimate list of measures that will prevent all security problems. It's only intended as a summary of the first important things you should be sure to include in your security action plan. The rest will come from best security practices for your operating system and distribution, best practices in terms of users, passwords, and access control management, etc." msgstr "" -#: ../../content/administration/install/deploy.rst:558 +#: ../../content/administration/install/deploy.rst:559 msgid "When deploying an internet-facing server, please be sure to consider the following security-related topics:" msgstr "" -#: ../../content/administration/install/deploy.rst:561 +#: ../../content/administration/install/deploy.rst:562 msgid "Always set a strong super-admin admin password, and restrict access to the database management pages as soon as the system is set up. See :ref:`db_manager_security`." msgstr "" -#: ../../content/administration/install/deploy.rst:564 +#: ../../content/administration/install/deploy.rst:565 msgid "Choose unique logins and strong passwords for all administrator accounts on all databases. Do not use 'admin' as the login. Do not use those logins for day-to-day operations, only for controlling/managing the installation. *Never* use any default passwords like admin/admin, even for test/staging databases." msgstr "" -#: ../../content/administration/install/deploy.rst:569 +#: ../../content/administration/install/deploy.rst:570 msgid "Do **not** install demo data on internet-facing servers. Databases with demo data contain default logins and passwords that can be used to get into your systems and cause significant trouble, even on staging/dev systems." msgstr "" -#: ../../content/administration/install/deploy.rst:573 +#: ../../content/administration/install/deploy.rst:574 msgid "Use appropriate database filters ( :option:`--db-filter `) to restrict the visibility of your databases according to the hostname. See :ref:`db_filter`. You may also use :option:`-d ` to provide your own (comma-separated) list of available databases to filter from, instead of letting the system fetch them all from the database backend." msgstr "" -#: ../../content/administration/install/deploy.rst:580 +#: ../../content/administration/install/deploy.rst:581 msgid "Once your ``db_name`` and ``db_filter`` are configured and only match a single database per hostname, you should set ``list_db`` configuration option to ``False``, to prevent listing databases entirely, and to block access to the database management screens (this is also exposed as the :option:`--no-database-list ` command-line option)" msgstr "" -#: ../../content/administration/install/deploy.rst:586 +#: ../../content/administration/install/deploy.rst:587 msgid "Make sure the PostgreSQL user (:option:`--db_user `) is *not* a super-user, and that your databases are owned by a different user. For example they could be owned by the ``postgres`` super-user if you are using a dedicated non-privileged ``db_user``. See also :ref:`setup/deploy/odoo`." msgstr "" -#: ../../content/administration/install/deploy.rst:591 +#: ../../content/administration/install/deploy.rst:592 msgid "Keep installations updated by regularly installing the latest builds, either via GitHub or by downloading the latest version from https://www.odoo.com/page/download or http://nightly.odoo.com" msgstr "" -#: ../../content/administration/install/deploy.rst:595 +#: ../../content/administration/install/deploy.rst:596 msgid "Configure your server in multi-process mode with proper limits matching your typical usage (memory/CPU/timeouts). See also :ref:`builtin_server`." msgstr "" -#: ../../content/administration/install/deploy.rst:598 +#: ../../content/administration/install/deploy.rst:599 msgid "Run Odoo behind a web server providing HTTPS termination with a valid SSL certificate, in order to prevent eavesdropping on cleartext communications. SSL certificates are cheap, and many free options exist. Configure the web proxy to limit the size of requests, set appropriate timeouts, and then enable the :option:`proxy mode ` option. See also :ref:`https_proxy`." msgstr "" -#: ../../content/administration/install/deploy.rst:605 +#: ../../content/administration/install/deploy.rst:606 msgid "If you need to allow remote SSH access to your servers, make sure to set a strong password for **all** accounts, not just `root`. It is strongly recommended to entirely disable password-based authentication, and only allow public key authentication. Also consider restricting access via a VPN, allowing only trusted IPs in the firewall, and/or running a brute-force detection system such as `fail2ban` or equivalent." msgstr "" -#: ../../content/administration/install/deploy.rst:611 +#: ../../content/administration/install/deploy.rst:612 msgid "Consider installing appropriate rate-limiting on your proxy or firewall, to prevent brute-force attacks and denial of service attacks. See also :ref:`login_brute_force` for specific measures." msgstr "" -#: ../../content/administration/install/deploy.rst:615 +#: ../../content/administration/install/deploy.rst:616 msgid "Many network providers provide automatic mitigation for Distributed Denial of Service attacks (DDOS), but this is often an optional service, so you should consult with them." msgstr "" -#: ../../content/administration/install/deploy.rst:619 +#: ../../content/administration/install/deploy.rst:620 msgid "Whenever possible, host your public-facing demo/test/staging instances on different machines than the production ones. And apply the same security precautions as for production." msgstr "" -#: ../../content/administration/install/deploy.rst:623 +#: ../../content/administration/install/deploy.rst:624 msgid "If your public-facing Odoo server has access to sensitive internal network resources or services (e.g. via a private VLAN), implement appropriate firewall rules to protect those internal resources. This will ensure that the Odoo server cannot be used accidentally (or as a result of malicious user actions) to access or disrupt those internal resources. Typically this can be done by applying an outbound default DENY rule on the firewall, then only explicitly authorizing access to internal resources that the Odoo server needs to access. `Systemd IP traffic access control `_ may also be useful to implement per-process network access control." msgstr "" -#: ../../content/administration/install/deploy.rst:634 +#: ../../content/administration/install/deploy.rst:635 msgid "If your public-facing Odoo server is behind a Web Application Firewall, a load-balancer, a transparent DDoS protection service (like CloudFlare) or a similar network-level device, you may wish to avoid direct access to the Odoo system. It is generally difficult to keep the endpoint IP addresses of your Odoo servers secret. For example they can appear in web server logs when querying public systems, or in the headers of emails posted from Odoo. In such a situation you may want to configure your firewall so that the endpoints are not accessible publicly except from the specific IP addresses of your WAF, load-balancer or proxy service. Service providers like CloudFlare usually maintain a public list of their IP address ranges for this purpose." msgstr "" -#: ../../content/administration/install/deploy.rst:645 +#: ../../content/administration/install/deploy.rst:646 msgid "If you are hosting multiple customers, isolate customer data and files from each other using containers or appropriate \"jail\" techniques." msgstr "" -#: ../../content/administration/install/deploy.rst:648 +#: ../../content/administration/install/deploy.rst:649 msgid "Setup daily backups of your databases and filestore data, and copy them to a remote archiving server that is not accessible from the server itself." msgstr "" -#: ../../content/administration/install/deploy.rst:651 +#: ../../content/administration/install/deploy.rst:652 msgid "Deploying Odoo on Linux is strongly recommended over Windows. Should you choose nevertheless to deploy on a Windows platform, a thorough security hardening review of the server should be conducted and is outside of the scope of this guide." msgstr "" -#: ../../content/administration/install/deploy.rst:659 +#: ../../content/administration/install/deploy.rst:660 msgid "Blocking Brute Force Attacks" msgstr "" -#: ../../content/administration/install/deploy.rst:661 +#: ../../content/administration/install/deploy.rst:662 msgid "For internet-facing deployments, brute force attacks on user passwords are very common, and this threat should not be neglected for Odoo servers. Odoo emits a log entry whenever a login attempt is performed, and reports the result: success or failure, along with the target login and source IP." msgstr "" -#: ../../content/administration/install/deploy.rst:665 +#: ../../content/administration/install/deploy.rst:666 msgid "The log entries will have the following form." msgstr "" -#: ../../content/administration/install/deploy.rst:667 +#: ../../content/administration/install/deploy.rst:668 msgid "Failed login::" msgstr "" -#: ../../content/administration/install/deploy.rst:671 +#: ../../content/administration/install/deploy.rst:672 msgid "Successful login::" msgstr "" -#: ../../content/administration/install/deploy.rst:676 +#: ../../content/administration/install/deploy.rst:677 msgid "These logs can be easily analyzed by an intrusion prevention system such as `fail2ban`." msgstr "" -#: ../../content/administration/install/deploy.rst:678 +#: ../../content/administration/install/deploy.rst:679 msgid "For example, the following fail2ban filter definition should match a failed login::" msgstr "" -#: ../../content/administration/install/deploy.rst:685 +#: ../../content/administration/install/deploy.rst:686 msgid "This could be used with a jail definition to block the attacking IP on HTTP(S)." msgstr "" -#: ../../content/administration/install/deploy.rst:687 +#: ../../content/administration/install/deploy.rst:688 msgid "Here is what it could look like for blocking the IP for 15 minutes when 10 failed login attempts are detected from the same IP within 1 minute::" msgstr "" -#: ../../content/administration/install/deploy.rst:701 +#: ../../content/administration/install/deploy.rst:702 msgid "Database Manager Security" msgstr "" -#: ../../content/administration/install/deploy.rst:703 +#: ../../content/administration/install/deploy.rst:704 msgid ":ref:`setup/deploy/odoo` mentioned ``admin_passwd`` in passing." msgstr "" -#: ../../content/administration/install/deploy.rst:705 +#: ../../content/administration/install/deploy.rst:706 msgid "This setting is used on all database management screens (to create, delete, dump or restore databases)." msgstr "" -#: ../../content/administration/install/deploy.rst:708 +#: ../../content/administration/install/deploy.rst:709 msgid "If the management screens must not be accessible at all, you should set ``list_db`` configuration option to ``False``, to block access to all the database selection and management screens." msgstr "" -#: ../../content/administration/install/deploy.rst:714 +#: ../../content/administration/install/deploy.rst:715 msgid "It is strongly recommended to disable the Database Manager for any internet-facing system! It is meant as a development/demo tool, to make it easy to quickly create and manage databases. It is not designed for use in production, and may even expose dangerous features to attackers. It is also not designed to handle large databases, and may trigger memory limits." msgstr "" -#: ../../content/administration/install/deploy.rst:720 +#: ../../content/administration/install/deploy.rst:721 msgid "On production systems, database management operations should always be performed by the system administrator, including provisioning of new databases and automated backups." msgstr "" -#: ../../content/administration/install/deploy.rst:723 +#: ../../content/administration/install/deploy.rst:724 msgid "Be sure to setup an appropriate ``db_name`` parameter (and optionally, ``db_filter`` too) so that the system can determine the target database for each request, otherwise users will be blocked as they won't be allowed to choose the database themselves." msgstr "" -#: ../../content/administration/install/deploy.rst:728 +#: ../../content/administration/install/deploy.rst:729 msgid "If the management screens must only be accessible from a selected set of machines, use the proxy server's features to block access to all routes starting with ``/web/database`` except (maybe) ``/web/database/selector`` which displays the database-selection screen." msgstr "" -#: ../../content/administration/install/deploy.rst:732 +#: ../../content/administration/install/deploy.rst:733 msgid "If the database-management screen should be left accessible, the ``admin_passwd`` setting must be changed from its ``admin`` default: this password is checked before allowing database-alteration operations." msgstr "" -#: ../../content/administration/install/deploy.rst:736 +#: ../../content/administration/install/deploy.rst:737 msgid "It should be stored securely, and should be generated randomly e.g." msgstr "" -#: ../../content/administration/install/deploy.rst:742 +#: ../../content/administration/install/deploy.rst:743 msgid "which will generate a 32 characters pseudorandom printable string." msgstr "" -#: ../../content/administration/install/deploy.rst:745 +#: ../../content/administration/install/deploy.rst:746 msgid "Supported Browsers" msgstr "" -#: ../../content/administration/install/deploy.rst:747 +#: ../../content/administration/install/deploy.rst:748 msgid "Odoo supports all the major desktop and mobile browsers available on the market, as long as they are supported by their publishers." msgstr "" -#: ../../content/administration/install/deploy.rst:750 +#: ../../content/administration/install/deploy.rst:751 msgid "Here are the supported browsers:" msgstr "" -#: ../../content/administration/install/deploy.rst:752 +#: ../../content/administration/install/deploy.rst:753 msgid "Google Chrome" msgstr "" -#: ../../content/administration/install/deploy.rst:753 +#: ../../content/administration/install/deploy.rst:754 msgid "Mozilla Firefox" msgstr "" -#: ../../content/administration/install/deploy.rst:754 +#: ../../content/administration/install/deploy.rst:755 msgid "Microsoft Edge" msgstr "" -#: ../../content/administration/install/deploy.rst:755 +#: ../../content/administration/install/deploy.rst:756 msgid "Apple Safari" msgstr "" -#: ../../content/administration/install/deploy.rst:757 +#: ../../content/administration/install/deploy.rst:758 msgid "Please make sure your browser is up-to-date and still supported by its publisher before filing a bug report." msgstr "" -#: ../../content/administration/install/deploy.rst:762 +#: ../../content/administration/install/deploy.rst:763 msgid "Since Odoo 13.0, ES6 is supported. Therefore, IE support is dropped." msgstr "" -#: ../../content/administration/install/deploy.rst:765 +#: ../../content/administration/install/deploy.rst:766 msgid "to have multiple Odoo installations use the same PostgreSQL database, or to provide more computing resources to both software." msgstr "" -#: ../../content/administration/install/deploy.rst:768 +#: ../../content/administration/install/deploy.rst:769 msgid "technically a tool like socat_ can be used to proxy UNIX sockets across networks, but that is mostly for software which can only be used over UNIX sockets" msgstr "" -#: ../../content/administration/install/deploy.rst:772 +#: ../../content/administration/install/deploy.rst:773 msgid "or be accessible only over an internal packet-switched network, but that requires secured switches, protections against `ARP spoofing`_ and precludes usage of WiFi. Even over secure packet-switched networks, deployment over HTTPS is recommended, and possible costs are lowered as \"self-signed\" certificates are easier to deploy on a controlled environment than over the internet." msgstr "" @@ -983,8 +983,8 @@ msgid "To quickly try out Odoo, shared `demo `_ instances msgstr "" #: ../../content/administration/install/online.rst:14 -#: ../../content/administration/maintain/domain_names.rst:166 -#: ../../content/administration/maintain/domain_names.rst:236 +#: ../../content/administration/maintain/domain_names.rst:157 +#: ../../content/administration/maintain/domain_names.rst:211 #: ../../content/administration/maintain/supported_versions.rst:29 #: ../../content/administration/upgrade.rst:90 #: ../../content/administration/upgrade.rst:307 @@ -1020,7 +1020,7 @@ msgid "Official **Community** and **Enterprise** packages can be downloaded from msgstr "" #: ../../content/administration/install/packages.rst:19 -msgid "It is required to be logged in as a paying customer or partner to download the Enterprise packages." +msgid "It is required to be logged in as a paying on-premise customer or partner to download the Enterprise packages." msgstr "" #: ../../content/administration/install/packages.rst:25 @@ -1573,7 +1573,7 @@ msgid "The :guilabel:`API permissions` should be set next. Odoo will need specif msgstr "" #: ../../content/administration/maintain/azure_oauth.rst:55 -msgid "In the search bar, search for the following :guilabel:`Deregulated permissions` and click :guilabel:`Add permissions` for each one:" +msgid "In the search bar, search for the following :guilabel:`Delegated permissions` and click :guilabel:`Add permissions` for each one:" msgstr "" #: ../../content/administration/maintain/azure_oauth.rst:58 @@ -1882,203 +1882,191 @@ msgid "Domain names" msgstr "" #: ../../content/administration/maintain/domain_names.rst:5 -msgid "A **domain name** works as an address for your website. It makes the Internet much more accessible as it allows users to type a meaningful web address, such as ``www.odoo.com``, rather than its server's IP address with a series of numbers." +msgid "Domain names are text-based addresses identifying online locations, such as websites. They provide a more memorable and recognizable way for people to navigate the internet than numerical IP addresses." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:9 -msgid "You can use a custom domain name to access your Odoo database and websites:" +#: ../../content/administration/maintain/domain_names.rst:8 +msgid "**Odoo Online** and **Odoo.sh** databases use a **subdomain** of the `odoo.com` **domain** by default (e.g., `mycompany.odoo.com`)." msgstr "" #: ../../content/administration/maintain/domain_names.rst:11 -msgid "By :ref:`registering a free domain name with Odoo ` (for Odoo Online databases)" -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:13 -msgid "By :ref:`configuring a custom domain that you already own `." +msgid "However, you can use a custom domain name instead by :ref:`registering a free domain name ` (only available for Odoo Online databases) or by :ref:`configuring a domain name you already own `." msgstr "" #: ../../content/administration/maintain/domain_names.rst:16 -msgid "Odoo Online and Odoo.sh databases, including their websites, use by default a subdomain of ``odoo.com`` for both the URL and the emails (e.g., ``https://example.odoo.com``)." +msgid "`Odoo Tutorials: Register a free domain name [video] `_" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:20 -msgid "Odoo offers a :ref:`free custom domain name ` to all Odoo Online databases for one year. Visitors can then access your website with an address such as ``www.example.com`` rather than the default ``example.odoo.com``." -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:25 -msgid "`Odoo Tutorials: Register a Free Domain Name `_" -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:27 -msgid "`Odoo Quick Tips: Get a free domain name! `_" -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:32 -msgid "About domain names" -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:34 -msgid "Having a **good domain name** is as important to your branding as the name of your business or organization as it is the first thing your visitors will notice. We recommend you keep them *simple, short, easy to remember and spell*." -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:38 -msgid "A **subdomain** is a domain that is a part of another domain. It often refers to the additional part that comes before the main domain name. Traditionally, most websites use the ``www.`` subdomain, but any string of letters can be used as well. You can use subdomains to direct your visitors to other websites than your main website or to specific pages (e.g., ``experience.odoo.com`` points to a specific page.)" -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:44 -msgid "All domain names are referenced in the **Domain Name System**, or **DNS**, which works as a giant directory for the Internet. There are many DNS servers, so any modification to the DNS can take up to 72 hours to propagate worldwide on all servers." -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:51 -msgid "Indexing of domain names by search engines" -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:53 -msgid "Search engines, such as Google and Bing, rely on web crawlers (:dfn:`robots that explore and analyze the web`) to index all websites and their related domain names. These crawlers discover new URLs thanks to links on known web pages. As a result, search engines should index domain names automatically after a while, as long as their URLs are mentioned elsewhere on the Internet." -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:58 -msgid "Improving the appearance and positioning of web pages on search engines is a practice named \"Search Engine Optimization\" (SEO)." -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:62 -msgid "Adding relevant content, optimizing metadata, and building high-quality backlinks can all help improve a website's search engine visibility." -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:65 -msgid "Some search engines provide tools for web admins, such as `Google Search Console `_ and `Bing Webmaster Tools `_, to help you analyze and improve your page ranking. To use these services, you must prove that you are the owner of your domain name. One way to verify the ownership of your domain name is by adding a DNS record. You can do this for :ref:`domain names registered with Odoo ` and for domain names managed by other providers." -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:74 -msgid ":doc:`/applications/websites/website/pages/seo`" -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:75 -msgid "`Google Search Console Help - Verify your site ownership `_" -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:76 -msgid "`Bing Webmaster Tools - Add and Verify site `_" -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:81 +#: ../../content/administration/maintain/domain_names.rst:22 msgid "Register a free domain name with Odoo" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:83 -msgid "You can register a domain name for your Odoo Online database directly from Odoo Website or your database manager." +#: ../../content/administration/maintain/domain_names.rst:24 +msgid "To register a one-year free domain name for your Odoo Online database, sign in to your account and go to the `database manager `_. Click the gear icon (:guilabel:`⚙️`) next to the database name and select :guilabel:`Domain Names`." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:87 -msgid "Your domain name is **free for one year** if you register it with Odoo!" +#: ../../content/administration/maintain/domain_names.rst:-1 +msgid "Accessing a database's domain names configuration" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:88 -msgid "The domain name is registered with `Gandi `_, the domain name registrar." +#: ../../content/administration/maintain/domain_names.rst:31 +msgid "Search for the desired domain name and check its availability." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:90 -msgid "You are the owner of the domain name and can use it for other purposes." +#: ../../content/administration/maintain/domain_names.rst:-1 +msgid "Searching for an available domain name" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:91 -msgid "Odoo manages payment and technical support for you." +#: ../../content/administration/maintain/domain_names.rst:37 +msgid "Ensure the Website app is installed if the domain name registration option does not appear." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:92 -msgid "This offer doesn't include any mailbox. However, you can :ref:`configure your MX records ` to use your own email server or solution such as Google Workspace." +#: ../../content/administration/maintain/domain_names.rst:39 +msgid "Select the desired domain name, fill in the :guilabel:`Domain Owner` form, and click :guilabel:`Register`. The chosen domain name is directly linked to the database, but you still need to :ref:`map your domain name to your Odoo website `." +msgstr "" + +#: ../../content/administration/maintain/domain_names.rst:-1 +msgid "Filling in the domain owner information" +msgstr "" + +#: ../../content/administration/maintain/domain_names.rst:47 +msgid "A verification email from `noreply@domainnameverification.net` will be sent to the email address provided in the :guilabel:`Domain Owner` form. It is essential to verify your email address to keep the domain active and receive the renewal quote before expiration." +msgstr "" + +#: ../../content/administration/maintain/domain_names.rst:51 +msgid "The domain name registration is free for the first year. After this period, Odoo will continue to manage the domain in partnership with **Gandi.net**, the domain name registrar, and you will be charged `Gandi.net's renewal rate `_. Odoo sends a renewal quotation every year to the email address mentioned in the :guilabel:`Domain Owner` form several weeks before the expiration date of the domain. The domain is renewed automatically when the quotation is confirmed." +msgstr "" + +#: ../../content/administration/maintain/domain_names.rst:59 +msgid "The offer is only available for **Odoo Online** databases." +msgstr "" + +#: ../../content/administration/maintain/domain_names.rst:60 +msgid "The offer is limited to **one** domain name per client." +msgstr "" + +#: ../../content/administration/maintain/domain_names.rst:61 +msgid "The offer is limited to the registration of a **new** domain name." +msgstr "" + +#: ../../content/administration/maintain/domain_names.rst:62 +msgid "The offer is available to *One App Free* plans. Ensure that your website contains enough original content for Odoo to verify that your request is legitimate and respects `Odoo's Acceptable Use Policy `_. Given the high number of requests, it can take Odoo several days to review them." +msgstr "" + +#: ../../content/administration/maintain/domain_names.rst:70 +msgid "DNS records" +msgstr "" + +#: ../../content/administration/maintain/domain_names.rst:72 +msgid "To manage your free domain name :abbr:`DNS (domain name system)` records, open the `database manager `_, click the gear icon (:guilabel:`⚙️`) next to the database name, select :guilabel:`Domain Names`, and click :guilabel:`DNS`." +msgstr "" + +#: ../../content/administration/maintain/domain_names.rst:76 +msgid ":guilabel:`A`: the A record holds the IP address of the domain. It is automatically created and **cannot** be edited or deleted." +msgstr "" + +#: ../../content/administration/maintain/domain_names.rst:78 +msgid ":guilabel:`CNAME`: CNAME records forward one domain or subdomain to another domain. One is automatically created to map the `www.` subdomain to the database. If the database is renamed, the CNAME record **must** also be renamed." +msgstr "" + +#: ../../content/administration/maintain/domain_names.rst:81 +msgid ":guilabel:`MX`: MX records instruct servers on where to deliver emails." +msgstr "" + +#: ../../content/administration/maintain/domain_names.rst:82 +msgid ":guilabel:`TXT`: TXT records can be used for different purposes (e.g., to verify domain name ownership)." +msgstr "" + +#: ../../content/administration/maintain/domain_names.rst:85 +msgid "Any modification to the DNS records can take up to **72 hours** to propagate worldwide on all servers." +msgstr "" + +#: ../../content/administration/maintain/domain_names.rst:89 +msgid "`Submit a support ticket `_ if you need assistance to manage your domain name." +msgstr "" + +#: ../../content/administration/maintain/domain_names.rst:93 +msgid "Mailbox" msgstr "" #: ../../content/administration/maintain/domain_names.rst:95 -msgid "To do so, go to :menuselection:`Website --> Domain Name`. Alternatively, open your `database manager `_, click on the :guilabel:`settings` button next to your database, then on :guilabel:`Domain names`." +msgid "The one-year free domain name offer does **not** include a mailbox. There are two options to link your domain name with a mailbox." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:-1 -msgid "Clicking on Domain Names from an Odoo website" +#: ../../content/administration/maintain/domain_names.rst:99 +msgid "Use a subdomain" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:103 -msgid "Search for the domain name of your choice to check its availability, then select the one you want to register for your website." +#: ../../content/administration/maintain/domain_names.rst:101 +msgid "You can create a subdomain (e.g., `subdomain.yourdomain.com`) to use as an alias domain for the database. It allows users to create records in the database from emails received on their `email@subdomain.yourdomain.com` alias." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:-1 -msgid "The search of the domain name example.com shows which associated domains are available." +#: ../../content/administration/maintain/domain_names.rst:105 +msgid "To do so, open the `database manager `_, click the gear icon (:guilabel:`⚙️`) next to the database name, and go to :menuselection:`Domain Names --> DNS --> Add DNS record --> CNAME`. Next, enter the desired subdomain in the :guilabel:`Name` field (e.g., `subdomain`), the original database domain with a period at the end (e.g., `mycompany.odoo.com.`) in the :guilabel:`Content` field, and click :guilabel:`Add record`." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:110 -msgid "Next, fill in the form with your information to become the domain name owner." +#: ../../content/administration/maintain/domain_names.rst:111 +msgid "Then, add the alias domain as your *own domain* by clicking :guilabel:`Use my own domain`, entering the alias domain (e.g., `subdomain.yourdomain.com`), clicking :guilabel:`Verify`, and then :guilabel:`I confirm, it's done`." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:112 -msgid "Your domain name is directly linked to your database, but you still have to :ref:`map your domain name with your website `." +#: ../../content/administration/maintain/domain_names.rst:115 +msgid "Finally, go to your database and open the :guilabel:`Settings`. Under the :guilabel:`Alias Domain` field, enter the alias domain (e.g., `subdomain.yourdomain.com`), click :guilabel:`Create`, and then :guilabel:`Save`." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:116 -msgid "Free domain names are also available for free Odoo Online databases (if you installed one app only, for example). In this case, Odoo reviews your request and your website to avoid abuse. This process can take several days due to the success of the offer." +#: ../../content/administration/maintain/domain_names.rst:120 +msgid "Use an external email provider" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:119 -msgid "This is not available for Odoo.sh databases yet." +#: ../../content/administration/maintain/domain_names.rst:122 +msgid "To use an external email provider, you should configure an MX record. To do so, open the `database manager `_, click the gear icon (:guilabel:`⚙️`) next to the database name, click :menuselection:`Domain Names --> DNS --> Add DNS record --> MX`. The values you should enter for the :guilabel:`Name`, :guilabel:`Content`, and :guilabel:`Priority` fields depend on the external email provider." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:124 -msgid "Manage your domain name registered with Odoo" +#: ../../content/administration/maintain/domain_names.rst:129 +msgid "`Google Workspace: MX record values `_" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:126 -msgid "To manage the DNS records of your domain name registered with Odoo or to visualize the contacts associated with it, open your `database manager `_, click on the :guilabel:`settings` button next to your database, on :guilabel:`Domain names`, and then on :guilabel:`Contacts` or :guilabel:`DNS`." +#: ../../content/administration/maintain/domain_names.rst:130 +msgid "`Outlook and Exchange Online: Add an MX record for email `_" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:-1 -msgid "Management of the domain names linked to an Odoo database" +#: ../../content/administration/maintain/domain_names.rst:135 +msgid "Configure an existing domain name" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:136 -msgid "Please `submit a support ticket `_ if you need further assistance to manage your domain name." +#: ../../content/administration/maintain/domain_names.rst:137 +msgid "If you already have a domain name, you can use it for your Odoo website." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:142 -msgid "Configure your existing domain name" +#: ../../content/administration/maintain/domain_names.rst:140 +msgid "It is strongly recommended to follow **in order** these three steps to avoid any :ref:`SSL certificate validation ` issues:" +msgstr "" + +#: ../../content/administration/maintain/domain_names.rst:143 +msgid ":ref:`Add a CNAME record `" msgstr "" #: ../../content/administration/maintain/domain_names.rst:144 -msgid "If you already own a domain name, you can use it to point to your website." +msgid ":ref:`Map your domain name to your Odoo database `" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:146 -msgid "To avoid any issue with the :ref:`SSL certificate validation `, we highly recommend that you proceed with the following actions in this order:" -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:149 -msgid ":ref:`Add a CNAME record ` on your domain name's DNS zone." +#: ../../content/administration/maintain/domain_names.rst:145 +msgid ":ref:`Map your domain name to your Odoo website `" msgstr "" #: ../../content/administration/maintain/domain_names.rst:150 -msgid ":ref:`Map your domain name with your Odoo database `." -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:151 -msgid ":ref:`Map your domain name with your Odoo website `." -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:156 msgid "Add a CNAME record" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:158 -msgid "A **CNAME record** is a type of DNS record that points to the domain of another website rather than directly to an IP address." +#: ../../content/administration/maintain/domain_names.rst:152 +msgid "Creating a CNAME record to forward your domain name to the address of your Odoo database is required." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:161 -msgid "You need a CNAME record that points to your Odoo database. The requirements are detailed in your database manager." +#: ../../content/administration/maintain/domain_names.rst:159 +msgid "The CNAME record's target address should be your database's address as defined at its creation (e.g., `mycompany.odoo.com`)." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:168 -msgid "The target address is the current address of your database, as defined at its creation (e.g., ``example.odoo.com``)" -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:171 -#: ../../content/administration/maintain/domain_names.rst:250 +#: ../../content/administration/maintain/domain_names.rst:162 +#: ../../content/administration/maintain/domain_names.rst:221 #: ../../content/administration/maintain/supported_versions.rst:30 #: ../../content/administration/odoo_sh.rst:5 #: ../../content/administration/upgrade.rst:120 @@ -2086,245 +2074,164 @@ msgstr "" msgid "Odoo.sh" msgstr "" +#: ../../content/administration/maintain/domain_names.rst:164 +msgid "The CNAME record's target address can be the project's main address, which can be found on Odoo.sh by going to :menuselection:`Settings --> Project Name`, or a specific branch (production, staging or development) by going to :menuselection:`Branches --> select the branch --> Settings --> Custom domains`, and clicking :guilabel:`How to set up my domain?`. A message indicates which address your CNAME record should target." +msgstr "" + +#: ../../content/administration/maintain/domain_names.rst:170 +msgid "The specific instructions depend on your DNS hosting service." +msgstr "" + #: ../../content/administration/maintain/domain_names.rst:173 -msgid "Your project's main address is defined in :menuselection:`Settings --> Project Name`." +msgid "`GoDaddy: Add a CNAME record `_" +msgstr "" + +#: ../../content/administration/maintain/domain_names.rst:174 +msgid "`Namecheap: How to create a CNAME record for your domain `_" msgstr "" #: ../../content/administration/maintain/domain_names.rst:175 -msgid "If you want to target a specific branch (production, staging or development), go to :menuselection:`Branches --> select your branch --> Settings --> Custom domains`, and click on :guilabel:`How to set up my domain?`. A message indicates which address your CNAME record should target." +msgid "`OVHcloud: Add a new DNS record `_" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:180 -#: ../../content/administration/maintain/domain_names.rst:222 -msgid "Open your domain name's manager dashboard." +#: ../../content/administration/maintain/domain_names.rst:176 +msgid "`Cloudflare: Manage DNS records `_" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:181 -msgid "Open the **DNS zone** management page for the domain name you want to configure." +#: ../../content/administration/maintain/domain_names.rst:179 +msgid "Creating a CNAME record to map the `www` subdomain (`www.yourdomain.com`) as some visitors are used to typing `www.` before entering a domain name." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:182 -msgid "Create a **CNAME record** pointing to the address of your database." +#: ../../content/administration/maintain/domain_names.rst:183 +msgid "You own the domain name `yourdomain.com`, and your Odoo Online database's address is `mycompany.odoo.com`. You want to access your Odoo database primarily with the domain `www.yourdomain.com` but also with the naked domain :dfn:`(a domain name without any subdomains or prefixes)` `yourdomain.com`." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:184 -msgid "While Odoo suggests creating a CNAME record for your ``www.`` subdomain (``www.example.com``), you can of course use any domain name of your choice, with any subdomain (e.g., ``anything.example.com``)." +#: ../../content/administration/maintain/domain_names.rst:188 +msgid "To do so, create a CNAME record for the `www` subdomain, with `mycompany.odoo.com` as the target. Next, create a redirect (301 permanent or visible redirect) to redirect visitors from `yourdomain.com` to `wwww.yourdomain.com`." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:189 -msgid "You own the domain name ``example.com``, and you have an Odoo Online database at the address ``example.odoo.com``. You want to access your Odoo database primarily with the domain ``www.example.com`` but also with the :ref:`naked domain ` ``example.com``." -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:194 -msgid "To do so, you create a CNAME record for the ``www`` subdomain, with ``example.odoo.com`` as the target. The DNS zone manager generates the following rule and adds it to your DNS zone: ``www IN CNAME example.odoo.com.``" +#: ../../content/administration/maintain/domain_names.rst:195 +msgid "Map a domain name to an Odoo database" msgstr "" #: ../../content/administration/maintain/domain_names.rst:198 -msgid "You also create a redirection from ``example.com`` to ``wwww.example.com``." +msgid "Ensure you have :ref:`added a CNAME record ` to your domain name's DNS **before** mapping your domain name to your Odoo database." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:200 -msgid "Your new DNS records are propagated to all DNS servers." -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:203 -msgid "Here are some specific guidelines to create a CNAME record:" +#: ../../content/administration/maintain/domain_names.rst:201 +msgid "Failing to do so may prevent the validation of the :ref:`SSL certificate ` and could result in a *certificate name mismatch* error. Web browsers often display this as a warning, such as *\"Your connection is not private\"*." msgstr "" #: ../../content/administration/maintain/domain_names.rst:205 -msgid "`GoDaddy `_" +msgid "If you encounter this error after mapping the domain name to your database, wait up to five days, as the validation may still happen. If not, you can `submit a support ticket `_, including screenshots of your CNAME records." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:206 -msgid "`Namecheap `_" +#: ../../content/administration/maintain/domain_names.rst:213 +msgid "Open the `database manager `_, click the gear icon (:guilabel:`⚙️`) next to the database name, and go to :menuselection:`Domain Names --> Use my own domain`. Then, enter the domain name (e.g., `yourdomain.com`), click :guilabel:`Verify` and :guilabel:`I confirm, it's done`." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:207 -msgid "`OVH `_" -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:208 -msgid "`CloudFlare `_" -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:209 -msgid "`Google Domains `_" -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:214 -msgid "Naked domain" -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:216 -msgid "A **naked domain** is a domain name that doesn't have any subdomain at the beginning of the address (e.g., ``odoo.com`` instead of ``www.odoo.com``)." -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:219 -msgid "You may want your naked domain to redirect to your website as some visitors may not type the full domain name to access your website." +#: ../../content/administration/maintain/domain_names.rst:0 +msgid "Mapping a domain name to an Odoo Online database" msgstr "" #: ../../content/administration/maintain/domain_names.rst:223 -msgid "Create a **redirection** from the naked domain (``example.com``) to your main domain name (``www.example.com``)." -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:227 -msgid "Depending on your domain name registrar, this redirection may be already pre-configured." -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:232 -msgid "Map your domain name with your Odoo database" -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:238 -msgid "Open your `database manager `_, click on the :guilabel:`settings` button next to your database, on :guilabel:`Domain names`, and then on :guilabel:`Use my own domain` at the bottom of the right column." -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:242 -msgid "Type the domain name you want to add to this database, then click on :guilabel:`Verify` to check if the CNAME record is correctly configured. Once done, click on :guilabel:`I confirm, it's done`." +msgid "On Odoo.sh, go to :menuselection:`Branches --> select your branch --> Settings --> Custom domains`, type the domain name to add, then click :guilabel:`Add domain`." msgstr "" #: ../../content/administration/maintain/domain_names.rst:0 -msgid "Verification of the CNAME records of a domain name before mapping it with a database" +msgid "Mapping a domain name to an Odoo.sh branch" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:252 -msgid "Go to :menuselection:`Branches --> select your branch --> Settings --> Custom domains`, type the domain name you want to add to this database, then click on :guilabel:`Add domain`." -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:0 -msgid "Mapping a domain name with an Odoo.sh branch" -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:260 +#: ../../content/administration/maintain/domain_names.rst:230 msgid ":ref:`Odoo.sh branches: settings tab `" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:263 -msgid "Make sure to :ref:`add a CNAME record ` to your domain name's DNS **before** mapping your domain name with your Odoo database." -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:266 -msgid "Failing to do so may impede the validation of the :ref:`SSL certificate ` and would result in a *certificate name mismatch* error. This is often displayed by web browsers as a warning such as *\"Your connection is not private\"*." -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:270 -msgid "If this is the case and you have added the domain name to your database's settings less than five days ago, wait 24 hours as the validation may still happen. Otherwise, please `submit a support ticket `_ including screenshots of your CNAME records." -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:277 +#: ../../content/administration/maintain/domain_names.rst:235 msgid "SSL encryption (HTTPS protocol)" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:279 -msgid "**SSL encryption** is an encryption-based Internet security protocol. It allows your visitors to navigate your website through a secure connection, which appears as an ``https://`` protocol at the beginning of your web address, rather than a non-secure ``http://`` protocol." +#: ../../content/administration/maintain/domain_names.rst:237 +msgid "**SSL encryption** allows visitors to navigate a website through a secure connection, which appears as the *https://* protocol at the beginning of a web address rather than the non-secure *http://* protocol." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:283 -msgid "Odoo generates a separate SSL certificate for each domain :ref:`mapped in the database manager `, using integration with `Let's Encrypt Certificate Authority and ACME protocol `_." +#: ../../content/administration/maintain/domain_names.rst:241 +msgid "Odoo generates a separate SSL certificate for each domain :ref:`mapped to a database ` using `Let's Encrypt's certificate authority and ACME protocol `_." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:288 -msgid "The certificate generation may take up to 24h." +#: ../../content/administration/maintain/domain_names.rst:246 +msgid "Certificate generation may take up to 24 hours." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:289 -msgid "Several attempts to validate your certificate are made during the five days following the moment you add your domain name in your database's settings." +#: ../../content/administration/maintain/domain_names.rst:247 +msgid "Several attempts to validate your certificate are made for five days after you map your domain name to your database." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:291 -msgid "If you already use another service, you can keep using it or simply change for Odoo." +#: ../../content/administration/maintain/domain_names.rst:249 +msgid "If you use another service, you can keep using it or change to Odoo's." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:296 +#: ../../content/administration/maintain/domain_names.rst:252 +msgid "No SSL certificate is generated for naked domains :dfn:`(domain names without any subdomains or prefixes)`." +msgstr "" + +#: ../../content/administration/maintain/domain_names.rst:258 msgid "Web base URL of a database" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:299 -msgid "If you have Odoo Website, you can disregard this part and directly :ref:`map your domain name with your website `." +#: ../../content/administration/maintain/domain_names.rst:261 +msgid "If the Website app is installed on your database, skip this section and continue from the :ref:`Map a domain name to a website ` section." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:302 -msgid "The **web base URL** of a database, or **root URL** affects your main website address and all the links sent to your customers (e.g., quotations, portal links, etc.)." +#: ../../content/administration/maintain/domain_names.rst:264 +msgid "The *web base URL* or root URL of a database affects your main website address and all the links sent to your customers (e.g., quotations, portal links, etc.)." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:305 -msgid "To configure it, access your Odoo database with your custom address, then log in as an administrator of your database (any user in the *Settings* group) from the login screen." +#: ../../content/administration/maintain/domain_names.rst:267 +msgid "To make your custom domain name the *web base URL* of your database, access your database using your custom domain name and log in as an administrator :dfn:`(a user part of the Settings access right group under Administration)`." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:309 -msgid "Connecting to your database with the original Odoo subdomain address (e.g., ``example.odoo.com`` also updates the web base URL of your database. See below to prevent these automatic updates." +#: ../../content/administration/maintain/domain_names.rst:272 +msgid "If you access your database with the original Odoo address (e.g., `mycompany.odoo.com`), the *web base URL* of your database will be updated accordingly. To prevent the automatic update of the *web base URL* when an administrator logs in to the database, activate the :ref:`developer mode `, go to :menuselection:`Settings --> Technical --> System Parameters --> New`, and enter `web.base.url.freeze` as the :guilabel:`Key` and `True` as the :guilabel:`Value`." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:312 -msgid "Alternatively, you can do it manually. To do so, activate the :ref:`developer mode `, then go to :menuselection:`Settings --> Technical --> System Parameters`." +#: ../../content/administration/maintain/domain_names.rst:279 +msgid "You can also set the web base URL manually. To do so, activate the :ref:`developer mode `, go to :menuselection:`Settings --> Technical --> System Parameters`, and search for the `web.base.url` key (create it if necessary) and enter the full address of your website as the value (e.g., `https://www.yourdomain.com`). The URL must include the protocol `https://` (or `http://`) and *not* end with a slash (`/`)." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:315 -msgid "Find the key called ``web.base.url`` (or create it if it does not exist) and enter the full address of your website as value, such as ``https://www.example.com``." +#: ../../content/administration/maintain/domain_names.rst:288 +msgid "Map a domain name to an Odoo website" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:319 -msgid "The URL must include the protocol ``https://`` (or ``http://``) and must not end with a slash (``/``)." +#: ../../content/administration/maintain/domain_names.rst:290 +msgid "Mapping your domain name to your website is different than mapping it to your database:" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:322 -msgid "To prevent the automatic update of the web base URL when an administrator logs in the database, you can create the following System Parameter:" +#: ../../content/administration/maintain/domain_names.rst:292 +msgid "It defines your domain name as the main one for your website, helping search engines to index your website correctly." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:325 -msgid "key: ``web.base.url.freeze``" +#: ../../content/administration/maintain/domain_names.rst:294 +msgid "It defines your domain name as the base URL for your database, including portal links sent by email to your customers." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:326 -msgid "value: ``True``" +#: ../../content/administration/maintain/domain_names.rst:296 +msgid "If you have multiple websites, it maps your domain name to the appropriate website." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:331 -msgid "Map your domain name with your website" +#: ../../content/administration/maintain/domain_names.rst:298 +msgid "Go to :menuselection:`Website --> Configuration --> Settings`. If you have multiple websites, select the one you want to configure. In the :guilabel:`Domain` field, enter the address of your website (e.g., `https://www.yourdomain.com`) and :guilabel:`Save`." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:333 -msgid "Mapping your domain name to your website isn't the same as mapping it with your database:" +#: ../../content/administration/maintain/domain_names.rst:303 +msgid "Mapping your domain name to your Odoo website prevents Google Search from indexing your original database address (e.g., `mycompany.odoo.com`)." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:335 -msgid "It defines your domain name as the main one for your website, helping search engines to index your website properly." +#: ../../content/administration/maintain/domain_names.rst:306 +msgid "If both addresses are already indexed, it may take some time before the indexation of the second address is removed from Google Search. You can use the `Google Search Console `_ to fix the issue." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:337 -msgid "It defines your domain name as the base URL for your database, including the portal links sent by email to your customers." -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:339 -msgid "If you have multiple websites, it maps your domain name with the appropriate website." -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:341 -msgid "Go to :menuselection:`Website --> Configuration --> Settings --> Website Info`. If you have multiple websites, select the one you want to configure." -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:344 -msgid "In the :guilabel:`Domain` field, fill in the web address of your website (e.g., ``https://www.example.com``) and click on :guilabel:`Save`." -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:-1 -msgid "Configuring https://www.example.com as the Domain of the website" -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:352 -msgid "Mapping your domain name with your Odoo website prevents Google from indexing both your custom domain name ``www.example.com`` and your original odoo database address ``example.odoo.com``." -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:355 -msgid "If both addresses are already indexed, it may take some time before Google removes the indexation of the second address. You may also try using the `Google Search Console `_ to fix this." -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:360 -msgid "If you have multiple websites and companies on your database, make sure that you select the right :guilabel:`Company` in the website settings, next to the :guilabel:`Domain` settings. Doing so indicates Odoo which URL to use as the :ref:`base URL ` according to the company in use." -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:366 -msgid ":doc:`/applications/general/email_communication/email_servers`" +#: ../../content/administration/maintain/domain_names.rst:311 +msgid "If you have multiple websites and companies on your database, make sure to select the right :guilabel:`Company` under :menuselection:`Website --> Configuration --> Settings`. Doing so indicates Odoo which URL to use as the :ref:`base URL ` according to the company in use." msgstr "" #: ../../content/administration/maintain/enterprise.rst:6 @@ -3046,6 +2953,70 @@ msgstr "" msgid "Once the setup is complete, the Odoo database is ready to use the Mailjet email server for mass mailing or transactional emails!" msgstr "" +#: ../../content/administration/maintain/neutralized_database.rst:3 +msgid "Neutralized database" +msgstr "" + +#: ../../content/administration/maintain/neutralized_database.rst:5 +msgid "A neutralized database is a non-production database on which several parameters are deactivated. This enables one to carry out tests without the risk of launching specific automated processes that could impact production data (e.g., sending emails to customers). Live access is removed and turned into a testing environment." +msgstr "" + +#: ../../content/administration/maintain/neutralized_database.rst:11 +msgid "**Any testing database created is a neutralized database:**" +msgstr "" + +#: ../../content/administration/maintain/neutralized_database.rst:13 +msgid "testing backup databases" +msgstr "" + +#: ../../content/administration/maintain/neutralized_database.rst:14 +msgid "duplicate databases" +msgstr "" + +#: ../../content/administration/maintain/neutralized_database.rst:15 +msgid "for Odoo.sh: staging and development databases" +msgstr "" + +#: ../../content/administration/maintain/neutralized_database.rst:18 +msgid "A database can also be neutralized when upgrading, as it is vital to do some tests before switching to a new version." +msgstr "" + +#: ../../content/administration/maintain/neutralized_database.rst:22 +msgid "Deactivated features" +msgstr "" + +#: ../../content/administration/maintain/neutralized_database.rst:24 +msgid "Here is a non-exhaustive list of the deactivated parameters:" +msgstr "" + +#: ../../content/administration/maintain/neutralized_database.rst:26 +msgid "all planned actions (e.g., automatic invoicing of subscriptions, mass mailing, etc.)" +msgstr "" + +#: ../../content/administration/maintain/neutralized_database.rst:27 +msgid "outgoing emails" +msgstr "" + +#: ../../content/administration/maintain/neutralized_database.rst:28 +msgid "bank synchronization" +msgstr "" + +#: ../../content/administration/maintain/neutralized_database.rst:29 +msgid "payment providers" +msgstr "" + +#: ../../content/administration/maintain/neutralized_database.rst:30 +msgid "delivery methods" +msgstr "" + +#: ../../content/administration/maintain/neutralized_database.rst:31 +msgid ":abbr:`IAP (In-App Purchase)` tokens" +msgstr "" + +#: ../../content/administration/maintain/neutralized_database.rst:34 +msgid "**A red banner at the top of the screen is displayed on the neutralized database so that it can be seen immediately.**" +msgstr "" + #: ../../content/administration/maintain/odoo_online.rst:3 msgid "Odoo Online database management" msgstr "" @@ -3155,7 +3126,7 @@ msgid "Use a custom :doc:`domain name ` to access the database via msgstr "" #: ../../content/administration/maintain/odoo_online.rst:75 -msgid "You can :ref:`register a domain name for free `." +msgid "You can :ref:`register a domain name for free `." msgstr "" #: ../../content/administration/maintain/odoo_online.rst:80 @@ -3452,19 +3423,20 @@ msgid "End of support" msgstr "" #: ../../content/administration/maintain/supported_versions.rst:34 -msgid "**Odoo 17.0**" +msgid "Odoo saas~17.1" 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: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:42 +#: ../../content/administration/maintain/supported_versions.rst:43 +#: ../../content/administration/maintain/supported_versions.rst:47 +#: ../../content/administration/maintain/supported_versions.rst:71 +#: ../../content/administration/maintain/supported_versions.rst:72 +#: ../../content/administration/maintain/supported_versions.rst:73 +#: ../../content/administration/maintain/supported_versions.rst:89 +#: ../../content/administration/maintain/supported_versions.rst:90 +#: ../../content/administration/maintain/supported_versions.rst:91 #: ../../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 @@ -3495,173 +3467,183 @@ msgstr "" 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 -msgid "November 2026 (planned)" -msgstr "" - -#: ../../content/administration/maintain/supported_versions.rst:40 -msgid "Odoo saas~16.4" -msgstr "" - -#: ../../content/administration/maintain/supported_versions.rst:42 -#: ../../content/administration/maintain/supported_versions.rst:43 +#: ../../content/administration/maintain/supported_versions.rst:36 +#: ../../content/administration/maintain/supported_versions.rst:37 #: ../../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:66 +#: ../../content/administration/maintain/supported_versions.rst:67 #: ../../content/administration/maintain/supported_versions.rst:78 #: ../../content/administration/maintain/supported_versions.rst:79 +#: ../../content/administration/maintain/supported_versions.rst:84 +#: ../../content/administration/maintain/supported_versions.rst:85 msgid "N/A" msgstr "" +#: ../../content/administration/maintain/supported_versions.rst:38 +msgid "January 2024" +msgstr "" + +#: ../../content/administration/maintain/supported_versions.rst:40 +msgid "**Odoo 17.0**" +msgstr "" + #: ../../content/administration/maintain/supported_versions.rst:44 -msgid "August 2023" +#: ../../content/administration/maintain/supported_versions.rst:99 +msgid "November 2023" +msgstr "" + +#: ../../content/administration/maintain/supported_versions.rst:45 +msgid "October 2026 (planned)" msgstr "" #: ../../content/administration/maintain/supported_versions.rst:46 +msgid "Odoo saas~16.4" +msgstr "" + +#: ../../content/administration/maintain/supported_versions.rst:50 +msgid "August 2023" +msgstr "" + +#: ../../content/administration/maintain/supported_versions.rst:52 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:65 #: ../../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:83 #: ../../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 +#: ../../content/administration/maintain/supported_versions.rst:107 +#: ../../content/administration/maintain/supported_versions.rst:108 +#: ../../content/administration/maintain/supported_versions.rst:109 msgid "|red|" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:50 +#: ../../content/administration/maintain/supported_versions.rst:56 msgid "June 2023" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:52 +#: ../../content/administration/maintain/supported_versions.rst:58 msgid "Odoo saas~16.2" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:56 +#: ../../content/administration/maintain/supported_versions.rst:62 msgid "March 2023" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:58 +#: ../../content/administration/maintain/supported_versions.rst:64 msgid "Odoo saas~16.1" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:62 +#: ../../content/administration/maintain/supported_versions.rst:68 msgid "February 2023" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:64 +#: ../../content/administration/maintain/supported_versions.rst:70 msgid "**Odoo 16.0**" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:68 -#: ../../content/administration/maintain/supported_versions.rst:99 +#: ../../content/administration/maintain/supported_versions.rst:74 +#: ../../content/administration/maintain/supported_versions.rst:105 msgid "October 2022" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:69 +#: ../../content/administration/maintain/supported_versions.rst:75 msgid "November 2025 (planned)" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:70 +#: ../../content/administration/maintain/supported_versions.rst:76 msgid "Odoo saas~15.2" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:74 +#: ../../content/administration/maintain/supported_versions.rst:80 msgid "March 2022" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:75 +#: ../../content/administration/maintain/supported_versions.rst:81 msgid "January 2023" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:76 +#: ../../content/administration/maintain/supported_versions.rst:82 msgid "Odoo saas~15.1" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:80 +#: ../../content/administration/maintain/supported_versions.rst:86 msgid "February 2022" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:81 +#: ../../content/administration/maintain/supported_versions.rst:87 msgid "July 2022" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:82 +#: ../../content/administration/maintain/supported_versions.rst:88 msgid "**Odoo 15.0**" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:86 +#: ../../content/administration/maintain/supported_versions.rst:92 msgid "October 2021" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:87 +#: ../../content/administration/maintain/supported_versions.rst:93 msgid "November 2024 (planned)" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:88 +#: ../../content/administration/maintain/supported_versions.rst:94 msgid "**Odoo 14.0**" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:92 +#: ../../content/administration/maintain/supported_versions.rst:98 msgid "October 2020" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:94 +#: ../../content/administration/maintain/supported_versions.rst:100 msgid "**Odoo 13.0**" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:98 +#: ../../content/administration/maintain/supported_versions.rst:104 msgid "October 2019" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:100 +#: ../../content/administration/maintain/supported_versions.rst:106 msgid "Older versions" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:104 +#: ../../content/administration/maintain/supported_versions.rst:110 msgid "Before 2019" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:105 +#: ../../content/administration/maintain/supported_versions.rst:111 msgid "Before 2022" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:107 +#: ../../content/administration/maintain/supported_versions.rst:113 msgid "Legend" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:109 +#: ../../content/administration/maintain/supported_versions.rst:115 msgid "|green| Supported version" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:111 +#: ../../content/administration/maintain/supported_versions.rst:117 msgid "|red| End-of-support" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:113 +#: ../../content/administration/maintain/supported_versions.rst:119 msgid "N/A Never released for this platform" msgstr "" -#: ../../content/administration/maintain/supported_versions.rst:116 +#: ../../content/administration/maintain/supported_versions.rst:122 msgid "Even though we don't support older versions, you can always `upgrade from any version `_." msgstr "" diff --git a/locale/sources/contributing.pot b/locale/sources/contributing.pot index 2fc6ad955..d78b111a4 100644 --- a/locale/sources/contributing.pot +++ b/locale/sources/contributing.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo 17.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-21 13:43+0000\n" +"POT-Creation-Date: 2024-03-08 12:48+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/developer.pot b/locale/sources/developer.pot index c5a44c49d..5259304c8 100644 --- a/locale/sources/developer.pot +++ b/locale/sources/developer.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo 17.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-19 15:28+0000\n" +"POT-Creation-Date: 2024-03-08 12:48+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -213,7 +213,6 @@ 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 "" @@ -236,8 +235,6 @@ 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/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 @@ -792,6 +789,8 @@ msgstr "" #: ../../content/developer/reference/backend/mixins.rst:0 #: ../../content/developer/reference/frontend/framework_overview.rst:0 #: ../../content/developer/reference/frontend/qweb.rst:0 +#: ../../content/developer/reference/upgrade_scripts.rst:0 +#: ../../content/developer/reference/upgrade_utils.rst:0 #: ../../../odoo/addons/payment/models/payment_method.py:docstring of odoo.addons.payment.models.payment_method.PaymentMethod._get_compatible_payment_methods:0 #: ../../../odoo/addons/payment/models/payment_method.py:docstring of odoo.addons.payment.models.payment_method.PaymentMethod._get_from_code:0 #: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_compatible_providers:0 @@ -956,7 +955,7 @@ msgid "When the field `company_id` is made required on a model, a good practice msgstr "" #: ../../content/developer/howtos/company.rst:168 -#: ../../content/developer/howtos/upgrade_custom_db.rst:132 +#: ../../content/developer/howtos/upgrade_custom_db.rst:129 #: ../../content/developer/howtos/website_themes/setup.rst:75 #: ../../content/developer/howtos/website_themes/theming.rst:496 #: ../../content/developer/reference/frontend/javascript_reference.rst:1154 @@ -996,11 +995,10 @@ msgstr "" #: ../../content/developer/reference/backend/security.rst:186 #: ../../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/reference/user_interface/view_architectures.rst:223 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2661 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2682 +#: ../../content/developer/reference/user_interface/view_records.rst:217 #: ../../content/developer/tutorials/web.rst:134 #: ../../content/developer/tutorials/web.rst:1872 #: ../../content/developer/tutorials/website.rst:495 @@ -1600,7 +1598,7 @@ msgstr "" #: ../../content/developer/howtos/scss_tips.rst:85 #: ../../content/developer/howtos/scss_tips.rst:86 -#: ../../content/developer/howtos/upgrade_custom_db.rst:114 +#: ../../content/developer/howtos/upgrade_custom_db.rst:111 #: ../../content/developer/howtos/website_themes/shapes.rst:139 msgid "..." msgstr "" @@ -1786,7 +1784,7 @@ msgid "3. XML view that calls the assets bundle" msgstr "" #: ../../content/developer/howtos/standalone_owl_application.rst:110 -msgid "Now that we have created our assets bundle, we need to create a :ref:`QWeb view` that uses that assets bundle." +msgid "Now that we have created our assets bundle, we need to create a :ref:`QWeb view ` that uses that assets bundle." msgstr "" #: ../../content/developer/howtos/standalone_owl_application.rst:134 @@ -2069,280 +2067,330 @@ msgstr "" msgid ":ref:`Upgrade the production database `." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:40 +#: ../../content/developer/howtos/upgrade_custom_db.rst:39 msgid "Step 1: Stop the developments" msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:42 +#: ../../content/developer/howtos/upgrade_custom_db.rst:41 msgid "Starting an upgrade requires commitment and development resources. If developments keep being made at the same time, those features will need to be re-upgraded and tested every time you change them. This is why we recommend a complete freeze of the codebase when starting the upgrade process. Needless to say, bug fixing is exempt from this recommendation." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:47 +#: ../../content/developer/howtos/upgrade_custom_db.rst:46 msgid "Once you have stopped development, it is a good practice to assess the developments made and compare them with the features introduced between your current version and the version you are targeting. Challenge the developments as much as possible and find functional workarounds. Removing redundancy between your developments and the standard version of Odoo will lead to an eased upgrade process and reduce technical debt." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:54 +#: ../../content/developer/howtos/upgrade_custom_db.rst:53 msgid "You can find information on the changes between versions in the `Release Notes `_." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:61 +#: ../../content/developer/howtos/upgrade_custom_db.rst:59 msgid "Step 2: Request an upgraded database" msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:63 +#: ../../content/developer/howtos/upgrade_custom_db.rst:61 msgid "Once the developments have stopped for the custom modules and the implemented features have been challenged to remove redundancy and unnecessary code, the next step is to request an upgraded test database. To do so, follow the steps mentioned in :ref:`upgrade/request-test-database`, depending on the hosting type of your database." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:68 +#: ../../content/developer/howtos/upgrade_custom_db.rst:66 msgid "The purpose of this stage is not to start working with the custom modules in the upgraded database, but to make sure the standard upgrade process works seamlessly, and the test database is delivered properly. If that's not the case, and the upgrade request fails, request the assistance of Odoo via the `support page `_ by selecting the option related to testing the upgrade." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:78 +#: ../../content/developer/howtos/upgrade_custom_db.rst:75 msgid "Step 3: Empty database" msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:80 +#: ../../content/developer/howtos/upgrade_custom_db.rst:77 msgid "Before working on an upgraded test database, we recommend to make the custom developments work on an empty database in the targeted version of your upgrade. This ensures that the customization is compatible with the new version of Odoo, allows to analyze how it behaves and interacts with the new features, and guarantees that they will not cause any issues when upgrading the database." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:85 -msgid "Making the custom modules work in an empty database also helps avoid changes and wrong configurations that might be present in the production database (like studio customization, customized website pages, email templates or translations). They are not intrinsically related to the custom modules and that can raise unwanted issues in this stage of the upgraded process." +#: ../../content/developer/howtos/upgrade_custom_db.rst:82 +msgid "Making the custom modules work in an empty database also helps avoid changes and wrong configurations that might be present in the production database (like studio customization, customized website pages, email templates or translations). They are not intrinsically related to the custom modules and that can raise unwanted issues in this stage of the upgrade process." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:90 +#: ../../content/developer/howtos/upgrade_custom_db.rst:87 msgid "To make custom modules work on an empty database we advise to follow these steps:" msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:92 +#: ../../content/developer/howtos/upgrade_custom_db.rst:89 msgid ":ref:`upgrade_custom/empty_database/modules_installable`" msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:93 +#: ../../content/developer/howtos/upgrade_custom_db.rst:90 msgid ":ref:`upgrade_custom/empty_database/test_fixes`" msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:94 +#: ../../content/developer/howtos/upgrade_custom_db.rst:91 msgid ":ref:`upgrade_custom/empty_database/clean_code`" msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:95 +#: ../../content/developer/howtos/upgrade_custom_db.rst:92 msgid ":ref:`Make standard tests run successfully `" msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:100 +#: ../../content/developer/howtos/upgrade_custom_db.rst:97 msgid "Make custom modules installable" msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:102 +#: ../../content/developer/howtos/upgrade_custom_db.rst:99 msgid "The first step is to make the custom modules installable in the new Odoo version. This means, starting by ensuring there are no tracebacks or warnings during their installation. For this, install the custom modules, one by one, in an empty database of the new Odoo version and fix the tracebacks and warnings that arise from that." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:107 +#: ../../content/developer/howtos/upgrade_custom_db.rst:104 msgid "This process will help detect issues during the installation of the modules. For example:" msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:109 +#: ../../content/developer/howtos/upgrade_custom_db.rst:106 msgid "Invalid module dependencies." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:110 +#: ../../content/developer/howtos/upgrade_custom_db.rst:107 msgid "Syntax change: assets declaration, OWL updates, attrs." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:111 +#: ../../content/developer/howtos/upgrade_custom_db.rst:108 msgid "References to standard fields, models, views not existing anymore or renamed." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:112 +#: ../../content/developer/howtos/upgrade_custom_db.rst:109 msgid "Xpath that moved or were removed from views." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:113 +#: ../../content/developer/howtos/upgrade_custom_db.rst:110 msgid "Methods renamed or removed." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:119 +#: ../../content/developer/howtos/upgrade_custom_db.rst:116 msgid "Test and fixes" msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:121 +#: ../../content/developer/howtos/upgrade_custom_db.rst:118 msgid "Once there are no more tracebacks when installing the modules, the next step is to test them. Even if the custom modules are installable on an empty database, this does not guarantee there are no errors during their execution. Because of this, we encourage to test thoroughly all the customization to make sure everything is working as expected." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:126 +#: ../../content/developer/howtos/upgrade_custom_db.rst:123 msgid "This process will help detect further issues that are not identified during the module installation and can only be detected in runtime. For example, deprecated calls to standard python or OWL functions, non-existing references to standard fields, etc." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:130 +#: ../../content/developer/howtos/upgrade_custom_db.rst:127 msgid "We recommend to test all the customization, especially the following elements:" msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:133 +#: ../../content/developer/howtos/upgrade_custom_db.rst:130 msgid "Email templates" msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:134 +#: ../../content/developer/howtos/upgrade_custom_db.rst:131 msgid "Reports" msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:135 +#: ../../content/developer/howtos/upgrade_custom_db.rst:132 msgid "Server actions and automated actions" msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:136 +#: ../../content/developer/howtos/upgrade_custom_db.rst:133 msgid "Changes in the standard workflows" msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:137 +#: ../../content/developer/howtos/upgrade_custom_db.rst:134 #: ../../content/developer/tutorials/backend.rst:716 msgid "Computed fields" msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:139 +#: ../../content/developer/howtos/upgrade_custom_db.rst:136 msgid "We also encourage to write automated tests to save time during the testing iterations, increase the test coverage, and ensure that the changes and fixes introduced do not break the existing flows. If there are tests already implemented in the customization, make sure they are upgraded to the new Odoo version and run successfully, fixing issues that might be present." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:147 +#: ../../content/developer/howtos/upgrade_custom_db.rst:144 msgid "Clean the code" msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:149 +#: ../../content/developer/howtos/upgrade_custom_db.rst:146 msgid "At this stage of the upgrade process, we also suggest to clean the code as much as possible. This includes:" msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:152 +#: ../../content/developer/howtos/upgrade_custom_db.rst:149 msgid "Remove redundant and unnecessary code." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:153 +#: ../../content/developer/howtos/upgrade_custom_db.rst:150 msgid "Remove features that are now part of Odoo standard, as described in :ref:`upgrade_custom/stop_developments`." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:155 +#: ../../content/developer/howtos/upgrade_custom_db.rst:152 msgid "Clean commented code if it is not needed anymore." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:156 +#: ../../content/developer/howtos/upgrade_custom_db.rst:153 msgid "Refactor the code (functions, fields, views, reports, etc.) if needed." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:161 +#: ../../content/developer/howtos/upgrade_custom_db.rst:158 msgid "Standard tests" msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:163 +#: ../../content/developer/howtos/upgrade_custom_db.rst:160 msgid "Once the previous steps are completed, we advise to make sure all standard tests associated to the dependencies of the custom module pass. Standard tests ensure the validation of the code logic and prevent data corruption. They will help you identify bugs or unwanted behavior before you work on your database." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:168 +#: ../../content/developer/howtos/upgrade_custom_db.rst:165 msgid "In case there are standard test failing, we suggest to analyze the reason for their failure:" msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:170 +#: ../../content/developer/howtos/upgrade_custom_db.rst:167 msgid "The customization changes the standard workflow: Adapt the standard test to your workflow." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:171 +#: ../../content/developer/howtos/upgrade_custom_db.rst:168 msgid "The customization did not take into account a special flow: Adapt your customization to ensure it works for all the standard workflows." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:178 +#: ../../content/developer/howtos/upgrade_custom_db.rst:175 msgid "Step 4: Upgraded database" msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:180 +#: ../../content/developer/howtos/upgrade_custom_db.rst:177 msgid "Once the custom modules are installable and working properly in an empty database, it is time to make them work on an :ref:`upgraded database `." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:183 +#: ../../content/developer/howtos/upgrade_custom_db.rst:180 msgid "To make sure the custom code is working flawlessly in the new version, follow these steps:" msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:185 +#: ../../content/developer/howtos/upgrade_custom_db.rst:182 msgid ":ref:`upgrade_custom/upgraded_database/migrate_data`" msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:186 +#: ../../content/developer/howtos/upgrade_custom_db.rst:183 msgid ":ref:`upgrade_custom/upgraded_database/test_custom`" msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:191 +#: ../../content/developer/howtos/upgrade_custom_db.rst:188 msgid "Migrate the data" msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:193 -msgid "During the upgrade of the custom modules, you might have to use migration scripts to reflect changes from the source code to their corresponding data." +#: ../../content/developer/howtos/upgrade_custom_db.rst:190 +msgid "During the upgrade of the custom modules, you might have to use :doc:`upgrade scripts <../reference/upgrade_scripts>` to reflect changes from the source code to their corresponding data. Together with the upgrade scripts, you can also make use of the :doc:`../reference/upgrade_utils` and its helper functions." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:196 -msgid "Any technical data that was renamed during the upgrade of the custom code (models, fields, external identifiers) should be renamed using migration scripts to avoid data loss during the module upgrade." +#: ../../content/developer/howtos/upgrade_custom_db.rst:195 +msgid "Any technical data that was renamed during the upgrade of the custom code (models, fields, external identifiers) should be renamed using upgrade scripts to avoid data loss during the module upgrade. See also: :meth:`rename_field`, :meth:`rename_model`, :meth:`rename_xmlid`." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:199 +#: ../../content/developer/howtos/upgrade_custom_db.rst:198 msgid "Data from standard models removed from the source code of the newer Odoo version and from the database during the standard upgrade process might need to be recovered from the old model table if it is still present." msgstr "" #: ../../content/developer/howtos/upgrade_custom_db.rst:203 -msgid "Migration scripts can also be used to:" +msgid "Custom fields for model ``sale.subscription`` are not automatically migrated from Odoo 15 to Odoo 16 (when the model was merged into ``sale.order``). In this case, a SQL query can be executed on an upgrade script to move the data from one table to the other. Take into account that all columns/fields must already exist, so consider doing this in a ``post-`` script (See :ref:`upgrade-scripts/phases`)." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:205 +#: ../../content/developer/howtos/upgrade_custom_db.rst:223 +msgid "Check the documentation for more information on :doc:`../reference/upgrade_scripts`." +msgstr "" + +#: ../../content/developer/howtos/upgrade_custom_db.rst:225 +msgid "Upgrade scripts can also be used to:" +msgstr "" + +#: ../../content/developer/howtos/upgrade_custom_db.rst:227 msgid "Ease the processing time of an upgrade. For example, to store the value of computed stored fields on models with an excessive number of records by using SQL queries." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:207 -msgid "Recompute fields in case the computation of their value has changed." +#: ../../content/developer/howtos/upgrade_custom_db.rst:229 +msgid "Recompute fields in case the computation of their value has changed. See also :meth:`recompute_fields`." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:208 -msgid "Uninstall unwanted custom modules." +#: ../../content/developer/howtos/upgrade_custom_db.rst:231 +msgid "Uninstall unwanted custom modules. See also :meth:`remove_module`." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:209 +#: ../../content/developer/howtos/upgrade_custom_db.rst:232 msgid "Correct faulty data or wrong configurations." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:214 -msgid "Test the custom modules" -msgstr "" - -#: ../../content/developer/howtos/upgrade_custom_db.rst:216 -msgid "To make sure the custom modules work properly with your data in the upgraded database, they need to be tested as well. This helps ensure both the standard and the custom data stored in the database are consistent and that nothing was lost during the upgrade process." -msgstr "" - -#: ../../content/developer/howtos/upgrade_custom_db.rst:220 -msgid "Things to pay attention to:" -msgstr "" - -#: ../../content/developer/howtos/upgrade_custom_db.rst:222 -msgid "Views not working: During the upgrade, if a view causes issues because of its content, it gets disabled. You can find the information on disabled views on the :ref:`Upgrade report `. This view needs to be activated again. To achieve this, we recommend the use of migration scripts." -msgstr "" - -#: ../../content/developer/howtos/upgrade_custom_db.rst:226 -msgid ":doc:`Module data <../tutorials/define_module_data>` not updated: Custom records that have the ``noupdate`` flag are not updated when upgrading the module in the new database. For the custom data that needs to be updated due to changes in the new version, we recommend to use migration scripts to do so." -msgstr "" - #: ../../content/developer/howtos/upgrade_custom_db.rst:235 -msgid "Step 5: Testing and rehearsal" +msgid "Running and testing upgrade scripts" msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:237 -msgid "When the custom modules are working properly in the upgraded database, it is crucial to do another round of testing to assess the database usability and detect any issues that might have gone unnoticed in previous tests. For further information about testing the upgraded database, check :ref:`upgrade/test_your_db`." +#: ../../content/developer/howtos/upgrade_custom_db.rst:239 +msgid "Odoo Online" msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:242 -msgid "As mentioned in :ref:`upgrade/upgrade-prod`, both standard upgrade scripts and your database are constantly evolving. Therefore it is highly recommended to frequently request new upgraded test databases and ensure that the upgrade process is still successful." +#: ../../content/developer/howtos/upgrade_custom_db.rst:241 +msgid "As the instalation of custom modules containing Python files is not allowed on Odoo Online databases, it is not possible to run upgrade scripts on this platform." +msgstr "" + +#: ../../content/developer/howtos/upgrade_custom_db.rst:244 +#: ../../content/developer/howtos/website_themes/going_live.rst:34 +#: ../../content/developer/howtos/website_themes/setup.rst:121 +msgid "Odoo.sh" msgstr "" #: ../../content/developer/howtos/upgrade_custom_db.rst:246 -msgid "In addition to that, make a full rehearsal of the upgrade process the day before upgrading the production database to avoid undesired behavior during the upgrade and to detect any issue that might have occurred with the migrated data." +msgid "As explained on the `Odoo.sh` tab of :ref:`upgrade/request-test-database`, Odoo.sh is integrated with the upgrade platform." msgstr "" -#: ../../content/developer/howtos/upgrade_custom_db.rst:254 -msgid "Step 6: Production upgrade" +#: ../../content/developer/howtos/upgrade_custom_db.rst:249 +msgid "Once the upgrade of a staging branch is on \"Update on commit\" mode, each time a commit is pushed on the branch, the upgraded backup is restored and all the custom modules are updated. This update includes the execution of the upgrade scripts." +msgstr "" + +#: ../../content/developer/howtos/upgrade_custom_db.rst:253 +msgid "When upgrading the production database, the execution of the upgrade scripts is also part of the update of the custom modules done by the platform when the upgraded database is restored." msgstr "" #: ../../content/developer/howtos/upgrade_custom_db.rst:256 +msgid "On-premise" +msgstr "" + +#: ../../content/developer/howtos/upgrade_custom_db.rst:258 +msgid "Once you receive the upgraded dump of the database from the `Upgrade platform `_, deploy the database and update all the custom modules by invoking the command :doc:`odoo-bin ` in the shell. To update the custom modules, use the option: `-u , --update `." +msgstr "" + +#: ../../content/developer/howtos/upgrade_custom_db.rst:265 +msgid "As mentioned in the :doc:`CLI documentation `, the command used to call the CLI depends on how you installed Odoo." +msgstr "" + +#: ../../content/developer/howtos/upgrade_custom_db.rst:271 +msgid "Test the custom modules" +msgstr "" + +#: ../../content/developer/howtos/upgrade_custom_db.rst:273 +msgid "To make sure the custom modules work properly with your data in the upgraded database, they need to be tested as well. This helps ensure both the standard and the custom data stored in the database are consistent and that nothing was lost during the upgrade process." +msgstr "" + +#: ../../content/developer/howtos/upgrade_custom_db.rst:277 +msgid "Things to pay attention to:" +msgstr "" + +#: ../../content/developer/howtos/upgrade_custom_db.rst:279 +msgid "Views not working: During the upgrade, if a view causes issues because of its content, it gets disabled. You can find the information on disabled views on the :ref:`Upgrade report `. This view needs to be activated again (or removed if not useful anymore). To achieve this, we recommend the use of upgrade scripts." +msgstr "" + +#: ../../content/developer/howtos/upgrade_custom_db.rst:283 +msgid ":doc:`Module data <../tutorials/define_module_data>` not updated: Custom records that have the ``noupdate`` flag are not updated when upgrading the module in the new database. For the custom data that needs to be updated due to changes in the new version, we recommend to use upgrade scripts to do so. See also: :meth:`update_record_from_xml`." +msgstr "" + +#: ../../content/developer/howtos/upgrade_custom_db.rst:291 +msgid "Step 5: Testing and rehearsal" +msgstr "" + +#: ../../content/developer/howtos/upgrade_custom_db.rst:293 +msgid "When the custom modules are working properly in the upgraded database, it is crucial to do another round of testing to assess the database usability and detect any issues that might have gone unnoticed in previous tests. For further information about testing the upgraded database, check :ref:`upgrade/test_your_db`." +msgstr "" + +#: ../../content/developer/howtos/upgrade_custom_db.rst:298 +msgid "As mentioned in :ref:`upgrade/upgrade-prod`, both standard upgrade scripts and your database are constantly evolving. Therefore it is highly recommended to frequently request new upgraded test databases and ensure that the upgrade process is still successful." +msgstr "" + +#: ../../content/developer/howtos/upgrade_custom_db.rst:302 +msgid "In addition to that, make a full rehearsal of the upgrade process the day before upgrading the production database to avoid undesired behavior during the upgrade and to detect any issue that might have occurred with the migrated data." +msgstr "" + +#: ../../content/developer/howtos/upgrade_custom_db.rst:309 +msgid "Step 6: Production upgrade" +msgstr "" + +#: ../../content/developer/howtos/upgrade_custom_db.rst:311 msgid "Once you are confident about upgrading your production database, follow the process described on :ref:`upgrade/upgrade-prod`, depending on the hosting type of your database." msgstr "" @@ -2687,7 +2735,6 @@ msgid "Description" msgstr "" #: ../../content/developer/howtos/website_themes/building_blocks.rst:86 -#: ../../content/developer/reference/user_interface/view_architecture.rst:0 msgid "class" msgstr "" @@ -3233,11 +3280,6 @@ msgstr "" msgid "`Odoo eLearning: Register a Free Domain Name `_" msgstr "" -#: ../../content/developer/howtos/website_themes/going_live.rst:34 -#: ../../content/developer/howtos/website_themes/setup.rst:121 -msgid "Odoo.sh" -msgstr "" - #: ../../content/developer/howtos/website_themes/going_live.rst:36 msgid "Go to :guilabel:`Apps` and click on :guilabel:`Update Apps List` in the menu. Search for your module in the list and install it." msgstr "" @@ -3475,7 +3517,6 @@ 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 "" @@ -3484,7 +3525,6 @@ 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 "" @@ -3493,7 +3533,6 @@ 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 "" @@ -3502,7 +3541,6 @@ 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 "" @@ -3512,7 +3550,6 @@ msgstr "" #: ../../content/developer/howtos/website_themes/layout.rst:161 #: ../../content/developer/reference/frontend/qweb.rst:196 -#: ../../content/developer/reference/user_interface/view_records.rst:0 msgid "attributes" msgstr "" @@ -3545,7 +3582,7 @@ msgid "You can find more information about XPath in this `cheat sheet ` 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 @@ -6849,7 +6932,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 +#: ../../content/developer/reference/user_interface/view_architectures.rst:3648 msgid "API" msgstr "" @@ -6961,6 +7044,7 @@ msgstr "" #: ../../content/developer/reference/frontend/qweb.rst:0 #: ../../content/developer/reference/frontend/registries.rst:0 #: ../../content/developer/reference/frontend/services.rst:0 +#: ../../content/developer/reference/upgrade_utils.rst:0 #: ../../../odoo/addons/payment/models/payment_method.py:docstring of odoo.addons.payment.models.payment_method.PaymentMethod._get_compatible_payment_methods:0 #: ../../../odoo/addons/payment/models/payment_method.py:docstring of odoo.addons.payment.models.payment_method.PaymentMethod._get_from_code:0 #: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._compute_feature_support_fields:0 @@ -7050,6 +7134,7 @@ msgid "ASCII token string" msgstr "" #: ../../content/developer/reference/backend/mixins.rst:0 +#: ../../content/developer/reference/upgrade_utils.rst:0 #: ../../../odoo/addons/payment/models/payment_method.py:docstring of odoo.addons.payment.models.payment_method.PaymentMethod._get_compatible_payment_methods:0 #: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_compatible_providers:0 #: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_redirect_form_view:0 @@ -7345,7 +7430,6 @@ 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 "" @@ -7816,8 +7900,6 @@ msgstr "" #: ../../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 "" @@ -9813,7 +9895,6 @@ msgid "not copied" msgstr "" #: ../../content/developer/reference/backend/orm.rst:352 -#: ../../content/developer/reference/user_interface/view_architecture.rst:0 #: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountGroup.parent_id:0 msgid "readonly" msgstr "" @@ -9908,7 +9989,8 @@ msgstr "" #: ../../content/developer/reference/backend/orm.rst:463 #: ../../content/developer/reference/backend/orm.rst:500 -#: ../../content/developer/reference/user_interface/view_records.rst:83 +#: ../../content/developer/reference/user_interface/view_records.rst:81 +#: ../../content/developer/reference/user_interface/view_records.rst:88 msgid ":class:`~odoo.fields.Char`" msgstr "" @@ -9949,7 +10031,7 @@ msgid "default_value of :attr:`~._parent_name`, used to organize records in a tr msgstr "" #: ../../content/developer/reference/backend/orm.rst:491 -#: ../../content/developer/reference/user_interface/view_records.rst:119 +#: ../../content/developer/reference/user_interface/view_records.rst:131 msgid ":class:`~odoo.fields.Many2one`" msgstr "" @@ -10340,6 +10422,9 @@ msgstr "" msgid "Return the record corresponding to the given ``xml_id``." msgstr "" +#: ../../content/developer/reference/upgrade_utils.rst:230 +#: ../../content/developer/reference/upgrade_utils.rst:254 +#: ../../content/developer/reference/upgrade_utils.rst:274 #: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.ref:3 msgid "record xml_id, under the format ````" msgstr "" @@ -11174,6 +11259,7 @@ msgid "Returns the environment of the given recordset." msgstr "" #: ../../content/developer/reference/backend/orm.rst:994 +#: ../../content/developer/reference/upgrade_utils.rst:192 msgid ":class:`~odoo.api.Environment`" msgstr "" @@ -11313,7 +11399,7 @@ msgid ":ref:`A search domain `." msgstr "" #: ../../content/developer/reference/backend/orm.rst:1045 -#: ../../content/developer/reference/user_interface/view_architecture.rst:3961 +#: ../../content/developer/reference/user_interface/view_architectures.rst:3635 msgid "Map" msgstr "" @@ -12506,7 +12592,7 @@ msgid "a small description of your format" msgstr "" #: ../../content/developer/reference/backend/reports.rst:202 -#: ../../content/developer/reference/user_interface/view_architecture.rst:3655 +#: ../../content/developer/reference/user_interface/view_architectures.rst:3386 msgid "``format``" msgstr "" @@ -15253,7 +15339,7 @@ msgid "a human-readable description of the model" msgstr "" #: ../../content/developer/reference/external_api.rst:1106 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2822 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2718 msgid "``model``" msgstr "" @@ -15274,7 +15360,7 @@ msgid "list of the model's fields through a :class:`~odoo.fields.One2many` to :r msgstr "" #: ../../content/developer/reference/external_api.rst:1115 -msgid ":class:`~odoo.fields.One2many` to the :doc:`../reference/user_interface//view_architecture` defined for the model" +msgid ":class:`~odoo.fields.One2many` to the :doc:`../reference/user_interface/view_architectures` defined for the model" msgstr "" #: ../../content/developer/reference/external_api.rst:1119 @@ -16874,14 +16960,6 @@ msgstr "" #: ../../content/developer/reference/frontend/framework_overview.rst:331 #: ../../content/developer/reference/frontend/registries.rst:292 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1181 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2047 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2114 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2444 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2886 -#: ../../content/developer/reference/user_interface/view_architecture.rst:3008 -#: ../../content/developer/reference/user_interface/view_architecture.rst:3344 -#: ../../content/developer/reference/user_interface/view_architecture.rst:3728 msgid "Example:" msgstr "" @@ -16985,7 +17063,7 @@ msgstr "" #: ../../content/developer/reference/frontend/services.rst:441 #: ../../content/developer/reference/frontend/services.rst:450 #: ../../content/developer/reference/frontend/services.rst:469 -#: ../../content/developer/reference/user_interface/view_architecture.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures.rst:0 msgid "string" msgstr "" @@ -17701,7 +17779,7 @@ msgid "Only one alias can be defined using this method. If you were to need anot msgstr "" #: ../../content/developer/reference/frontend/javascript_modules.rst:193 -#: ../../content/developer/reference/user_interface/view_architecture.rst:3427 +#: ../../content/developer/reference/user_interface/view_architectures.rst:3158 msgid "Limitations" msgstr "" @@ -18018,7 +18096,7 @@ msgid "In this example, the *init* function is the constructor. It will be call msgstr "" #: ../../content/developer/reference/frontend/javascript_reference.rst:196 -#: ../../content/developer/reference/user_interface/view_records.rst:158 +#: ../../content/developer/reference/user_interface/view_records.rst:169 #: ../../content/developer/tutorials/backend.rst:521 msgid "Inheritance" msgstr "" @@ -20558,6 +20636,7 @@ msgid "`No color`" msgstr "" #: ../../content/developer/reference/frontend/owl_components.rst:387 +#: ../../content/developer/reference/user_interface/view_architectures.rst:584 msgid "`1`" msgstr "" @@ -20566,6 +20645,7 @@ msgid "`Red`" msgstr "" #: ../../content/developer/reference/frontend/owl_components.rst:389 +#: ../../content/developer/reference/user_interface/view_architectures.rst:575 msgid "`2`" msgstr "" @@ -21951,7 +22031,7 @@ msgid "Request-based" msgstr "" #: ../../content/developer/reference/frontend/qweb.rst:676 -msgid "Most Python-side uses of QWeb are in controllers (and during HTTP requests), in which case templates stored in the database (as :ref:`views `) can be trivially rendered by calling :meth:`odoo.http.HttpRequest.render`:" +msgid "Most Python-side uses of QWeb are in controllers (and during HTTP requests), in which case templates stored in the database (as :ref:`views `) can be trivially rendered by calling :meth:`odoo.http.HttpRequest.render`:" msgstr "" #: ../../content/developer/reference/frontend/qweb.rst:687 @@ -22369,7 +22449,6 @@ msgid "value for the new entry" msgstr "" #: ../../content/developer/reference/frontend/registries.rst:50 -#: ../../content/developer/reference/user_interface/view_architecture.rst:0 msgid "options" msgstr "" @@ -23565,10 +23644,9 @@ msgstr "" #: ../../content/developer/reference/frontend/services.rst:872 #: ../../content/developer/reference/frontend/services.rst:878 #: ../../content/developer/reference/frontend/services.rst:884 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2276 -#: ../../content/developer/reference/user_interface/view_architecture.rst:3537 -#: ../../content/developer/reference/user_interface/view_architecture.rst:3856 -#: ../../content/developer/reference/user_interface/view_architecture.rst:4012 +#: ../../content/developer/reference/user_interface/view_architectures.rst:3268 +#: ../../content/developer/reference/user_interface/view_architectures.rst:3530 +#: ../../content/developer/reference/user_interface/view_architectures.rst:3686 #: ../../content/developer/tutorials/backend.rst:908 msgid "``string``" msgstr "" @@ -23670,7 +23748,6 @@ msgstr "" msgid "Original definition from `account`" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:0 #: ../../content/developer/tutorials/getting_started/04_basicmodel.rst:262 #: ../../content/developer/tutorials/getting_started/04_basicmodel.rst:263 #: ../../content/developer/tutorials/getting_started/08_relations.rst:73 @@ -23832,6 +23909,29 @@ msgstr "" msgid "``accounts``: Accounts ``taxes``: Taxes ``products``: Products" msgstr "" +#: ../../content/developer/reference/user_interface/view_architectures.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_context.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_help.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_icon.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_name.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_string.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_readonly.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_required.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_string.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_widget.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_class.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_column_invisible.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_groups.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_invisible.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_banner_route.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_create.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_default_group_by.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_default_order.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_delete.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_edit.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_sample.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_string.rst:0 +#: ../../content/developer/reference/user_interface/view_records.rst:0 #: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.active:0 #: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.applicability:0 #: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.active:0 @@ -23845,6 +23945,27 @@ msgstr "" #: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.type_tax_use:0 #: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.factor_percent:0 #: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.repartition_type:0 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_context.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_help.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_icon.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_name.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_string.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_readonly.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_required.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_string.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_widget.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_class.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_column_invisible.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_groups.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_invisible.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_banner_route.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_create.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_default_group_by.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_default_order.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_delete.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_edit.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_sample.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_string.rst:0 msgid "default" msgstr "" @@ -24471,6 +24592,11 @@ msgid "Whether the payment is made through express checkout." msgstr "" #: ../../../odoo/addons/payment/models/payment_method.py:docstring of odoo.addons.payment.models.payment_method.PaymentMethod._get_compatible_payment_methods:15 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_compatible_providers:15 +msgid "Optional data. This parameter is not used here." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_method.py:docstring of odoo.addons.payment.models.payment_method.PaymentMethod._get_compatible_payment_methods:16 msgid "The compatible payment methods." msgstr "" @@ -24612,10 +24738,6 @@ msgstr "" msgid "Whether the operation is a validation." msgstr "" -#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_compatible_providers:15 -msgid "Optional data. This parameter is not used here." -msgstr "" - #: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_compatible_providers:16 msgid "The compatible providers." msgstr "" @@ -25222,19 +25344,522 @@ msgstr "" msgid "The extra states that should be considered allowed target states for the source state 'pending'." msgstr "" +#: ../../content/developer/reference/upgrade_scripts.rst:3 +msgid "Upgrade scripts" +msgstr "" + +#: ../../content/developer/reference/upgrade_scripts.rst:5 +msgid "An upgrade script is a Python file containing a function called :meth:`migrate`, which the upgrade process invokes during the update of a module." +msgstr "" + +#: ../../content/developer/reference/upgrade_scripts.rst:10 +msgid "current database cursor" +msgstr "" + +#: ../../content/developer/reference/upgrade_scripts.rst:12 +msgid "installed version of the module" +msgstr "" + +#: ../../content/developer/reference/upgrade_scripts.rst:14 +msgid "Typically, this function executes one or multiple SQL queries and can also access Odoo's ORM, as well as the :doc:`./upgrade_utils`." +msgstr "" + +#: ../../content/developer/reference/upgrade_scripts.rst:18 +msgid "Writing upgrade scripts" +msgstr "" + +#: ../../content/developer/reference/upgrade_scripts.rst:20 +msgid "Upgrade scripts follow a specific tree structure with a naming convention which determines when they are executed." +msgstr "" + +#: ../../content/developer/reference/upgrade_scripts.rst:23 +msgid "The structure of an upgrade script path is :file:`$module/migrations/$version/{pre,post,end}-*.py`, where `$module` is the module for which the script will run, `$version` is the full version of the module (including Odoo's major version and the module's minor version) and `{pre|post|end}-*.py` is the file that needs to be executed. The file's name will determine the :ref:`phase ` and order in which it is executed for that module and version." +msgstr "" + +#: ../../content/developer/reference/upgrade_scripts.rst:30 +msgid "Upgrade scripts are only executed when the module is being updated. Therefore, the module's minor version set in the `$version` directory needs to be higher than the module's installed version and equal or lower to the updated version of the module." +msgstr "" + +#: ../../content/developer/reference/upgrade_scripts.rst:36 +msgid "Directory structure of an upgrade script for a custom module named `awesome_partner` upgraded to version `2.0` on Odoo 17." +msgstr "" + +#: ../../content/developer/reference/upgrade_scripts.rst:46 +msgid "Two upgrade scripts examples with the content of the :file:`pre-exclamation.py`, file adding \"!\" at the end of partners' names:" +msgstr "" + +#: ../../content/developer/reference/upgrade_scripts.rst:77 +msgid "Note that in the second example, the script takes advantage of the :doc:`./upgrade_utils` to access the ORM. Check the documentation to find out more about this library." +msgstr "" + +#: ../../content/developer/reference/upgrade_scripts.rst:83 +msgid "Phases of upgrade scripts" +msgstr "" + +#: ../../content/developer/reference/upgrade_scripts.rst:85 +msgid "The upgrade process consists of three phases for each version of each module:" +msgstr "" + +#: ../../content/developer/reference/upgrade_scripts.rst:87 +msgid "The pre-phase, before the module is loaded." +msgstr "" + +#: ../../content/developer/reference/upgrade_scripts.rst:88 +msgid "The post-phase, after the module and its dependencies are loaded and updated." +msgstr "" + +#: ../../content/developer/reference/upgrade_scripts.rst:89 +msgid "The end-phase, after all modules have been loaded and updated for that version." +msgstr "" + +#: ../../content/developer/reference/upgrade_scripts.rst:91 +msgid "Upgrade scripts are grouped according to the first part of their filenames into the corresponding phase. Within each phase, the files are executed according to their lexical order." +msgstr "" + +#: ../../content/developer/reference/upgrade_scripts.rst:94 +msgid "Execution order of example scripts for one module in one version" +msgstr "" + +#: ../../content/developer/reference/upgrade_scripts.rst:96 +msgid ":file:`pre-10-do_something.py`" +msgstr "" + +#: ../../content/developer/reference/upgrade_scripts.rst:97 +msgid ":file:`pre-20-something_else.py`" +msgstr "" + +#: ../../content/developer/reference/upgrade_scripts.rst:98 +msgid ":file:`post-do_something.py`" +msgstr "" + +#: ../../content/developer/reference/upgrade_scripts.rst:99 +msgid ":file:`post-something.py`" +msgstr "" + +#: ../../content/developer/reference/upgrade_scripts.rst:100 +msgid ":file:`end-01-migrate.py`" +msgstr "" + +#: ../../content/developer/reference/upgrade_scripts.rst:101 +msgid ":file:`end-migrate.py`" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:3 +msgid "Upgrade utils" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:5 +msgid "`Upgrade utils `_ is a library that contains helper functions to facilitate the writing of upgrade scripts. This library, used by Odoo for the upgrade scripts of standard modules, provides reliability and helps speed up the upgrade process:" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:9 +msgid "The helper functions help make sure the data is consistent in the database." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:10 +msgid "It takes care of indirect references of the updated records." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:11 +msgid "Allows calling functions and avoid writing code, saving time and reducing development risks." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:12 +msgid "Helpers allow to focus on what is important for the upgrade and not think of details." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:15 +msgid "Installation" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:17 +msgid "Clone the `Upgrade utils repository `_ locally and start ``odoo`` with the ``src`` directory prepended to the ``--upgrade-path`` option." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:24 +msgid "On platforms where you do not manage Odoo yourself, you can install this library via `pip`:" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:30 +msgid "On `Odoo.sh `_ it is recommended to add it to the :file:`requirements.txt` of the custom repository. For this, add the following line inside the file::" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:36 +msgid "Using Upgrade utils" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:38 +msgid "Once installed, the following packages are available for the upgrade scripts:" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:40 +msgid ":mod:`odoo.upgrade.util`: the helper itself." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:41 +msgid ":mod:`odoo.upgrade.testing`: base TestCase classes." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:43 +msgid "To use it in upgrade scripts, simply import it:" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:53 +msgid "Now, the helper functions are available to be called through ``util``." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:56 +msgid "Util functions" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:58 +msgid "Upgrade utils provides many useful functions to ease the upgrade process. Here, we describe some of the most useful ones. Refer to the `util folder `_ for the comprehensive declaration of helper functions." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:65 +msgid "All util functions receive :attr:`cr` as a parameter. This refers to the database cursor. Pass the one received as a parameter in :meth:`migrate`." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:74 +msgid "Remove a field and its references from the database." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:76 +msgid "model name of the field to remove" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:77 +msgid "name of the field to remove" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:78 +msgid "whether the field's column and inheritance are removed in ``CASCADE``" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:79 +msgid "whether the field's column is dropped" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:80 +#: ../../content/developer/reference/upgrade_utils.rst:97 +#: ../../content/developer/reference/upgrade_utils.rst:109 +msgid "list of models whose field's inheritance is skipped. Use ``\"*\"`` to skip all inheritances" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:86 +msgid "Rename a field and its references from ``old`` to ``new``." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:88 +msgid "model name of the field to rename" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:89 +msgid "current name od the field to rename" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:90 +msgid "new name od the field to rename" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:91 +msgid "whether all references of field ``old`` to ``new`` are replaced in: ``ir_filters``, ``ir_exports_line``, ``ir_act_server``, ``mail_alias``, ``ir_ui_view_custom (dashboard)``, ``domains (using \"domain_adapter\")``, ``related fields``" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:94 +msgid "function that takes three arguments and returns a domain that substitutes the original leaf: ``(leaf: Tuple[str,str,Any], in_or: bool, negated: bool)`` -> ``List[Union[str,Tuple[str,str,Any]]]``" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:103 +msgid "Move a field's reference in ``ir_model_data`` table from ``old_module`` to ``new_module``." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:105 +msgid "model name of the field to move" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:106 +msgid "name of the field to move" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:107 +msgid "current module name of the field to move" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:108 +msgid "new module name of the field to move" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:118 +msgid "Remove a model and its references from the database." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:120 +msgid "name of the model to remove" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:121 +msgid "whether the model's table is dropped" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:122 +msgid "list of m2m tables ignored to remove. Use ``\"*\"`` to ignore all m2m tables" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:128 +msgid "Rename a model and its references from ``old`` to ``new``." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:130 +msgid "current name of the model to rename" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:131 +msgid "new name of the model to rename" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:132 +msgid "whether the model's table is renamed" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:137 +msgid "Merge the references from ``source`` model into ``target`` model and removes ``source`` model and its references. By default, only the fields with the same name in both models are mapped." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:141 +msgid "This function does not move the records from ``source`` model to ``target`` model." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:143 +msgid "name of the source model of the merge" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:144 +msgid "name of the destination model of the merge" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:145 +msgid "whether the source model's table is dropped" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:146 +msgid "Dictionary ``{\"source_model_field_1\": \"target_model_field_1\", ...}`` mapping fields with different names on both models" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:148 +msgid "list of m2m tables ignored to remove from source model." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:151 +#: ../../content/developer/tutorials/unit_tests.rst:167 +msgid "Modules" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:156 +msgid "Uninstall and remove a module and its references from the database." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:158 +msgid "name of the module to remove" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:163 +msgid "Rename a module and its references from ``old`` to ``new``." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:165 +msgid "current name of the module to rename" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:166 +msgid "new name of the module to rename" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:171 +msgid "Move all references of module ``old`` into module ``into``." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:173 +msgid "name of the source module of the merge" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:174 +msgid "ame of the destination module of the merge" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:175 +msgid "whether the dependencies of modules that depends on ``old`` are updated" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:179 +msgid "ORM" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:184 +msgid "Create a new environment from the cursor." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:187 +msgid "This function does NOT empty the cache maintained on the cursor for superuser with an empty environment. A call to `invalidate_cache` will most probably be necessary every time you directly modify something in database." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:191 +msgid "The new environment" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:197 +msgid "Recompute field values. Possible strategies to process the recomputation:" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:199 +msgid "``flush``: Flush the recomputation when it's finished" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:200 +msgid "``commit``: Commit the recomputation when it's finished" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:201 +msgid "``auto``: The function chooses the best alternative based on the number of records to recompute and the fields traceability" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:204 +msgid "model name of the field(s) to recompute" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:205 +msgid "list of field names to recompute" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:206 +msgid "list of record IDs to recompute" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:207 +msgid "Logger used to print the progress of the function" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:209 +msgid "size of the chunk used to split the records for better processing" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:210 +msgid "strategy used to process the recomputation" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:213 +msgid "Records" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:218 +msgid "Return the id corresponding to the given :term:`xml_id `." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:220 +msgid "Record xml_id, under the format ````" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:221 +msgid "Found record id, if any" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:222 +msgid "int or `None`" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:227 +msgid "Remove a record and its references corresponding to the given :term:`xml_id `." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:235 +msgid "Rename the :term:`external Identifier` of a record. Possible actions to take if the external Identifier already exists on the database:" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:238 +msgid "``fail``: raise ``MigrationError`` and prevent renaming" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:239 +msgid "``merge``: renames the external Identifier and removes the old one" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:241 +msgid "current xml_id of the record, under the format ````" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:242 +msgid "new xml_id of the record, under the format ````" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:243 +msgid "value to set on the ir_model_data record ``noupdate`` field" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:244 +msgid "action to take if the xml_id already exists" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:249 +msgid "Match a record with an xmlid by creating or updating the external identifier." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:251 +msgid "This function is useful when migrating in-database records into a custom module, to create the record's xmlid before the module is updated and avoid duplication." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:255 +msgid "model name of the record" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:256 +msgid "Dictionary ``{\"fieldname_1\": \"value_1\", ...}`` mapping fields and values to search for the record to update. For example: .. code-block:: python values = {\"id\": 123} values = {\"name\": \"INV/2024/0001\", company_id: 1}" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:256 +msgid "Dictionary ``{\"fieldname_1\": \"value_1\", ...}`` mapping fields and values to search for the record to update. For example:" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:264 +msgid "the :term:`xml_id ` of the record." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:270 +msgid "Update a record based on its definition in the :doc:`/developer/reference/backend/data`." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:272 +msgid "Useful to update ``noupdate`` records, in order to reset them for the upgraded version." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:275 +msgid "whether the metadata before the record update is kept" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:276 +msgid "whether the record is created if it does not exist" +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:277 +msgid "name of the module from which to update the record. Useful when the record is rewritten in another module." +msgstr "" + +#: ../../content/developer/reference/upgrade_utils.rst:279 +msgid "set of field names whose translations get reset" +msgstr "" + #: ../../content/developer/reference/user_interface.rst:5 msgid "User interface" msgstr "" -#: ../../content/developer/reference/user_interface/icons.rst:5 +#: ../../content/developer/reference/user_interface/icons.rst:7 msgid "UI icons" msgstr "" -#: ../../content/developer/reference/user_interface/icons.rst:7 +#: ../../content/developer/reference/user_interface/icons.rst:9 msgid "Odoo's user interface mostly relies on `FontAwesome4 icons `_." msgstr "" -#: ../../content/developer/reference/user_interface/icons.rst:9 +#: ../../content/developer/reference/user_interface/icons.rst:11 msgid "To cover FontAwesome's lack of iconography for specific functionalities, we designed our own icon-font. These icons can be rendered using the main `oi` class in conjunction with the specific icon class." msgstr "" @@ -25324,2586 +25949,2471 @@ msgstr "" msgid "This diagram is incomplete and does not match the current bundles' organization. Read more on :ref:`asset bundles `." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:6 -msgid "Generic view" +#: ../../content/developer/reference/user_interface/view_architectures.rst:5 +msgid "View architectures" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:8 +#: ../../content/developer/reference/user_interface/view_architectures.rst:8 +msgid "Generic architecture" +msgstr "" + +#: ../../content/developer/reference/user_interface/view_architectures.rst:10 msgid "The architecture of a view is defined by XML data interpreted by the JavaScript framework." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:10 -msgid "For each view, there is a :file:`\\*.rng` file defining the attributes and possible architectures." +#: ../../content/developer/reference/user_interface/view_architectures.rst:12 +msgid "For most views, there is a :file:`\\*.rng` file defining the attributes and possible architectures. Some views are not ruled by such a file either because they accept HTML content, or for performance reasons." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:12 -#: ../../content/developer/reference/user_interface/view_records.rst:153 -msgid "The current context and user access rights may also impact the view abilities." +#: ../../content/developer/reference/user_interface/view_architectures.rst:17 +msgid "The current context and user access rights may impact the view abilities." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:15 +#: ../../content/developer/reference/user_interface/view_architectures.rst:20 msgid ":doc:`view_records`" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:20 +#: ../../content/developer/reference/user_interface/view_architectures.rst:25 msgid "Python expression" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:22 +#: ../../content/developer/reference/user_interface/view_architectures.rst:27 msgid "When evaluating node attributes, e.g. the `readonly` modifier, it is possible to provide a **Python expression** that will be executed in an environment that has access to the following variables:" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:25 -msgid "The names of all fields present in the current view, containing the value of the current record, except for `column_invisible` in :ref:`list view `; relational fields are given as a list of IDs;" +#: ../../content/developer/reference/user_interface/view_architectures.rst:30 +msgid "The names of all fields present in the current view, containing the value of the current record, except for `column_invisible` in :ref:`list view `; relational fields are given as a list of IDs;" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:28 +#: ../../content/developer/reference/user_interface/view_architectures.rst:33 +msgid "The ID of the current record;" +msgstr "" + +#: ../../content/developer/reference/user_interface/view_architectures.rst:34 msgid "`parent`: the record that refers to the container; only inside sub-views of :ref:`relational fields `;" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:30 -msgid "`context` (dict_): the current view's context;" +#: ../../content/developer/reference/user_interface/view_architectures.rst:36 +msgid "`context (dict)`: the current view's context;" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:31 -msgid "`uid` (integer_): the id of the current user;" +#: ../../content/developer/reference/user_interface/view_architectures.rst:37 +msgid "`uid (int)`: the id of the current user;" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:32 -msgid "`today` (string_): the current local date in the `YYYY-MM-DD` format;" +#: ../../content/developer/reference/user_interface/view_architectures.rst:38 +msgid "`today (str)`: the current local date in the `YYYY-MM-DD` format;" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:33 -msgid "`now` (string_): the current local datetime in the `YYYY-MM-DD hh:mm:ss` format." +#: ../../content/developer/reference/user_interface/view_architectures.rst:39 +msgid "`now (str)`: the current local datetime in the `YYYY-MM-DD hh:mm:ss` format." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:57 +#: ../../content/developer/reference/user_interface/view_architectures.rst:61 #: ../../content/developer/tutorials/getting_started/07_basicviews.rst:72 #: ../../content/developer/tutorials/getting_started/12_sprinkles.rst:235 msgid "Form" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:59 -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." +#: ../../content/developer/reference/user_interface/view_architectures.rst:63 +msgid "Form views are used to display the data from a single record. They are composed of regular HTML_ with additional semantic and structural components." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:69 -msgid "Optional attributes_ are added on root element ```` to customize the view." +#: ../../content/developer/reference/user_interface/view_architectures.rst:66 +msgid "The root element of form views is `form`." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:72 -#: ../../content/developer/reference/user_interface/view_architecture.rst:364 -#: ../../content/developer/reference/user_interface/view_architecture.rst:404 -#: ../../content/developer/reference/user_interface/view_architecture.rst:611 -#: ../../content/developer/reference/user_interface/view_architecture.rst:691 -#: ../../content/developer/reference/user_interface/view_architecture.rst:779 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1202 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1582 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2465 -#: ../../content/developer/reference/user_interface/view_architecture.rst:3118 -#: ../../content/developer/reference/user_interface/view_architecture.rst:3749 -msgid "string_ (default: ``''``)" +#: ../../content/developer/reference/user_interface/view_architectures.rst:77 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1165 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2273 +msgid "Root attributes" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:74 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1204 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2467 -#: ../../content/developer/reference/user_interface/view_architecture.rst:3120 -#: ../../content/developer/reference/user_interface/view_architecture.rst:3751 -msgid "This view title is displayed only if you open an action that has no name and whose target is 'new' (opening a dialog)" +#: ../../content/developer/reference/user_interface/view_architectures.rst:79 +msgid "Optional attributes can be added to the root element `form` to customize the view." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:0 -#: ../../content/developer/tutorials/restrict_data_access.rst:158 -msgid "create" +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_string.rst:4 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_string.rst:4 +msgid "The view title. It is displayed only if you open an action that has no name and whose target is `new` (opening a dialog)." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:78 -#: ../../content/developer/reference/user_interface/view_architecture.rst:83 -#: ../../content/developer/reference/user_interface/view_architecture.rst:88 -#: ../../content/developer/reference/user_interface/view_architecture.rst:93 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1208 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1213 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1220 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1225 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1230 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2471 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2476 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2481 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2509 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2514 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2519 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2524 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2530 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2542 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2549 -#: ../../content/developer/reference/user_interface/view_architecture.rst:3124 -#: ../../content/developer/reference/user_interface/view_architecture.rst:3129 -#: ../../content/developer/reference/user_interface/view_architecture.rst:3134 -#: ../../content/developer/reference/user_interface/view_architecture.rst:3755 -#: ../../content/developer/reference/user_interface/view_architecture.rst:3760 -#: ../../content/developer/reference/user_interface/view_architecture.rst:3765 -msgid "boolean_ (default: ``True``)" +#: ../../content/developer/reference/user_interface/view_architectures.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_context.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_help.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_icon.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_name.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_string.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_type.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_name.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_readonly.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_required.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_string.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_widget.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_class.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_column_invisible.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_groups.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_invisible.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_banner_route.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_create.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_default_group_by.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_default_order.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_delete.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_edit.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_sample.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_string.rst:0 +#: ../../content/developer/reference/user_interface/view_records.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_context.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_help.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_icon.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_name.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_string.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_type.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_name.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_readonly.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_required.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_string.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_widget.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_class.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_column_invisible.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_groups.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_invisible.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_banner_route.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_create.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_default_group_by.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_default_order.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_delete.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_edit.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_sample.rst:0 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_string.rst:0 +msgid "requirement" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:80 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1210 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2473 -#: ../../content/developer/reference/user_interface/view_architecture.rst:3126 -#: ../../content/developer/reference/user_interface/view_architecture.rst:3757 +#: ../../content/developer/reference/user_interface/view_architectures.rst:92 +#: ../../content/developer/reference/user_interface/view_architectures.rst:103 +#: ../../content/developer/reference/user_interface/view_architectures.rst:112 +#: ../../content/developer/reference/user_interface/view_architectures.rst:161 +#: ../../content/developer/reference/user_interface/view_architectures.rst:172 +#: ../../content/developer/reference/user_interface/view_architectures.rst:192 +#: ../../content/developer/reference/user_interface/view_architectures.rst:215 +#: ../../content/developer/reference/user_interface/view_architectures.rst:240 +#: ../../content/developer/reference/user_interface/view_architectures.rst:250 +#: ../../content/developer/reference/user_interface/view_architectures.rst:262 +#: ../../content/developer/reference/user_interface/view_architectures.rst:272 +#: ../../content/developer/reference/user_interface/view_architectures.rst:284 +#: ../../content/developer/reference/user_interface/view_architectures.rst:294 +#: ../../content/developer/reference/user_interface/view_architectures.rst:305 +#: ../../content/developer/reference/user_interface/view_architectures.rst:315 +#: ../../content/developer/reference/user_interface/view_architectures.rst:376 +#: ../../content/developer/reference/user_interface/view_architectures.rst:436 +#: ../../content/developer/reference/user_interface/view_architectures.rst:451 +#: ../../content/developer/reference/user_interface/view_architectures.rst:468 +#: ../../content/developer/reference/user_interface/view_architectures.rst:564 +#: ../../content/developer/reference/user_interface/view_architectures.rst:573 +#: ../../content/developer/reference/user_interface/view_architectures.rst:582 +#: ../../content/developer/reference/user_interface/view_architectures.rst:666 +#: ../../content/developer/reference/user_interface/view_architectures.rst:753 +#: ../../content/developer/reference/user_interface/view_architectures.rst:986 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1023 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1032 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1083 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1092 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1101 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1111 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1122 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1133 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1182 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1191 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1218 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1230 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1241 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1265 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1274 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1284 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1296 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1364 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1392 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1411 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1424 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1435 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1617 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1677 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1790 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1807 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1819 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1831 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1897 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1906 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1924 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1943 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1976 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2102 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2113 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2122 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2135 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2153 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2162 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2173 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2190 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2199 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2294 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2308 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2317 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2326 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2335 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2344 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2353 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2363 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2372 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2383 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2395 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2507 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2552 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_context.rst:12 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_help.rst:11 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_icon.rst:12 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_name.rst:7 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_string.rst:11 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_readonly.rst:13 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_required.rst:13 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_string.rst:6 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_widget.rst:19 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_class.rst:32 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_column_invisible.rst:15 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_groups.rst:14 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_invisible.rst:26 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_banner_route.rst:40 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_create.rst:6 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_default_group_by.rst:7 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_default_order.rst:16 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_delete.rst:6 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_edit.rst:6 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_sample.rst:14 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_string.rst:7 +#: ../../content/developer/reference/user_interface/view_records.rst:80 +#: ../../content/developer/reference/user_interface/view_records.rst:94 +#: ../../content/developer/reference/user_interface/view_records.rst:104 +#: ../../content/developer/reference/user_interface/view_records.rst:116 +#: ../../content/developer/reference/user_interface/view_records.rst:130 +#: ../../content/developer/reference/user_interface/view_records.rst:159 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_context.rst:12 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_help.rst:11 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_icon.rst:12 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_name.rst:7 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_string.rst:11 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_readonly.rst:13 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_required.rst:13 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_string.rst:6 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_widget.rst:19 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_class.rst:32 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_column_invisible.rst:15 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_groups.rst:14 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_invisible.rst:26 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_banner_route.rst:40 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_create.rst:6 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_default_group_by.rst:7 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_default_order.rst:16 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_delete.rst:6 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_edit.rst:6 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_sample.rst:14 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_string.rst:7 +msgid "Optional" +msgstr "" + +#: ../../content/developer/reference/user_interface/view_architectures.rst:104 +#: ../../content/developer/reference/user_interface/view_architectures.rst:162 +#: ../../content/developer/reference/user_interface/view_architectures.rst:173 +#: ../../content/developer/reference/user_interface/view_architectures.rst:263 +#: ../../content/developer/reference/user_interface/view_architectures.rst:273 +#: ../../content/developer/reference/user_interface/view_architectures.rst:285 +#: ../../content/developer/reference/user_interface/view_architectures.rst:306 +#: ../../content/developer/reference/user_interface/view_architectures.rst:369 +#: ../../content/developer/reference/user_interface/view_architectures.rst:377 +#: ../../content/developer/reference/user_interface/view_architectures.rst:437 +#: ../../content/developer/reference/user_interface/view_architectures.rst:452 +#: ../../content/developer/reference/user_interface/view_architectures.rst:469 +#: ../../content/developer/reference/user_interface/view_architectures.rst:565 +#: ../../content/developer/reference/user_interface/view_architectures.rst:971 +#: ../../content/developer/reference/user_interface/view_architectures.rst:979 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1024 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1033 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1084 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1093 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1102 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1112 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1123 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1219 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1231 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1365 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1412 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1425 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1436 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1549 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1618 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1669 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1775 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1791 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1882 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1890 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1898 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1925 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1944 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2082 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2103 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2114 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2123 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2200 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2295 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2309 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2384 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2396 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2508 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2534 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2553 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2614 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2625 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2633 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2638 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_help.rst:12 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_icon.rst:13 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_name.rst:8 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_string.rst:12 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_type.rst:26 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_name.rst:7 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_string.rst:7 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_widget.rst:20 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_class.rst:33 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_groups.rst:15 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_default_group_by.rst:8 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_default_order.rst:17 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_string.rst:8 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_help.rst:12 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_icon.rst:13 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_name.rst:8 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_string.rst:12 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_type.rst:26 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_name.rst:7 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_string.rst:7 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_widget.rst:20 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_class.rst:33 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_groups.rst:15 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_default_group_by.rst:8 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_default_order.rst:17 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_string.rst:8 +msgid "str" +msgstr "" + +#: ../../content/developer/reference/user_interface/view_architectures.rst:105 +#: ../../content/developer/reference/user_interface/view_architectures.rst:174 +#: ../../content/developer/reference/user_interface/view_architectures.rst:264 +#: ../../content/developer/reference/user_interface/view_architectures.rst:286 +#: ../../content/developer/reference/user_interface/view_architectures.rst:307 +#: ../../content/developer/reference/user_interface/view_architectures.rst:438 +#: ../../content/developer/reference/user_interface/view_architectures.rst:453 +#: ../../content/developer/reference/user_interface/view_architectures.rst:470 +#: ../../content/developer/reference/user_interface/view_architectures.rst:566 +#: ../../content/developer/reference/user_interface/view_architectures.rst:668 +#: ../../content/developer/reference/user_interface/view_architectures.rst:755 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1025 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1034 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1085 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1103 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1113 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1124 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1135 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1220 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1232 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1413 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1426 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1437 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1619 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1899 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1926 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2115 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2124 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2201 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2296 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2310 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2385 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2397 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2554 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_help.rst:13 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_icon.rst:14 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_name.rst:9 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_string.rst:13 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_widget.rst:21 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_class.rst:34 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_groups.rst:16 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_banner_route.rst:42 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_default_group_by.rst:9 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_default_order.rst:18 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_string.rst:9 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_help.rst:13 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_icon.rst:14 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_name.rst:9 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_string.rst:13 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_widget.rst:21 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_class.rst:34 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_groups.rst:16 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_banner_route.rst:42 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_default_group_by.rst:9 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_default_order.rst:18 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_string.rst:9 +msgid "`''`" +msgstr "" + +#: ../../content/developer/reference/user_interface/view_architectures.rst:2914 +#: ../../content/developer/reference/user_interface/view_architectures.rst:3431 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_create.rst:4 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_create.rst:4 msgid "Disable/enable record creation on the view." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:0 -msgid "edit" +#: ../../content/developer/reference/user_interface/view_architectures.rst:93 +#: ../../content/developer/reference/user_interface/view_architectures.rst:113 +#: ../../content/developer/reference/user_interface/view_architectures.rst:251 +#: ../../content/developer/reference/user_interface/view_architectures.rst:295 +#: ../../content/developer/reference/user_interface/view_architectures.rst:316 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1183 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1192 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1242 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1297 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2136 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2154 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2163 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2318 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2327 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2336 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2345 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2354 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2364 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2373 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2646 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_create.rst:7 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_delete.rst:7 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_edit.rst:7 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_sample.rst:15 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_create.rst:7 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_delete.rst:7 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_edit.rst:7 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_sample.rst:15 +msgid "bool" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:85 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1215 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2478 -#: ../../content/developer/reference/user_interface/view_architecture.rst:3131 -#: ../../content/developer/reference/user_interface/view_architecture.rst:3762 -msgid "Disable/enable record editing on the view." +#: ../../content/developer/reference/user_interface/view_architectures.rst:94 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1184 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1193 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2137 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2319 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2328 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2337 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2346 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2355 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2365 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_create.rst:8 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_delete.rst:8 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_edit.rst:8 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_create.rst:8 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_delete.rst:8 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_edit.rst:8 +msgid "`True`" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:0 -msgid "duplicate" +#: ../../content/developer/reference/user_interface/view_architectures.rst:2919 +#: ../../content/developer/reference/user_interface/view_architectures.rst:3436 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_edit.rst:4 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_edit.rst:4 +msgid "Disable/enable record edition on the view." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:90 +#: ../../content/developer/reference/user_interface/view_architectures.rst:90 msgid "Disable/enable record duplication on the view through the **Action** dropdown." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:0 -#: ../../content/developer/tutorials/restrict_data_access.rst:158 -msgid "delete" +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_delete.rst:4 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_delete.rst:4 +msgid "Disable/enable record deletion on the view through the :guilabel:`Action` dropdown." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:95 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1222 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2483 -#: ../../content/developer/reference/user_interface/view_architecture.rst:3136 -#: ../../content/developer/reference/user_interface/view_architecture.rst:3767 -msgid "Disable/enable record deletion on the view through the **Action** dropdown." +#: ../../content/developer/reference/user_interface/view_architectures.rst:101 +msgid "The name of the JavaScript component the webclient will instantiate instead of the form view." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:0 -msgid "js_class" +#: ../../content/developer/reference/user_interface/view_architectures.rst:110 +msgid "Disable automatic focusing on the first field in the view." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:98 -#: ../../content/developer/reference/user_interface/view_architecture.rst:146 -#: ../../content/developer/reference/user_interface/view_architecture.rst:152 -#: ../../content/developer/reference/user_interface/view_architecture.rst:253 -#: ../../content/developer/reference/user_interface/view_architecture.rst:267 -#: ../../content/developer/reference/user_interface/view_architecture.rst:289 -#: ../../content/developer/reference/user_interface/view_architecture.rst:395 -#: ../../content/developer/reference/user_interface/view_architecture.rst:414 -#: ../../content/developer/reference/user_interface/view_architecture.rst:461 -#: ../../content/developer/reference/user_interface/view_architecture.rst:505 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1023 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1028 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1073 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1084 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1090 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1095 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1353 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1498 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1573 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1592 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1639 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1927 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2126 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2133 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2493 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2504 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2537 -msgid "string_ (optional)" +#: ../../content/developer/reference/user_interface/view_architectures.rst:114 +#: ../../content/developer/reference/user_interface/view_architectures.rst:252 +#: ../../content/developer/reference/user_interface/view_architectures.rst:296 +#: ../../content/developer/reference/user_interface/view_architectures.rst:317 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1243 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1267 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1298 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1394 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2155 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2164 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_readonly.rst:15 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_required.rst:15 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_column_invisible.rst:17 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_invisible.rst:28 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_sample.rst:16 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_readonly.rst:15 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_required.rst:15 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_column_invisible.rst:17 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_invisible.rst:28 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_sample.rst:16 +msgid "`False`" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:100 -msgid "Name of the javascript component the webclient will instantiating instead of the form the view." +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_banner_route.rst:4 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_banner_route.rst:4 +msgid "The route to fetch HTML from and prepend it to the view." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:0 -msgid "disable_autofocus" +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_banner_route.rst:6 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_banner_route.rst:6 +msgid "If this attribute is set, the URL of the :ref:`controller route ` is fetched and the returned content is displayed above the view. The JSON response from the controller must contain an `html` key." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:104 -#: ../../content/developer/reference/user_interface/view_architecture.rst:247 -#: ../../content/developer/reference/user_interface/view_architecture.rst:294 -#: ../../content/developer/reference/user_interface/view_architecture.rst:306 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1147 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1318 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1324 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2410 -#: ../../content/developer/reference/user_interface/view_architecture.rst:3694 -msgid "boolean_ (default: ``False``)" +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_banner_route.rst:10 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_banner_route.rst:10 +msgid "If the HTML contains a `` tag for a stylesheet, it is removed from its original location and appended to the `` section." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:106 -msgid "Disable automatic focussing of the first field in the view." +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_banner_route.rst:13 +msgid "To interact with the backend, use `` tags. For more details, refer to the documentation of the `_onActionClicked` method in `AbstractController <{GITHUB_PATH}/addons/web/static/src/js/views/abstract_controller.js>`_." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:111 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_banner_route.rst:17 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_banner_route.rst:17 +msgid "Only views extending `AbstractView` and `AbstractController`, such as :ref:`reference/view_architectures/form`, :ref:`reference/view_architectures/kanban`, and :ref:`reference/view_architectures/list`, can use this attribute." +msgstr "" + +#: ../../content/developer/reference/user_interface/view_architectures.rst:987 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_banner_route.rst:41 +#: ../../content/developer/reference/user_interface/view_architectures/root_attribute_banner_route.rst:41 +msgid "path_" +msgstr "" + +#: ../../content/developer/reference/user_interface/view_architectures.rst:121 msgid "Semantic components" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:113 -msgid "Semantic components tie into the Odoo system and allow interaction with it. remark: (with the remark style) Placeholders are denoted in all caps." +#: ../../content/developer/reference/user_interface/view_architectures.rst:123 +msgid "Semantic components tie into the Odoo system and allow interaction with it." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:120 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1335 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2562 -msgid ": render formatted values" +#: ../../content/developer/reference/user_interface/view_architectures.rst:125 +msgid "Form views accept the following children semantic components: :ref:`field `, :ref:`label `, :ref:`button `, :ref:`reference/view_architectures/form/chatter`, and :ref:`reference/view_architectures/form/attachment`." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:128 -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'. This fields have the same values but can be display differentaly. However, the behavior is not guaranteed when several fields exist with different values for modifier 'required'. ```` can have the following attributes:" +#: ../../content/developer/reference/user_interface/view_architectures.rst:131 +#: ../../content/developer/reference/user_interface/view_architectures.rst:534 +#: ../../content/developer/reference/user_interface/view_architectures.rst:945 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1316 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1751 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2414 +msgid "Placeholders are denoted in all caps." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:137 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1347 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1709 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2253 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2577 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2656 -msgid "string_ (mandatory) :ref:`model ` field name" +#: ../../content/developer/reference/user_interface/view_architectures.rst:136 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1321 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2419 +msgid "`field`: display field values" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:139 -msgid "the name of the field to render" +#: ../../content/developer/reference/user_interface/view_architectures.rst:138 +msgid "The `field` element renders (and allows editing of, possibly) a single field of the current record." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:141 -msgid "string_ (default: `string` value from :class:`~odoo.fields.Field`)" +#: ../../content/developer/reference/user_interface/view_architectures.rst:140 +msgid "Using the same field multiple times in a form view is supported, and the fields can receive different values for the `invisible` and `readonly` attributes. These fields may have the same values but can be displayed differently. However, the behavior is not guaranteed when several fields exist with different values for the `required` attribute." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:143 -msgid "the label to display. By default display the field's label coming from the field definition in the model." +#: ../../content/developer/reference/user_interface/view_architectures.rst:151 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1334 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1767 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2432 +msgid "The `field` element can have the following attributes:" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:148 -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." +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_name.rst:4 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_name.rst:4 +msgid "The name of the field to render." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:0 -msgid "widget" +#: ../../content/developer/reference/user_interface/view_architectures.rst:368 +#: ../../content/developer/reference/user_interface/view_architectures.rst:970 +#: ../../content/developer/reference/user_interface/view_architectures.rst:978 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1548 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1668 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1774 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1881 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1889 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2081 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2533 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2542 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_name.rst:6 +#: ../../content/developer/reference/user_interface/view_records.rst:87 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_name.rst:6 +msgid "Mandatory" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:154 -msgid "fields have a default rendering based on their type (e.g. :class:`~odoo.fields.Char`, :class:`~odoo.fields.Many2one`)." +#: ../../content/developer/reference/user_interface/view_architectures.rst:158 +msgid "The node id. Useful when there are several occurrences of the same field in the view (see :ref:`reference/view_architectures/form/label`)." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:157 -msgid "The ``widget`` attributes allows using a different rendering method and context. See more information in :ref:`reference/js/widgets`" +#: ../../content/developer/reference/user_interface/view_architectures.rst:163 +msgid "The field name" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:165 -#: ../../content/developer/reference/user_interface/view_architecture.rst:194 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1835 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1956 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2093 -msgid ":ref:`python expression ` that evaluates to a dict_ (default: ``{}``)" +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_string.rst:4 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_string.rst:4 +msgid "The label of the field." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:167 -msgid "JSON object specifying configuration option for the field's widget (including default widgets)" +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_string.rst:8 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_string.rst:8 +msgid "The `string` attribute of the model's field" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:0 -msgid "groups" +#: ../../content/developer/reference/user_interface/view_architectures.rst:170 +msgid "The tooltip displayed when hovering the field or its label." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:175 -#: ../../content/developer/reference/user_interface/view_architecture.rst:466 -#: ../../content/developer/reference/user_interface/view_architecture.rst:993 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1034 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1115 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1426 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1644 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1976 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2139 -msgid "`Comma-separated values`_ (optional) whose choices are the :class:`~odoo.addons.base.models.res_users.Groups` reference" +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_widget.rst:4 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_widget.rst:4 +msgid "The rendering method and context to use in place of the default one assigned to the field's type (e.g., :class:`~odoo.fields.Char`, :class:`~odoo.fields.Many2one`). See :ref:`reference/js/widgets`." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:177 -msgid "only displays the field for specific users" +#: ../../content/developer/reference/user_interface/view_architectures.rst:181 +msgid "The configuration options for the field's widget (including default widgets), as a Python expression that evaluates to a dict." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:0 -msgid "domain" +#: ../../content/developer/reference/user_interface/view_architectures.rst:184 +msgid "For relation fields, the following options are available: `no_create`, `no_quick_create`, `no_open`, and `no_create_edit`." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:184 -msgid ":ref:`python expression ` that evaluates to a :ref:`reference/orm/domains` (default: ``[]``)" +#: ../../content/developer/reference/user_interface/view_architectures.rst:193 +#: ../../content/developer/reference/user_interface/view_architectures.rst:216 +#: ../../content/developer/reference/user_interface/view_architectures.rst:241 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1266 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1393 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1678 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1808 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1820 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1832 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1907 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1977 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2191 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_context.rst:13 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_readonly.rst:14 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_required.rst:14 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_column_invisible.rst:16 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_invisible.rst:27 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_context.rst:13 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_readonly.rst:14 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_required.rst:14 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_column_invisible.rst:16 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_invisible.rst:27 +msgid ":ref:`Python expression `" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:186 -msgid "for relational fields only, filters to apply when displaying existing records for selection" +#: ../../content/developer/reference/user_interface/view_architectures.rst:194 +#: ../../content/developer/reference/user_interface/view_architectures.rst:242 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1679 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1821 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1978 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_context.rst:14 +#: ../../content/developer/reference/user_interface/view_architectures/button_attribute_context.rst:14 +msgid "`{}`" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:0 -msgid "context" +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_readonly.rst:4 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_readonly.rst:4 +msgid "Whether the field can be modified by the user (`False`) or is read-only (`True`), as a Python expression that evaluates to a bool." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:196 -msgid "for relational fields only, context to pass when fetching possible values. The default values ``default_FIELD_NAME`` (e.g. ``{'default_name': 'toto'}``) will be used to create the linked record. ``OTHER_BUSINESS_KEY`` is every keys depending of the model/module." +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_required.rst:4 +#: ../../content/developer/reference/user_interface/view_architectures/field_attribute_required.rst:4 +msgid "Whether the field can be left empty (`False`) or must be set (`True`), as a Python expression that evaluates to a bool." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:211 -#: ../../content/developer/reference/user_interface/view_architecture.rst:221 -#: ../../content/developer/reference/user_interface/view_architecture.rst:231 -#: ../../content/developer/reference/user_interface/view_architecture.rst:471 -#: ../../content/developer/reference/user_interface/view_architecture.rst:998 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1039 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1120 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1286 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1370 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1382 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1394 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1409 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1443 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1649 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1659 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1981 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2144 -msgid ":ref:`python expression ` that evaluates to a boolean_ (default: ``False``)" +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_invisible.rst:4 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_invisible.rst:4 +msgid "Whether the element is visible (`False`) or hidden (`True`), as a Python expression that evaluates to a bool." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:213 -msgid "Whether the field can be modified by the user (``False``) or is read only (``True``)." +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_invisible.rst:8 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_invisible.rst:8 +msgid "There are two uses for the `invisible` attribute:" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:223 -msgid "Whether the field can be left empty (``False``) or must be set (``True``)." +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_invisible.rst:10 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_invisible.rst:10 +msgid "Usability: to avoid overloading the view and to make it easier for the user to read, depending on the content." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:0 -msgid "invisible" +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_invisible.rst:12 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_invisible.rst:12 +msgid "Technical: a field must be present (invisible is enough) in the view to be used in a Python expression." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:233 -msgid "Whether the field can be visible (``False``) or must be hide (``True``)." +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_groups.rst:4 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_groups.rst:4 +msgid "The comma-separated list of user groups to whom the element is displayed. Users who do not belong to at least one of these groups are unable to see the element. Groups can be prefixed with the negative `!` operator to exclude them." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:235 -msgid "There are two uses for field ``invisible`` attribute:" +#: ../../content/developer/reference/user_interface/view_architectures.rst:207 +msgid "The filters to apply when displaying existing records for selection, as a Python expression that evaluates to a :ref:`domain `." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:237 -msgid "Usability: not to overload the view and to make it easier for the user to read depending on the content;" +#: ../../content/developer/reference/user_interface/view_architectures.rst:217 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1809 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1833 +#: ../../content/developer/reference/user_interface/view_architectures.rst:1908 +#: ../../content/developer/reference/user_interface/view_architectures.rst:2192 +msgid "`[]`" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:238 -msgid "Technical: fetched by the webclient for evaluating :ref:`python expression `" +#: ../../content/developer/reference/user_interface/view_architectures.rst:0 +msgid "scope" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:0 -msgid "nolabel" +#: ../../content/developer/reference/user_interface/view_architectures.rst:223 +msgid "extensive documentation on all the magic context values (TYPE_view_ref, group_by, search_default_FIELD..." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:249 -msgid "if ``True``, do not automatically display the field's label, only makes sense if the field is a direct child of a ``group`` element" +#: ../../content/developer/reference/user_interface/view_architectures.rst:226 +msgid "The context to use when fetching possible values and creating or searching records, as a Python expression that evaluates to a dict." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:0 -msgid "placeholder" +#: ../../content/developer/reference/user_interface/view_architectures.rst:248 +msgid "Whether the field label should be hidden." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:255 -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" +#: ../../content/developer/reference/user_interface/view_architectures.rst:253 +msgid "Fields that are a direct child of a `group` element" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:0 -#: ../../content/developer/reference/user_interface/view_records.rst:0 -msgid "mode" +#: ../../content/developer/reference/user_interface/view_architectures.rst:258 +msgid "The help message to display on *empty* fields. It can replace field labels in complex forms. However, it *should not* be an example of data, as users may confuse placeholder text with filled fields." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:260 -msgid "`Comma-separated values`_ (default: ``tree``) whose choices are: ``kanban``, ``from``, ``tree``" +#: ../../content/developer/reference/user_interface/view_architectures.rst:269 +msgid "The comma-separated list of display modes (view types) to use for the field's linked records. Allowed modes are: `tree`, `form`, `kanban`, and `graph`." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:262 -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)" +#: ../../content/developer/reference/user_interface/view_architectures.rst:274 +msgid "`tree`" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:0 -msgid "help" +#: ../../content/developer/reference/user_interface/view_architectures.rst:275 +msgid ":class:`~odoo.fields.One2many` and :class:`~odoo.fields.Many2many` fields" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:269 -msgid "tooltip displayed for users when hovering the field or its label" +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_class.rst:4 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_class.rst:4 +msgid "The `HTML class `_ to set on the generated element." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:272 -#: ../../content/developer/reference/user_interface/view_architecture.rst:476 -#: ../../content/developer/reference/user_interface/view_architecture.rst:1654 -#: ../../content/developer/reference/user_interface/view_architecture.rst:2499 -msgid "string_ (optional) `HTML class`_" +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_class.rst:6 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_class.rst:6 +msgid "The styling uses the `Bootstrap `_ framework and :ref:`UI icons `. Common Odoo classes include:" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:274 -msgid "`HTML class`_ to set on the generated element." +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_class.rst:9 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_class.rst:9 +msgid "`oe_inline`: prevents the usual line break following fields, and limits their span;" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:276 -msgid "The styling use the Bootstrap_ framework and :doc:`UI icons `." +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_class.rst:10 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_class.rst:10 +msgid "`oe_left`, `oe_right`: `floats `_ the element to the corresponding direction;" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:278 -msgid "Below are the common Odoo_ classes:" +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_class.rst:12 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_class.rst:12 +msgid "`oe_read_only`, `oe_edit_only`: only displays the element in the corresponding form mode;" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:280 -msgid "``oe_inline``: prevent the usual line break following fields and limit their span." +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_class.rst:13 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_class.rst:13 +msgid "`oe_avatar`: for image fields, displays images as an \"avatar\" (max 90x90 square);" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:282 -msgid "``oe_left``, ``oe_right``: floats_ the field to the corresponding direction" +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_class.rst:14 +#: ../../content/developer/reference/user_interface/view_architectures/generic_attribute_class.rst:14 +msgid "`oe_stat_button`: defines a particular rendering to dynamically display information while being clickable to target an action." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:284 -msgid "``oe_read_only``, ``oe_edit_only``: only displays the field in the corresponding form mode" +#: ../../content/developer/reference/user_interface/view_architectures.rst:282 +msgid "The name of the related field providing the name of the file." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:286 -msgid "``oe_avatar``: for image fields, displays images as \"avatar\" (square, 90x90 maximum size, some image decorations)" +#: ../../content/developer/reference/user_interface/view_architectures.rst:287 +msgid ":class:`~odoo.fields.Binary` fields" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:0 -msgid "filename" +#: ../../content/developer/reference/user_interface/view_architectures.rst:292 +msgid "Whether the field stores a password and thus its data should not be displayed." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:291 -msgid "for binary fields, name of the related field providing the name of the file" +#: ../../content/developer/reference/user_interface/view_architectures.rst:297 +msgid ":class:`~odoo.fields.Char` fields" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:0 -msgid "password" +#: ../../content/developer/reference/user_interface/view_architectures.rst:302 +msgid "The XMLID of the specific Kanban :doc:`view record ` that should be used when selecting records in a mobile environment." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:296 -msgid "if is ``True`` indicates that a :class:`~odoo.fields.Char` field stores a password and that its data shouldn't be displayed" +#: ../../content/developer/reference/user_interface/view_architectures.rst:313 +msgid "Whether the field is focused when the view opens. It can be applied to only one field of a view." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:0 -msgid "kanban_view_ref" +#: ../../content/developer/reference/user_interface/view_architectures.rst:320 +msgid ":ref:`Relational fields ` nodes can contain specific subviews." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:300 -msgid "string_ (optional) defined by the pattern: ``%(ADDON.MODEL_view_TYPE)s`` (target the :doc:`view reference `)" +#: ../../content/developer/reference/user_interface/view_architectures.rst:338 +msgid "`label`: display field labels" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:302 -msgid "for opening specific kanban view when selecting records from m2o/m2m in mobile environment" +#: ../../content/developer/reference/user_interface/view_architectures.rst:340 +msgid "When a :ref:`field ` component is not placed directly inside a :ref:`group `, or when its `nolabel` attribute is set, the field's label is not automatically displayed alongside its value. The `label` component is the manual alternative of displaying the label of a field." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:0 -msgid "default_focus" +#: ../../content/developer/reference/user_interface/view_architectures.rst:356 +msgid "The `label` element can have the following attributes:" msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:308 -msgid "If True, defines that this field is the fields that will be focussed when the view opens. Cannot be present on more than one field of a view." +#: ../../content/developer/reference/user_interface/view_architectures.rst:361 +msgid "The reference to the field associated with the label. It can be either the name of the field, or its id (the `id` attribute set on the :ref:`field `)." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:312 -msgid ":ref:`Relational fields ` node can contain specific subviews." +#: ../../content/developer/reference/user_interface/view_architectures.rst:364 +msgid "When there are several occurrences of the same field in the view, and there are several `label` components associated with these field nodes, these labels must have unique `for` attribute; in this case, referencing the `id` attribute of the corresponding field nodes." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:330 -msgid "