diff --git a/locale/sources/administration.pot b/locale/sources/administration.pot index f66542f3a..dd8b3777d 100644 --- a/locale/sources/administration.pot +++ b/locale/sources/administration.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo 16.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-31 10:29+0000\n" +"POT-Creation-Date: 2023-03-03 17:52+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -324,7 +324,7 @@ msgid "Needed RAM = #worker * ( (light_worker_ratio * light_worker_ram_estimatio msgstr "" #: ../../content/administration/install/deploy.rst:215 -#: ../../content/administration/install/deploy.rst:379 +#: ../../content/administration/install/deploy.rst:378 msgid "LiveChat" msgstr "" @@ -404,324 +404,324 @@ msgstr "" msgid "in ``/etc/nginx/sites-enabled/odoo.conf`` set:" msgstr "" -#: ../../content/administration/install/deploy.rst:353 +#: ../../content/administration/install/deploy.rst:352 msgid "Odoo as a WSGI Application" msgstr "" -#: ../../content/administration/install/deploy.rst:355 +#: ../../content/administration/install/deploy.rst:354 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:361 +#: ../../content/administration/install/deploy.rst:360 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:366 +#: ../../content/administration/install/deploy.rst:365 msgid "Cron Workers" msgstr "" -#: ../../content/administration/install/deploy.rst:368 +#: ../../content/administration/install/deploy.rst:367 msgid "To run cron jobs for an Odoo deployment as a WSGI application requires" msgstr "" -#: ../../content/administration/install/deploy.rst:370 +#: ../../content/administration/install/deploy.rst:369 msgid "A classical Odoo (run via ``odoo-bin``)" msgstr "" -#: ../../content/administration/install/deploy.rst:371 +#: ../../content/administration/install/deploy.rst:370 msgid "Connected to the database in which cron jobs have to be run (via :option:`odoo-bin -d`)" msgstr "" -#: ../../content/administration/install/deploy.rst:373 +#: ../../content/administration/install/deploy.rst:372 msgid "Which should not be exposed to the network. To ensure cron runners are not network-accessible, it is possible to disable the built-in HTTP server entirely with :option:`odoo-bin --no-http` or setting ``http_enable = False`` in the configuration file" msgstr "" -#: ../../content/administration/install/deploy.rst:381 +#: ../../content/administration/install/deploy.rst:380 msgid "The second problematic subsystem for WSGI deployments is the LiveChat: where most HTTP connections are relatively short and quickly free up their worker process for the next request, LiveChat require a long-lived connection for each client in order to implement near-real-time notifications." msgstr "" -#: ../../content/administration/install/deploy.rst:386 +#: ../../content/administration/install/deploy.rst:385 msgid "This is in conflict with the process-based worker model, as it will tie up worker processes and prevent new users from accessing the system. However, those long-lived connections do very little and mostly stay parked waiting for notifications." msgstr "" -#: ../../content/administration/install/deploy.rst:391 +#: ../../content/administration/install/deploy.rst:390 msgid "The solutions to support livechat/motifications in a WSGI application are:" msgstr "" -#: ../../content/administration/install/deploy.rst:393 +#: ../../content/administration/install/deploy.rst:392 msgid "Deploy a threaded version of Odoo (instead of a process-based preforking one) and redirect only requests to URLs starting with ``/websocket/`` to that Odoo, this is the simplest and the websocket URL can double up as the cron instance." msgstr "" -#: ../../content/administration/install/deploy.rst:397 +#: ../../content/administration/install/deploy.rst:396 msgid "Deploy an evented Odoo via ``odoo-gevent`` and proxy requests starting with ``/websocket/`` to :option:`the gevent port `." msgstr "" -#: ../../content/administration/install/deploy.rst:404 +#: ../../content/administration/install/deploy.rst:403 msgid "Serving static files and attachments" msgstr "" -#: ../../content/administration/install/deploy.rst:406 +#: ../../content/administration/install/deploy.rst:405 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:411 +#: ../../content/administration/install/deploy.rst:410 msgid "Serving static files" msgstr "" -#: ../../content/administration/install/deploy.rst:413 +#: ../../content/administration/install/deploy.rst:412 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:418 +#: ../../content/administration/install/deploy.rst:417 msgid "Say Odoo has been installed via the **debian packages** for Community and Enterprise and the :option:`--addons-path ` is ``'/usr/lib/python3/dist-packages/odoo/addons'``." msgstr "" -#: ../../content/administration/install/deploy.rst:421 -#: ../../content/administration/install/deploy.rst:443 +#: ../../content/administration/install/deploy.rst:420 +#: ../../content/administration/install/deploy.rst:447 msgid "Using the above NGINX (https) configuration, the following location block should be added to serve static files via NGINX." msgstr "" -#: ../../content/administration/install/deploy.rst:438 +#: ../../content/administration/install/deploy.rst:442 msgid "Say Odoo has been installed via the **source**. The two git repositories for Community and Enterprise have been cloned in :file:`/opt/odoo/community` and :file:`/opt/odoo/enterprise` respectively and the :option:`--addons-path ` is ``'/opt/odoo/community/odoo/addons,/opt/community/addons,/opt/odoo/enterprise'``." msgstr "" -#: ../../content/administration/install/deploy.rst:460 +#: ../../content/administration/install/deploy.rst:464 msgid "The actual NGINX configuration you need is highly dependent on your own installation. The two above snippets only highlight two possible configurations and may not be used as-is." msgstr "" -#: ../../content/administration/install/deploy.rst:464 +#: ../../content/administration/install/deploy.rst:468 msgid "Serving attachments" msgstr "" -#: ../../content/administration/install/deploy.rst:466 +#: ../../content/administration/install/deploy.rst:470 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:471 +#: ../../content/administration/install/deploy.rst:475 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:481 +#: ../../content/administration/install/deploy.rst:485 msgid "The X-Sendfile extension for apache (and compatible web servers) does not require any supplementary configuration." msgstr "" -#: ../../content/administration/install/deploy.rst:483 +#: ../../content/administration/install/deploy.rst:487 msgid "The X-Accel extension for NGINX **does** require the following additionnal configuration:" msgstr "" -#: ../../content/administration/install/deploy.rst:492 +#: ../../content/administration/install/deploy.rst:496 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:501 +#: ../../content/administration/install/deploy.rst:505 msgid "Security" msgstr "" -#: ../../content/administration/install/deploy.rst:503 +#: ../../content/administration/install/deploy.rst:507 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:507 +#: ../../content/administration/install/deploy.rst:511 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:513 +#: ../../content/administration/install/deploy.rst:517 msgid "When deploying an internet-facing server, please be sure to consider the following security-related topics:" msgstr "" -#: ../../content/administration/install/deploy.rst:516 +#: ../../content/administration/install/deploy.rst:520 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:519 +#: ../../content/administration/install/deploy.rst:523 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:524 +#: ../../content/administration/install/deploy.rst:528 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:528 +#: ../../content/administration/install/deploy.rst:532 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:535 +#: ../../content/administration/install/deploy.rst:539 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:541 +#: ../../content/administration/install/deploy.rst:545 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:546 +#: ../../content/administration/install/deploy.rst:550 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:550 +#: ../../content/administration/install/deploy.rst:554 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:553 +#: ../../content/administration/install/deploy.rst:557 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:560 +#: ../../content/administration/install/deploy.rst:564 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:566 +#: ../../content/administration/install/deploy.rst:570 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:570 +#: ../../content/administration/install/deploy.rst:574 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:574 +#: ../../content/administration/install/deploy.rst:578 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:578 +#: ../../content/administration/install/deploy.rst:582 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:589 +#: ../../content/administration/install/deploy.rst:593 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:600 +#: ../../content/administration/install/deploy.rst:604 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:603 +#: ../../content/administration/install/deploy.rst:607 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:610 +#: ../../content/administration/install/deploy.rst:614 msgid "Blocking Brute Force Attacks" msgstr "" -#: ../../content/administration/install/deploy.rst:611 +#: ../../content/administration/install/deploy.rst:616 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:615 +#: ../../content/administration/install/deploy.rst:620 msgid "The log entries will have the following form." msgstr "" -#: ../../content/administration/install/deploy.rst:617 +#: ../../content/administration/install/deploy.rst:622 msgid "Failed login::" msgstr "" -#: ../../content/administration/install/deploy.rst:621 +#: ../../content/administration/install/deploy.rst:626 msgid "Successful login::" msgstr "" -#: ../../content/administration/install/deploy.rst:626 +#: ../../content/administration/install/deploy.rst:631 msgid "These logs can be easily analyzed by an intrusion prevention system such as `fail2ban`." msgstr "" -#: ../../content/administration/install/deploy.rst:628 +#: ../../content/administration/install/deploy.rst:633 msgid "For example, the following fail2ban filter definition should match a failed login::" msgstr "" -#: ../../content/administration/install/deploy.rst:635 +#: ../../content/administration/install/deploy.rst:640 msgid "This could be used with a jail definition to block the attacking IP on HTTP(S)." msgstr "" -#: ../../content/administration/install/deploy.rst:637 +#: ../../content/administration/install/deploy.rst:642 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:651 +#: ../../content/administration/install/deploy.rst:656 msgid "Database Manager Security" msgstr "" -#: ../../content/administration/install/deploy.rst:653 +#: ../../content/administration/install/deploy.rst:658 msgid ":ref:`setup/deploy/odoo` mentioned ``admin_passwd`` in passing." msgstr "" -#: ../../content/administration/install/deploy.rst:655 +#: ../../content/administration/install/deploy.rst:660 msgid "This setting is used on all database management screens (to create, delete, dump or restore databases)." msgstr "" -#: ../../content/administration/install/deploy.rst:658 +#: ../../content/administration/install/deploy.rst:663 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:664 +#: ../../content/administration/install/deploy.rst:669 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:670 +#: ../../content/administration/install/deploy.rst:675 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:673 +#: ../../content/administration/install/deploy.rst:678 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:678 +#: ../../content/administration/install/deploy.rst:683 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:682 +#: ../../content/administration/install/deploy.rst:687 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:686 +#: ../../content/administration/install/deploy.rst:691 msgid "It should be stored securely, and should be generated randomly e.g." msgstr "" -#: ../../content/administration/install/deploy.rst:692 +#: ../../content/administration/install/deploy.rst:697 msgid "which will generate a 32 characters pseudorandom printable string." msgstr "" -#: ../../content/administration/install/deploy.rst:695 +#: ../../content/administration/install/deploy.rst:700 msgid "Supported Browsers" msgstr "" -#: ../../content/administration/install/deploy.rst:697 +#: ../../content/administration/install/deploy.rst:702 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:700 +#: ../../content/administration/install/deploy.rst:705 msgid "Here are the supported browsers:" msgstr "" -#: ../../content/administration/install/deploy.rst:702 +#: ../../content/administration/install/deploy.rst:707 msgid "Google Chrome" msgstr "" -#: ../../content/administration/install/deploy.rst:703 +#: ../../content/administration/install/deploy.rst:708 msgid "Mozilla Firefox" msgstr "" -#: ../../content/administration/install/deploy.rst:704 +#: ../../content/administration/install/deploy.rst:709 msgid "Microsoft Edge" msgstr "" -#: ../../content/administration/install/deploy.rst:705 +#: ../../content/administration/install/deploy.rst:710 msgid "Apple Safari" msgstr "" -#: ../../content/administration/install/deploy.rst:707 +#: ../../content/administration/install/deploy.rst:712 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:712 +#: ../../content/administration/install/deploy.rst:717 msgid "Since Odoo 13.0, ES6 is supported. Therefore, IE support is dropped." msgstr "" -#: ../../content/administration/install/deploy.rst:715 +#: ../../content/administration/install/deploy.rst:720 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:718 +#: ../../content/administration/install/deploy.rst:723 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:722 +#: ../../content/administration/install/deploy.rst:727 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 "" @@ -737,60 +737,60 @@ msgstr "" msgid "Its principle is straightforward: your SMTP server executes the \"mailgate\" script for every new incoming email." msgstr "" -#: ../../content/administration/install/email_gateway.rst:9 +#: ../../content/administration/install/email_gateway.rst:10 msgid "The script takes care of connecting to your Odoo database through XML-RPC, and send the emails via the `MailThread.message_process()` feature." msgstr "" -#: ../../content/administration/install/email_gateway.rst:13 +#: ../../content/administration/install/email_gateway.rst:14 msgid "Prerequisites" msgstr "" -#: ../../content/administration/install/email_gateway.rst:14 +#: ../../content/administration/install/email_gateway.rst:16 msgid "Administrator access to the Odoo database." msgstr "" -#: ../../content/administration/install/email_gateway.rst:15 +#: ../../content/administration/install/email_gateway.rst:17 msgid "Your own mail server such as Postfix or Exim." msgstr "" -#: ../../content/administration/install/email_gateway.rst:16 +#: ../../content/administration/install/email_gateway.rst:18 msgid "Technical knowledge on how to configure an email server." msgstr "" -#: ../../content/administration/install/email_gateway.rst:19 +#: ../../content/administration/install/email_gateway.rst:21 msgid "For Postfix" msgstr "" -#: ../../content/administration/install/email_gateway.rst:20 +#: ../../content/administration/install/email_gateway.rst:23 msgid "In you alias config (:file:`/etc/aliases`):" msgstr "" -#: ../../content/administration/install/email_gateway.rst:27 -#: ../../content/administration/install/email_gateway.rst:41 +#: ../../content/administration/install/email_gateway.rst:30 +#: ../../content/administration/install/email_gateway.rst:45 msgid "Resources" msgstr "" -#: ../../content/administration/install/email_gateway.rst:29 +#: ../../content/administration/install/email_gateway.rst:32 msgid "`Postfix `_" msgstr "" -#: ../../content/administration/install/email_gateway.rst:30 +#: ../../content/administration/install/email_gateway.rst:33 msgid "`Postfix aliases `_" msgstr "" -#: ../../content/administration/install/email_gateway.rst:31 +#: ../../content/administration/install/email_gateway.rst:34 msgid "`Postfix virtual `_" msgstr "" -#: ../../content/administration/install/email_gateway.rst:35 +#: ../../content/administration/install/email_gateway.rst:38 msgid "For Exim" msgstr "" -#: ../../content/administration/install/email_gateway.rst:43 +#: ../../content/administration/install/email_gateway.rst:47 msgid "`Exim `_" msgstr "" -#: ../../content/administration/install/email_gateway.rst:46 +#: ../../content/administration/install/email_gateway.rst:50 msgid "If you don't have access/manage your email server, use :ref:`inbound messages `." msgstr "" @@ -867,8 +867,8 @@ msgid "Demo_ instances require no local installation, just a web browser." msgstr "" #: ../../content/administration/install/install.rst:59 -#: ../../content/administration/maintain/domain_names.rst:136 -#: ../../content/administration/maintain/domain_names.rst:206 +#: ../../content/administration/maintain/domain_names.rst:166 +#: ../../content/administration/maintain/domain_names.rst:236 #: ../../content/administration/maintain/supported_versions.rst:27 #: ../../content/administration/upgrade/odoo_online.rst:3 msgid "Odoo Online" @@ -1109,7 +1109,7 @@ msgid "Git" msgstr "" #: ../../content/administration/install/install.rst:279 -msgid "The following requires `Git `_ to be installed on your machine and that you have basic knowledge of Git commands. To clone a Git repository, you must choose between cloning with HTTPS or SSH. If you do not know the difference between the two, the best option is most likely HTTPS. If you are following the :doc:`Getting started ` developer tutorial, or plan on contributing to Odoo source code, choose SSH." +msgid "The following requires `Git `_ to be installed on your machine and that you have basic knowledge of Git commands. To clone a Git repository, you must choose between cloning with HTTPS or SSH. If you do not know the difference between the two, the best option is most likely HTTPS. If you are following the :doc:`Getting started ` developer tutorial, or plan on contributing to Odoo source code, choose SSH." msgstr "" #: ../../content/administration/install/install.rst:286 @@ -1400,11 +1400,11 @@ msgid "The user account you use to log into Odoo's web interface differs from th msgstr "" #: ../../content/administration/install/install.rst:714 -msgid ":doc:`The exhaustive list of CLI arguments for odoo-bin `." +msgid ":doc:`The exhaustive list of CLI arguments for odoo-bin `." msgstr "" #: ../../content/administration/install/install.rst:719 -#: ../../content/administration/maintain/update.rst:147 +#: ../../content/administration/maintain/update.rst:149 msgid "Docker" msgstr "" @@ -1709,34 +1709,66 @@ msgid "All domain names are referenced in the **Domain Name System**, or **DNS** msgstr "" #: ../../content/administration/maintain/domain_names.rst:51 -msgid "Register a free domain name with Odoo" +msgid "Indexing of domain names by search engines" msgstr "" #: ../../content/administration/maintain/domain_names.rst:53 -msgid "You can register a domain name for your Odoo Online database directly from Odoo Website or your database manager." -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:57 -msgid "Your domain name is **free for one year** if you register it with Odoo!" +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 "The domain name is registered with `Gandi `_, the domain name registrar." -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:60 -msgid "You are the owner of the domain name and can use it for other purposes." -msgstr "" - -#: ../../content/administration/maintain/domain_names.rst:61 -msgid "Odoo manages payment and technical support for you." +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 "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." +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/optimize/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 +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." +msgstr "" + +#: ../../content/administration/maintain/domain_names.rst:87 +msgid "Your domain name is **free for one year** if you register it with Odoo!" +msgstr "" + +#: ../../content/administration/maintain/domain_names.rst:88 +msgid "The domain name is registered with `Gandi `_, the domain name registrar." +msgstr "" + +#: ../../content/administration/maintain/domain_names.rst:90 +msgid "You are the owner of the domain name and can use it for other purposes." +msgstr "" + +#: ../../content/administration/maintain/domain_names.rst:91 +msgid "Odoo manages payment and technical support for you." +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." +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`." msgstr "" @@ -1744,7 +1776,7 @@ msgstr "" msgid "Clicking on Domain Names from an Odoo website" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:73 +#: ../../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." msgstr "" @@ -1752,27 +1784,27 @@ msgstr "" msgid "The search of the domain name example.com shows which associated domains are available." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:80 +#: ../../content/administration/maintain/domain_names.rst:110 msgid "Next, fill in the form with your information to become the domain name owner." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:82 +#: ../../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 `." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:86 +#: ../../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 may take up to three days." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:89 +#: ../../content/administration/maintain/domain_names.rst:119 msgid "This is not available for Odoo.sh databases yet." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:94 +#: ../../content/administration/maintain/domain_names.rst:124 msgid "Manage your domain name registered with Odoo" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:96 +#: ../../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`." msgstr "" @@ -1780,152 +1812,152 @@ msgstr "" msgid "Management of the domain names linked to an Odoo database" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:106 +#: ../../content/administration/maintain/domain_names.rst:136 msgid "Please `submit a support ticket `_ if you need further assistance to manage your domain name." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:112 +#: ../../content/administration/maintain/domain_names.rst:142 msgid "Configure your existing domain name" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:114 +#: ../../content/administration/maintain/domain_names.rst:144 msgid "If you already own a domain name, you can use it to point to your website." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:116 +#: ../../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:119 +#: ../../content/administration/maintain/domain_names.rst:149 msgid ":ref:`Add a CNAME record ` on your domain name's DNS zone." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:120 +#: ../../content/administration/maintain/domain_names.rst:150 msgid ":ref:`Map your domain name with your Odoo database `." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:121 +#: ../../content/administration/maintain/domain_names.rst:151 msgid ":ref:`Map your domain name with your Odoo website `." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:126 +#: ../../content/administration/maintain/domain_names.rst:156 msgid "Add a CNAME record" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:128 +#: ../../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." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:131 +#: ../../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." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:138 +#: ../../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:141 -#: ../../content/administration/maintain/domain_names.rst:220 +#: ../../content/administration/maintain/domain_names.rst:171 +#: ../../content/administration/maintain/domain_names.rst:250 #: ../../content/administration/maintain/supported_versions.rst:27 #: ../../content/administration/odoo_sh.rst:5 #: ../../content/administration/upgrade/odoo_sh.rst:3 msgid "Odoo.sh" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:143 +#: ../../content/administration/maintain/domain_names.rst:173 msgid "Your project's main address is defined in :menuselection:`Settings --> Project Name`." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:145 +#: ../../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." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:150 -#: ../../content/administration/maintain/domain_names.rst:192 +#: ../../content/administration/maintain/domain_names.rst:180 +#: ../../content/administration/maintain/domain_names.rst:222 msgid "Open your domain name's manager dashboard." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:151 +#: ../../content/administration/maintain/domain_names.rst:181 msgid "Open the **DNS zone** management page for the domain name you want to configure." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:152 +#: ../../content/administration/maintain/domain_names.rst:182 msgid "Create a **CNAME record** pointing to the address of your database." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:154 +#: ../../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``)." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:159 +#: ../../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:164 +#: ../../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.``" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:168 +#: ../../content/administration/maintain/domain_names.rst:198 msgid "You also create a redirection from ``example.com`` to ``wwww.example.com``." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:170 +#: ../../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:173 +#: ../../content/administration/maintain/domain_names.rst:203 msgid "Here are some specific guidelines to create a CNAME record:" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:175 +#: ../../content/administration/maintain/domain_names.rst:205 msgid "`GoDaddy `_" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:176 +#: ../../content/administration/maintain/domain_names.rst:206 msgid "`Namecheap `_" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:177 +#: ../../content/administration/maintain/domain_names.rst:207 msgid "`OVH `_" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:178 +#: ../../content/administration/maintain/domain_names.rst:208 msgid "`CloudFlare `_" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:179 +#: ../../content/administration/maintain/domain_names.rst:209 msgid "`Google Domains `_" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:184 +#: ../../content/administration/maintain/domain_names.rst:214 msgid "Naked domain" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:186 +#: ../../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:189 +#: ../../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." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:193 +#: ../../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:197 +#: ../../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:202 +#: ../../content/administration/maintain/domain_names.rst:232 msgid "Map your domain name with your Odoo database" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:208 +#: ../../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:212 +#: ../../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`." msgstr "" @@ -1933,7 +1965,7 @@ msgstr "" msgid "Verification of the CNAME records of a domain name before mapping it with a database" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:222 +#: ../../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 "" @@ -1941,115 +1973,115 @@ msgstr "" msgid "Mapping a domain name with an Odoo.sh branch" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:230 +#: ../../content/administration/maintain/domain_names.rst:260 msgid ":ref:`Odoo.sh branches: settings tab `" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:233 +#: ../../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:236 +#: ../../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:240 +#: ../../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:247 +#: ../../content/administration/maintain/domain_names.rst:277 msgid "SSL encryption (HTTPS protocol)" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:249 +#: ../../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." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:253 +#: ../../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 `_." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:258 +#: ../../content/administration/maintain/domain_names.rst:288 msgid "The certificate generation may take up to 24h." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:259 +#: ../../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." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:261 +#: ../../content/administration/maintain/domain_names.rst:291 msgid "If you already use another service, you can keep using it or simply change for Odoo." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:266 +#: ../../content/administration/maintain/domain_names.rst:296 msgid "Web base URL of a database" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:269 +#: ../../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 `." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:272 +#: ../../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.)." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:275 +#: ../../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." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:279 +#: ../../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." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:282 +#: ../../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`." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:285 +#: ../../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``." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:289 +#: ../../content/administration/maintain/domain_names.rst:319 msgid "The URL must include the protocol ``https://`` (or ``http://``) and must not end with a slash (``/``)." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:292 +#: ../../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:" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:295 +#: ../../content/administration/maintain/domain_names.rst:325 msgid "key: ``web.base.url.freeze``" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:296 +#: ../../content/administration/maintain/domain_names.rst:326 msgid "value: ``True``" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:301 +#: ../../content/administration/maintain/domain_names.rst:331 msgid "Map your domain name with your website" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:303 +#: ../../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:" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:305 +#: ../../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." msgstr "" -#: ../../content/administration/maintain/domain_names.rst:307 +#: ../../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:309 +#: ../../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:311 +#: ../../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:314 +#: ../../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 "" @@ -2057,19 +2089,19 @@ msgstr "" msgid "Configuring https://www.example.com as the Domain of the website" msgstr "" -#: ../../content/administration/maintain/domain_names.rst:322 +#: ../../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:325 -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." +#: ../../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:330 +#: ../../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:336 +#: ../../content/administration/maintain/domain_names.rst:366 msgid ":doc:`/applications/general/email_communication/email_servers`" msgstr "" @@ -2842,7 +2874,7 @@ msgid ":ref:`odoo_online/users`" msgstr "" #: ../../content/administration/maintain/odoo_online.rst:36 -#: ../../content/administration/odoo_sh/getting_started/branches.rst:285 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:293 #: ../../content/administration/upgrade.rst:10 msgid "Upgrade" msgstr "" @@ -2936,7 +2968,7 @@ msgid "Add tags to sort your databases out. You can search the tags in the searc msgstr "" #: ../../content/administration/maintain/odoo_online.rst:110 -#: ../../content/administration/odoo_sh/getting_started/branches.rst:539 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:550 msgid "Delete" msgstr "" @@ -3021,13 +3053,13 @@ msgid "If you are unable to register your database, you will likely encounter th msgstr "" #: ../../content/administration/maintain/on_premise.rst:None -msgid "Something went wrong while registering your database,\n" -"you can try again or contact Odoo Help" +msgid "Something went wrong while registering your database, you can try again or contact Odoo\n" +"Help" msgstr "" #: ../../content/administration/maintain/on_premise.rst:27 -#: ../../content/administration/maintain/on_premise.rst:106 -#: ../../content/administration/maintain/on_premise.rst:134 +#: ../../content/administration/maintain/on_premise.rst:100 +#: ../../content/administration/maintain/on_premise.rst:127 msgid "Solutions" msgstr "" @@ -3051,85 +3083,84 @@ msgstr "" msgid "You can unlink the old database yourself on your `Odoo Contract `__ with the button \"Unlink database\"" msgstr "" -#: ../../content/administration/maintain/on_premise.rst:48 +#: ../../content/administration/maintain/on_premise.rst:47 msgid "A confirmation message will appear; make sure this is the correct database as it will be deactivated shortly:" msgstr "" -#: ../../content/administration/maintain/on_premise.rst:55 +#: ../../content/administration/maintain/on_premise.rst:53 msgid "Do you have the updated version of Odoo 9?" msgstr "" -#: ../../content/administration/maintain/on_premise.rst:57 -#: ../../content/administration/maintain/on_premise.rst:167 +#: ../../content/administration/maintain/on_premise.rst:55 +#: ../../content/administration/maintain/on_premise.rst:159 msgid "From July 2016 onward, Odoo 9 now automatically change the uuid of a duplicated database; a manual operation is no longer required." msgstr "" -#: ../../content/administration/maintain/on_premise.rst:60 +#: ../../content/administration/maintain/on_premise.rst:58 msgid "If it's not the case, you may have multiple databases sharing the same UUID. Please check on your `Odoo Contract `__, a short message will appear specifying which database is problematic:" msgstr "" -#: ../../content/administration/maintain/on_premise.rst:69 +#: ../../content/administration/maintain/on_premise.rst:66 msgid "In this case, you need to change the UUID on your test databases to solve this issue. You will find more information about this in :ref:`this section `." msgstr "" -#: ../../content/administration/maintain/on_premise.rst:72 +#: ../../content/administration/maintain/on_premise.rst:69 msgid "For your information, we identify database with UUID. Therefore, each database should have a distinct UUID to ensure that registration and invoicing proceed effortlessly for your and for us." msgstr "" -#: ../../content/administration/maintain/on_premise.rst:76 +#: ../../content/administration/maintain/on_premise.rst:73 msgid "Check your network and firewall settings" msgstr "" -#: ../../content/administration/maintain/on_premise.rst:78 +#: ../../content/administration/maintain/on_premise.rst:75 msgid "The Update notification must be able to reach Odoo's subscription validation servers. In other words, make sure that the Odoo server is able to open outgoing connections towards:" msgstr "" -#: ../../content/administration/maintain/on_premise.rst:82 +#: ../../content/administration/maintain/on_premise.rst:79 msgid "services.odoo.com on port 443 (or 80)" msgstr "" -#: ../../content/administration/maintain/on_premise.rst:83 +#: ../../content/administration/maintain/on_premise.rst:80 msgid "services.openerp.com on port 443 (or 80) for older deployments" msgstr "" -#: ../../content/administration/maintain/on_premise.rst:85 +#: ../../content/administration/maintain/on_premise.rst:82 msgid "Once you activated your database, you must keep these ports open, as the Update notification runs once a week." msgstr "" -#: ../../content/administration/maintain/on_premise.rst:91 +#: ../../content/administration/maintain/on_premise.rst:86 msgid "Error message due to too many users" msgstr "" -#: ../../content/administration/maintain/on_premise.rst:93 +#: ../../content/administration/maintain/on_premise.rst:88 msgid "If you have more users in your local database than provisionned in your Odoo Enterprise subscription, you may encounter this message:" msgstr "" #: ../../content/administration/maintain/on_premise.rst:None -msgid "This database will expire in X days, you\n" -"have more users than your subscription allows" +msgid "This database will expire in X days, you have more users than your subscription allows" msgstr "" -#: ../../content/administration/maintain/on_premise.rst:102 +#: ../../content/administration/maintain/on_premise.rst:96 msgid "When the message appears you have 30 days before the expiration. The countdown is updated everyday." msgstr "" -#: ../../content/administration/maintain/on_premise.rst:108 +#: ../../content/administration/maintain/on_premise.rst:102 msgid "**Add more users** on your subscription: follow the link and Validate the upsell quotation and pay for the extra users." msgstr "" -#: ../../content/administration/maintain/on_premise.rst:110 +#: ../../content/administration/maintain/on_premise.rst:104 msgid "**Deactivate users** as explained in this `documentation `_ and **Reject** the upsell quotation." msgstr "" -#: ../../content/administration/maintain/on_premise.rst:113 +#: ../../content/administration/maintain/on_premise.rst:107 msgid "Once your database has the correct number of users, the expiration message will disappear automatically after a few days, when the next verification occurs. We understand that it can be a bit frightening to see the countdown, so you can :ref:`force an Update Notification ` to make the message disappear right away." msgstr "" -#: ../../content/administration/maintain/on_premise.rst:120 +#: ../../content/administration/maintain/on_premise.rst:114 msgid "Database expired error message" msgstr "" -#: ../../content/administration/maintain/on_premise.rst:122 +#: ../../content/administration/maintain/on_premise.rst:116 msgid "If your database reaches its expiration date before your renew your subscription, you will encounter this message:" msgstr "" @@ -3137,39 +3168,39 @@ msgstr "" msgid "This database has expired." msgstr "" -#: ../../content/administration/maintain/on_premise.rst:130 +#: ../../content/administration/maintain/on_premise.rst:123 msgid "This **blocking** message appears after a non-blocking message that lasts 30 days. If you fail to take action before the end of the countdown, the database is expired." msgstr "" -#: ../../content/administration/maintain/on_premise.rst:138 +#: ../../content/administration/maintain/on_premise.rst:131 msgid "Renew your subscription: follow the link and renew your subscription - note that" msgstr "" -#: ../../content/administration/maintain/on_premise.rst:137 +#: ../../content/administration/maintain/on_premise.rst:130 msgid "if you wish to pay by Wire Transfer, your subscription will effectively be renewed only when the payment arrives, which can take a few days. Credit card payments are processed immediately." msgstr "" -#: ../../content/administration/maintain/on_premise.rst:140 +#: ../../content/administration/maintain/on_premise.rst:133 msgid "Contact our `Support `__" msgstr "" -#: ../../content/administration/maintain/on_premise.rst:142 +#: ../../content/administration/maintain/on_premise.rst:135 msgid "None of those solutions worked for you? Please contact our `Support `__" msgstr "" -#: ../../content/administration/maintain/on_premise.rst:151 +#: ../../content/administration/maintain/on_premise.rst:143 msgid "Duplicate a database" msgstr "" -#: ../../content/administration/maintain/on_premise.rst:153 +#: ../../content/administration/maintain/on_premise.rst:145 msgid "You can duplicate your database by accessing the database manager on your server (/web/database/manager). In this page, you can easily duplicate your database (among other things)." msgstr "" -#: ../../content/administration/maintain/on_premise.rst:161 +#: ../../content/administration/maintain/on_premise.rst:152 msgid "When you duplicate a local database, it is **strongly** advised to change the duplicated database's uuid (Unniversally Unique Identifier), since this uuid is how your database identifies itself with our servers. Having two databases with the same uuid could result in invoicing problems or registration problems down the line." msgstr "" -#: ../../content/administration/maintain/on_premise.rst:170 +#: ../../content/administration/maintain/on_premise.rst:162 msgid "The database uuid is currently accessible from the menu :menuselection:`Settings --> Technical --> System Parameters`, we advise you to use a `uuid generator `_ or to use the unix command ``uuidgen`` to generate a new uuid. You can then simply replace it like any other record by clicking on it and using the edit button." msgstr "" @@ -3585,39 +3616,39 @@ msgstr "" msgid "Source Install (Tarball)" msgstr "" -#: ../../content/administration/maintain/update.rst:107 +#: ../../content/administration/maintain/update.rst:108 msgid "If you have originally installed Odoo with the \"tarball\" version (source code archive), you have to replace the installation directory with a newer version. First download the latest tarball from Odoo.com. They are updated daily and include the latest security fixes (see step #1) After downloading the package, extract it to a temporary location on your server." msgstr "" -#: ../../content/administration/maintain/update.rst:112 +#: ../../content/administration/maintain/update.rst:113 msgid "You will get a folder labelled with the version of the source code, for example \"odoo-13.0+e.20190719\", that contains a folder \"odoo.egg-info\" and the actual source code folder named \"odoo\" (for Odoo 10 and later) or \"openerp\" for older versions. You can ignore the odoo.egg-info folder. Locate the folder where your current installation is deployed, and replace it with the newer \"odoo\" or \"openerp\" folder that was in the archive you just extracted." msgstr "" -#: ../../content/administration/maintain/update.rst:118 +#: ../../content/administration/maintain/update.rst:119 msgid "Be sure to match the folder layout, for example the new \"addons\" folder included in the source code should end up exactly at the same path it was before. Next, watch out for any specific configuration files that you may have manually copied or modified in the old folder, and copy them over to the new folder. Finally, restart the Odoo service or reboot the machine, and you are all set." msgstr "" -#: ../../content/administration/maintain/update.rst:125 +#: ../../content/administration/maintain/update.rst:126 msgid "Source Install (Github)" msgstr "" -#: ../../content/administration/maintain/update.rst:126 +#: ../../content/administration/maintain/update.rst:128 msgid "If you have originally installed Odoo with a full Github clone of the official repositories, the update procedure requires you to pull the latest source code via git. Change into the directory for each repository (the main Odoo repository, and the Enterprise repository), and run the following commands::" msgstr "" -#: ../../content/administration/maintain/update.rst:134 +#: ../../content/administration/maintain/update.rst:136 msgid "The last command may encounter source code conflicts if you had edited the Odoo source code locally. The error message will give you the list of files with conflicts, and you will need to resolve the conflicts manually, by editing them and deciding which part of the code to keep." msgstr "" -#: ../../content/administration/maintain/update.rst:138 +#: ../../content/administration/maintain/update.rst:140 msgid "Alternatively, if you prefer to simply discard the conflicting changes and restore the official version, you can use the following command::" msgstr "" -#: ../../content/administration/maintain/update.rst:143 +#: ../../content/administration/maintain/update.rst:145 msgid "Finally, restart the Odoo service or reboot the machine, and you should be done." msgstr "" -#: ../../content/administration/maintain/update.rst:149 +#: ../../content/administration/maintain/update.rst:151 msgid "Please refer to our `Docker image documentation `_ for specific update instructions." msgstr "" @@ -3631,12 +3662,12 @@ msgstr "" #: ../../content/administration/odoo_sh/advanced/containers.rst:7 #: ../../content/administration/odoo_sh/advanced/submodules.rst:9 -#: ../../content/administration/odoo_sh/getting_started/branches.rst:7 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:6 #: ../../content/administration/odoo_sh/getting_started/builds.rst:9 #: ../../content/administration/odoo_sh/getting_started/first_module.rst:6 #: ../../content/administration/odoo_sh/getting_started/online-editor.rst:9 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:7 -#: ../../content/administration/odoo_sh/getting_started/status.rst:7 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:6 +#: ../../content/administration/odoo_sh/getting_started/status.rst:6 #: ../../content/administration/odoo_sh/overview.rst:5 #: ../../content/administration/upgrade/odoo_sh.rst:8 msgid "Overview" @@ -3751,7 +3782,7 @@ msgid "``--stop-after-init`` will immediately shutdown the server instance after msgstr "" #: ../../content/administration/odoo_sh/advanced/containers.rst:169 -msgid "More options are available and detailed in the :doc:`CLI documentation `." +msgid "More options are available and detailed in the :doc:`CLI documentation `." msgstr "" #: ../../content/administration/odoo_sh/advanced/containers.rst:172 @@ -3945,8 +3976,8 @@ msgstr "" #: ../../content/administration/odoo_sh/advanced/submodules.rst:82 #: ../../content/administration/odoo_sh/advanced/submodules.rst:94 -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:364 -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:502 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:360 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:498 msgid "Replace" msgstr "" @@ -3990,29 +4021,29 @@ msgstr "" msgid "Get started" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:4 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:3 msgid "Branches" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:9 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:8 msgid "The branches view gives you an overview of the different branches your repository has." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:17 -#: ../../content/administration/odoo_sh/getting_started/builds.rst:40 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:16 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:41 msgid "Stages" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:19 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:18 msgid "Odoo.sh offers three different stages for your branches: production, staging and development." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:21 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:20 msgid "You can change the stage of a branch by drag and dropping it into the stage section title." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:29 -#: ../../content/administration/odoo_sh/getting_started/builds.rst:43 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:28 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:44 msgid "Production" msgstr "" @@ -4029,7 +4060,7 @@ msgid "If your changes require the update of a module, such as a change in a for msgstr "" #: ../../content/administration/odoo_sh/getting_started/branches.rst:43 -msgid "This method is equivalent to perform an upgrade of the module through the Apps menu, or through the :code:`-u` switch of :doc:`the command line `." +msgid "This method is equivalent to perform an upgrade of the module through the Apps menu, or through the :code:`-u` switch of :doc:`the command line `." msgstr "" #: ../../content/administration/odoo_sh/getting_started/branches.rst:47 @@ -4045,595 +4076,595 @@ msgid "Partners using trial projects should be aware their production branch, al msgstr "" #: ../../content/administration/odoo_sh/getting_started/branches.rst:61 -#: ../../content/administration/odoo_sh/getting_started/builds.rst:61 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:63 msgid "Staging" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:62 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:63 msgid "Staging branches are meant to test your new features using the production data without compromising the actual production database with test records. They will create databases that are neutralized duplicates of the production database." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:66 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:67 msgid "The neutralization includes:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:68 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:69 msgid "Disabling scheduled actions. If you want to test them, you can trigger their action manually or re-enable them. Be aware that the platform will trigger them less often if no one is using the database in order to save up resources." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:71 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:72 msgid "Disabling outgoing emails by intercepting them with a mailcatcher. An :ref:`interface to view ` the emails sent by your database is provided. That way, you do not have to worry about sending test emails to your contacts." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:74 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:75 msgid "Setting payment providers and shipping providers in test mode." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:75 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:76 msgid "Disabling IAP services" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:77 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:78 msgid "The latest database will be kept alive indefinitely, older ones from the same branch may get garbage collected to make room for new ones. It will be valid for 3 months, after which you will be expected to rebuild the branch. If you make configuration or view changes in these databases, make sure to document them or write them directly in the modules of the branch, using XML data files overriding the default configuration or views." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:82 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:83 msgid "The unit tests are not performed as, in Odoo, they currently rely on the demo data, which is not loaded in the production database. In the future, if Odoo supports to run the unit tests without the demo data, Odoo.sh will then consider running the tests on staging databases." msgstr "" #: ../../content/administration/odoo_sh/getting_started/branches.rst:88 -#: ../../content/administration/odoo_sh/getting_started/builds.rst:80 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:52 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:81 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:51 msgid "Development" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:89 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:90 msgid "Development branches create new databases using the demo data to run the unit tests. The installed modules are the ones included in your branches. You can change this list of modules to install in your :ref:`project Settings `." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:93 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:94 msgid "When you push a new commit in one of these branches, a new server is started, with a database created from scratch and the new revision of the branch. The demo data is loaded, and the unit tests are performed by default. This verifies your changes do not break any of the features tested by them. If you wish, you can disable the tests or allow specific tests to be run with custom tags in the :ref:`branch's settings `." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:100 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:101 msgid "Similar to staging branches, the emails are not sent but are intercepted by a mailcatcher and scheduled actions are not triggered as often is the database is not in use." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:103 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:104 msgid "The databases created for development branches are meant to live around three days. After that, they can be automatically garbage collected to make room for new databases without prior notice." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:109 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:110 msgid "Merging your branches" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:110 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:112 msgid "You can merge your branches easily by drag and dropping them into each other." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:115 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:117 msgid "When you want to test the changes of your development branches with the production data, you can either:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:118 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:120 msgid "merge the development branch into your staging branch, by drag and dropping it onto the desired staging branch," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:119 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:121 msgid "drag and dropping the development branch on the staging section title, to make it become a staging branch." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:121 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:123 msgid "When your latest changes are ready for production, you can drag and drop your staging branch onto your production branch to merge and deploy in production your newest features." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:125 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:127 msgid "If you are bold enough, you can merge your development branches into your production branch as well. It just means you skip the validation of your changes with the production data through a staging branch." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:129 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:131 msgid "You can merge your development branches into each other, and your staging branches into each other." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:131 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:133 msgid "Of course, you can also use :code:`git merge` directly on your workstation to merge your branches. Odoo.sh will be notified when new revisions have been pushed in your branches." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:134 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:136 msgid "Merging a staging branch in the production branch only merges the source code: Any configuration changes you made in the staging databases are not passed to the production database." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:137 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:139 msgid "If you test configuration changes in staging branches, and want them to be applied in the production, you have to either:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:139 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:141 msgid "write the configuration changes in XML data files overriding the default configuration or views in your branches, and then increase the version of your module in its manifest (*__manifest__.py*) to trigger the update of the module when you merge your staging branch in your production branch. This is the best practice for a better scalability of your developments as you will use the Git versioning features for all your configuration changes, and therefore have a traceability for your changes." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:145 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:147 msgid "pass them manually from your staging to your production database, by copy/pasting them." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:150 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:152 msgid "Tabs" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:153 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:52 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:64 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:155 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:51 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:63 msgid "History" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:154 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:157 msgid "An overview of your branch history:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:156 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:159 msgid "The messages of the commits and their authors," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:157 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:160 msgid "The various events linked to the platform, such as stage changes, database imports, backup restores." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:162 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:165 msgid "For each event, a status is displayed in the top right-hand corner. It can provide information about the ongoing operation on the database (installation, update, backup import, ...), or its result (tests feedback, successful backup import, ...). When an operation is successful, you can access the database thanks to the *connect* button." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:170 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:60 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:72 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:173 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:59 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:71 msgid "Mails" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:171 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:175 msgid "This tab contains the mail catcher. It displays an overview of the emails sent by your database. The mail catcher is available for your development and staging branches as the emails of your production database are really sent instead of being intercepted." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:180 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:184 msgid "Shell" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:181 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:186 msgid "A shell access to your container. You can perform basic linux commands (:code:`ls`, :code:`top`) and open a shell on your database by typing :code:`psql`." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:187 -#: ../../content/administration/odoo_sh/getting_started/branches.rst:203 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:192 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:208 msgid "You can open multiple tabs and drag-and-drop them to arrange the layout as you wish, for instance side by side." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:192 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:196 msgid "Long running shell instances are not guaranteed. Idle shells can be disconnected at anytime in order to free up resources." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:196 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:200 msgid "Editor" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:197 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:202 msgid "An online integrated development environment (IDE) to edit the source code. You can also open terminals, Python consoles and even Odoo Shell consoles." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:207 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:74 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:212 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:73 msgid "Monitoring" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:208 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:214 msgid "This link contains various monitoring metrics of the current build." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:213 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:219 msgid "You can zoom, change the time range or select a specific metric on each graph. On the graphs, annotations help you relate to changes on the build (database import, git push, etc...)." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:219 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:56 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:68 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:225 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:55 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:67 msgid "Logs" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:220 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:227 msgid "A viewer to have a look to your server logs." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:225 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:232 msgid "Different logs are available:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:227 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:234 msgid "install.log: The logs of the database installation. In a development branch, the logs of the tests are included." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:228 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:235 msgid "pip.log: The logs of the Python dependencies installation." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:229 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:236 msgid "odoo.log: The logs of the running server." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:230 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:237 msgid "update.log: The logs of the database updates." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:231 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:238 msgid "pg_long_queries.log: The logs of psql queries that take an unusual amount of time." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:233 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:240 msgid "If new lines are added in the logs, they will be displayed automatically. If you scroll to the bottom, the browser will scroll automatically each time a new line is added." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:236 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:243 msgid "You can pause the logs fetching by clicking on the according button in the upper right corner of the view. The fetching is automatically stopped after 5 minutes. You can restart it using the play button." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:242 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:76 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:249 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:75 msgid "Backups" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:243 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:251 msgid "A list of the backups available for download and restore, the ability to perform a manual backup and to import a database." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:249 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:257 msgid "Odoo.sh makes daily backups of the production database. It keeps 7 daily, 4 weekly and 3 monthly backups. Each backup includes the database dump, the filestore (attachments, binary fields), logs and sessions." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:252 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:260 msgid "Staging and development databases are not backed up. You nevertheless have the possibility to restore a backup of the production database in your staging branches, for testing purposes, or to manually recover data that has been deleted by accident from the production database." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:256 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:264 msgid "The list contains the backups kept on the server your production database is hosted on. This server only keeps one month of backups: 7 daily and 4 weekly backups." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:259 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:267 msgid "Dedicated backup servers keep the same backups, as well as 3 additional monthly backups. To restore or download one of these monthly backups, please `contact us `_." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:262 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:270 msgid "If you merge a commit updating the version of one or several modules (in :file:`__manifest__.py`), or their linked python dependencies (in :file:`requirements.txt`), then Odoo.sh performs a backup automatically (flagged with type Update in the list), as either the container will be changed by the installation of new pip packages, either the database itself will be changed with the module update triggered afterwards. In these two cases, we are doing a backup as it may potentially break things." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:268 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:276 msgid "If you merge a commit that only changes some code without the above-mentioned modifications, then no backup is done by Odoo.sh, as neither the container nor the database is modified so the platform considers this safe enough. Of course, as an extra precaution, you can make a backup manually before making big changes in your production sources in case something goes wrong (those manual backups are available for about one week). To avoid abuse, we limit manual backups to 5 per day." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:274 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:282 msgid "The *import database* feature accepts database archives in the format provided by:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:276 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:284 msgid "the standard Odoo databases manager, (available for on-premise Odoo servers under :code:`/web/database/manager`)" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:278 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:286 msgid "the Odoo online databases manager," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:279 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:287 msgid "the Odoo.sh backup download button of this *Backups* tab," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:280 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:288 msgid "the Odoo.sh dump download button in the :ref:`Builds view `." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:287 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:295 msgid "Available for production and staging branches for valid projects." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:290 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:298 msgid ":doc:`Upgrade - Odoo.sh <../../upgrade/odoo_sh>`" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:295 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:4 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:62 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:78 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:82 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:303 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:3 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:61 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:77 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:81 msgid "Settings" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:297 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:305 msgid "Here you can find a couple of settings that only apply to the currently selected branch." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:302 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:310 msgid "**Behaviour upon new commit**" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:304 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:312 msgid "For development and staging branches, you can change the branch's behavior upon receiving a new commit. By default, a development branch will create a new build and a staging branch will update the previous build (see the :ref:`Production Stage `). This is especially useful should the feature you're working on require a particular setup or configuration, to avoid having to manually set it up again on every commit. If you choose new build for a staging branch, it will make a fresh copy from the production build every time a commit is pushed. A branch that is put back from staging to development will automatically be set to 'Do nothing'." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:312 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:320 msgid "**Modules installation**" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:314 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:322 msgid "Choose the modules to install automatically for your development builds." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:319 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:327 msgid "*Install only my modules* will install the modules of the branch only. This is the default option. The :ref:`submodules ` are excluded." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:321 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:329 msgid "*Full installation (all modules)* will install the modules of the branch, the modules included in the submodules and all standard modules of Odoo. When running the full installation, the test suite is disabled." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:323 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:331 msgid "*Install a list of modules* will install the modules specified in the input just below this option. The names are the technical name of the modules, and they must be comma-separated." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:326 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:334 msgid "If the tests are enabled, the standard Odoo modules suite can take up to 1 hour. This setting applies to development builds only. Staging builds duplicate the production build and the production build only installs base." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:331 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:339 msgid "**Test suite**" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:333 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:341 msgid "For development branches, you can choose to enable or disable the test suite. It's enabled by default. When the test suite is enabled, you can restrict them by specifying test tags :ref:`test tags `." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:337 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:345 msgid "**Odoo Version**" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:339 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:347 msgid "For development branches only, you can change the version of Odoo, should you want to test upgraded code or develop features while your production database is in the process of being upgraded to a newer version." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:342 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:350 msgid "In addition, for each version you have two options regarding the code update." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:344 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:352 msgid "You can choose to benefit from the latest bug, security and performance fixes automatically. The sources of your Odoo server will be updated weekly. This is the 'Latest' option." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:346 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:354 msgid "You can choose to pin the Odoo sources to a specific revision by selecting them from a list of dates. Revisions will expire after 3 months. You will be notified by mail when the expiration date approaches and if you don't take action afterwards, you will automatically be set to the latest revision." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:351 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:359 msgid "**Custom domains**" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:353 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:361 msgid "Here you can configure additional domains for the selected branch. It's possible to add other *.odoo.com* domains or your own custom domains. For the latter you have to:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:356 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:364 msgid "own or purchase the domain name," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:357 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:365 msgid "add the domain name in this list," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:358 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:366 msgid "in your registrar's domain name manager, configure the domain name with a ``CNAME`` record set to your production database domain name." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:361 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:369 msgid "For instance, to associate *www.mycompany.com* to your database *mycompany.odoo.com*:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:363 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:371 msgid "in Odoo.sh, add *www.mycompany.com* in the custom domains of your project settings," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:364 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:372 msgid "in your domain name manager (e.g. *godaddy.com*, *gandi.net*, *ovh.com*), configure *www.mycompany.com* with a ``CNAME`` record with as value *mycompany.odoo.com*." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:367 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:375 msgid "Bare domains (e.g. *mycompany.com*) are not accepted:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:369 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:377 msgid "they can only be configured using ``A`` records," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:370 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:378 msgid "``A`` records only accept IP addresses as value," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:371 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:379 msgid "the IP address of your database can change, following an upgrade, a hardware failure or your wish to host your database in another country or continent." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:374 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:382 msgid "Therefore, bare domains could suddenly no longer work because of this change of IP address." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:376 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:384 msgid "In addition, if you would like both *mycompany.com* and *www.mycompany.com* to work with your database, having the first redirecting to the second is amongst the `SEO best practices `_ (See *Provide one version of a URL to reach a document*) in order to have one dominant URL. You can therefore just configure *mycompany.com* to redirect to *www.mycompany.com*. Most domain managers have the feature to configure this redirection. This is commonly called a web redirection." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:383 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:391 msgid "**HTTPS/SSL**" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:385 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:393 msgid "If the redirection is correctly set up, the platform will automatically generate an SSL certificate with `Let's Encrypt `_ within the hour and your domain will be accessible through HTTPS." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:389 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:397 msgid "While it is currently not possible to configure your own SSL certificates on the Odoo.sh platform we are considering the feature if there is enough demand." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:393 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:401 msgid "**SPF and DKIM compliance**" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:395 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:403 msgid "In case the domain of your users email addresses use SPF (Sender Policy Framework) or DKIM (DomainKeys Identified Mail), don't forget to authorize Odoo as a sending host in your domain name settings to increase the deliverability of your outgoing emails. The configuration steps are explained in the documentation about :ref:`SPF ` and :ref:`DKIM `." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:403 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:410 msgid "Forgetting to configure your SPF or DKIM to authorize Odoo as a sending host can lead to the delivery of your emails as spam in your contacts inbox." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:408 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:414 msgid "Shell commands" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:409 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:416 msgid "In the top right-hand corner of the view, different shell commands are available." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:414 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:421 msgid "Each command can be copied in the clipboard to be used in a terminal, and some of them can be used directly from Odoo.sh by clicking the *run* button in such case a popup will prompt the user in order to define eventual placeholders such as ````, ````, ..." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:420 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:427 msgid "Clone" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:421 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:429 msgid "Download the Git repository." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:427 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:435 msgid "Clones the repository *odoo/odoo*." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:429 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:437 msgid ":code:`--recurse-submodules`: Downloads the submodules of your repository. Submodules included in the submodules are downloaded as well." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:430 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:438 msgid ":code:`--branch`: checks out a specific branch of the repository, in this case *master*." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:432 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:440 msgid "The *run* button is not available for this command, as it is meant to be used on your machines." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:435 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:443 msgid "Fork" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:436 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:445 msgid "Create a new branch based on the current branch." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:442 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:451 msgid "Creates a new branch called *feature-1* based on the branch *master*, and then checkouts it." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:448 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:457 msgid "Uploads the new branch *feature-1* on your remote repository." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:451 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:460 msgid "Merge" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:452 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:462 msgid "Merge the current branch in another branch." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:458 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:468 msgid "Merges the branch *staging-1* in the current branch." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:464 -#: ../../content/administration/odoo_sh/getting_started/branches.rst:536 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:474 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:547 msgid "Uploads the changes you just added in the *master* branch on your remote repository." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:467 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:477 msgid "SSH" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:469 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:480 msgid "Setup" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:470 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:482 msgid "In order to use SSH, you have to set up your profile SSH public key (if it is not already done). To do so, follow these steps:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:473 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:485 msgid "`Generate a new SSH key `_" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:475 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:487 msgid "`Copy the SSH key to your clipboard `_ (only apply the step 1)" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:478 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:490 msgid "Paste the copied content to your profile SSH keys and press \"Add\"" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:483 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:495 msgid "The key should appear below" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:489 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:501 msgid "Connection" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:491 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:503 msgid "To connect to your builds using ssh use the following command in a terminal:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:497 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:509 msgid "You will find a shortcut for this command into the SSH tab in the upper right corner." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:502 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:514 msgid "Provided you have the :ref:`correct access rights ` on the project, you'll be granted ssh access to the build." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:506 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:518 msgid "Long running ssh connections are not guaranteed. Idle connections will be disconnected in order to free up resources." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:511 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:522 msgid "Submodule" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:513 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:524 msgid "Add a branch from another repository in your current branch as a *submodule*." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:515 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:526 msgid "*Submodules* allows you to use modules from other repositories in your project." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:517 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:528 msgid "The submodules feature is detailed in the chapter :ref:`Submodules ` of this documentation." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:524 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:535 msgid "Adds the branch *master* of the repository ** as a submodule under the path ** in your current branch." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:530 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:541 msgid "Commits all your current changes." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:541 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:552 msgid "Delete a branch from your repository." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:547 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:558 msgid "Deletes the branch in your remote repository." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:553 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:564 msgid "Deletes the branch in your local copy of the repository." msgstr "" @@ -4645,103 +4676,103 @@ msgstr "" msgid "In Odoo.sh, a build is considered as a database loaded by an Odoo server (`odoo/odoo `_ & `odoo/enterprise `_) running on a specific revision of your project repository in a containerized environment. Its purpose is to test the well-behavior of the server, the database and the features with this revision." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/builds.rst:19 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:20 msgid "In this view, a row represents a branch, and a cell of a row represents a build of this branch." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/builds.rst:21 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:22 msgid "Most of the time, builds are created following pushes on your Github repository branches. They can be created as well when you do other operations, such as importing a database on Odoo.sh or asking a rebuild for a branch in your project." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/builds.rst:25 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:26 msgid "A build is considered successful if no errors or warnings come up during its creation. A successful build is highlighted in green." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/builds.rst:28 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:29 msgid "A build is considered failed if errors come up during its creation. A failed build is highlighted in red." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/builds.rst:31 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:32 msgid "If warnings come up during the creation, but there are no errors, the build is considered almost successful. It is highlighted in yellow to notify the developer warnings were raised." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/builds.rst:34 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:35 msgid "Builds do not always create a database from scratch. For instance, when pushing a change on the production branch, the build created just starts the server with your new revision and tries to load the current production database on it. If no errors come up, the build is considered successful, and otherwise failed." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/builds.rst:45 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:46 msgid "The first build of a production branch creates a database from scratch. If this build is successful, this database is considered as the production database of your project." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/builds.rst:48 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:49 msgid "From then, pushes on the production branch will create new builds that attempt to load the database using a server running with the new revision." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/builds.rst:51 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:52 msgid "If the build is successful, or has warnings but no errors, the production database will now run with this build, along with the revision associated to this build." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/builds.rst:54 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:55 msgid "If the build fails to load or update the database, then the previous successful build is re-used to load the database, and therefore the database will run using a server running with the previous successful revision." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/builds.rst:57 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:59 msgid "The build used to run the production database is always the first of the builds list. If a build fails, it is put after the build currently running the production database." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/builds.rst:63 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:65 msgid "Staging builds duplicate the production database, and try to load this duplicate with the revisions of the staging branches." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/builds.rst:66 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:68 msgid "Each time you push a new revision on a staging branch, the build created uses a new copy of the production database. The databases are not re-used between builds of the same branch. This ensures:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/builds.rst:69 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:71 msgid "staging builds use databases that are close to what the production looks like, so you do not make your tests with outdated data," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/builds.rst:72 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:74 msgid "you can play around as much as you want in the same staging database, and you can then ask for a rebuild when you want to restart with a new copy of the production." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/builds.rst:75 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:77 msgid "Nevertheless, this means that if you make configuration changes in staging databases and do not apply them in the production, they will not be passed on the next build of the same staging branch." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/builds.rst:82 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:83 msgid "Development builds create new databases, load the demo data and run the unit tests." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/builds.rst:84 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:85 msgid "A build will be considered failed and highlighted in red if tests fail during the installation, as they are meant to raise errors if something wrong occurs." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/builds.rst:87 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:88 msgid "If all tests pass, and there is no error, the build will be considered successful." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/builds.rst:89 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:90 msgid "According to the list of modules to install and test, a development build can take up to 1 hour to be ready. This is due to the large number of tests set in the default Odoo modules suite." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/builds.rst:93 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:94 msgid "Features" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/builds.rst:95 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:96 msgid "The production branch will always appear first, and then the other branches are ordered by last build created. You can filter out the branches." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/builds.rst:101 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:102 msgid "For each branch, you can access the last build's database using the *Connect* link and jump to the branch code using the *Github* link. For other branches than the production, you can create a new build which will use the latest revision of the branch using the link *rebuild*. This last link is not available when there is already a build in progress for the branch." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/builds.rst:109 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:110 msgid "For each build, you can access the revision changes using the button with the Github icon. You can access the build's database as the administrator using the *Connect* button. Also, you can access the database with another user using the *Connect as* button, in the dropdown menu of the *Connect* button." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/builds.rst:121 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:122 msgid "In the dropdown menu of the build, you can access the same features than in :ref:`the branches view `: *Logs*, *Web Shell*, *Editor*, *Outgoing e-mails*. You also have the possibility to *Download a dump* of the build's database." msgstr "" @@ -4765,219 +4796,219 @@ msgstr "" msgid "Sign in with your Github account. If you do not have an account yet, hit the *Create an account* link." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:25 +#: ../../content/administration/odoo_sh/getting_started/create.rst:26 msgid "Authorize Odoo.sh" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:27 +#: ../../content/administration/odoo_sh/getting_started/create.rst:28 msgid "Grant Odoo.sh the required accesses to your account by clicking the *Authorize* button." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:32 +#: ../../content/administration/odoo_sh/getting_started/create.rst:33 msgid "Odoo.sh basically needs:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:34 +#: ../../content/administration/odoo_sh/getting_started/create.rst:35 msgid "to know your Github login and email," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:35 +#: ../../content/administration/odoo_sh/getting_started/create.rst:36 msgid "to create a new repository in case you decide to start from scratch," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:36 +#: ../../content/administration/odoo_sh/getting_started/create.rst:37 msgid "to read your existing repositories, including the ones of your organizations, in case you want to start from an existing repository," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:37 +#: ../../content/administration/odoo_sh/getting_started/create.rst:39 msgid "to create a webhook to be notified each time you push changes," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:38 +#: ../../content/administration/odoo_sh/getting_started/create.rst:40 msgid "to commit changes to make your deployment easier, merging branches or adding new `submodules `_ for example." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:41 +#: ../../content/administration/odoo_sh/getting_started/create.rst:44 msgid "Submit your project" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:43 +#: ../../content/administration/odoo_sh/getting_started/create.rst:46 msgid "Choose if you want to start from scratch by creating a new repository, or if you want to use an existing repository." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:45 +#: ../../content/administration/odoo_sh/getting_started/create.rst:49 msgid "Then, choose a name or select the repository you want to use." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:47 +#: ../../content/administration/odoo_sh/getting_started/create.rst:51 msgid "Choose the Odoo version you want to use. If you plan to import an existing database or an existing set of applications, you might need to choose the according version. If you start from scratch, use the latest version." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:49 +#: ../../content/administration/odoo_sh/getting_started/create.rst:55 msgid "Enter your *subscription code*. This is also called *subscription referral*, *contract number* or *activation code*." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:51 +#: ../../content/administration/odoo_sh/getting_started/create.rst:58 msgid "It should be the code of your Enterprise subscription that includes Odoo.sh." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:53 -msgid "Partners can use their partnership codes to start a trial. Should their clients start a project, they ought to get an Enterprise subscription including Odoo.sh and use its subscription code. The partner will get the full amount as back commission. Contact your sales representative or account manager in order to get it." +#: ../../content/administration/odoo_sh/getting_started/create.rst:60 +msgid "Partners can use their partnership codes to start a trial. Should their clients start a project, they ought to get an Enterprise subscription including Odoo.sh and use its subscription code. The partner will get 50% of the amount back as commission. Contact your sales representative or account manager in order to get it." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:56 +#: ../../content/administration/odoo_sh/getting_started/create.rst:65 msgid "When submitting the form, if you are notified your subscription is not valid, it either means:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:58 +#: ../../content/administration/odoo_sh/getting_started/create.rst:67 msgid "it is not an existing subscription," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:59 +#: ../../content/administration/odoo_sh/getting_started/create.rst:68 msgid "it is not a partnership subscription," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:60 +#: ../../content/administration/odoo_sh/getting_started/create.rst:69 msgid "it is an enterprise subscription, but which does not include Odoo.sh," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:61 +#: ../../content/administration/odoo_sh/getting_started/create.rst:70 msgid "it is neither a partnership subscription or an enterprise subscription (e.g. an online subscription)." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:63 +#: ../../content/administration/odoo_sh/getting_started/create.rst:73 msgid "In case of doubt with your subscription, please contact the `Odoo support `_." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:69 +#: ../../content/administration/odoo_sh/getting_started/create.rst:80 msgid "You're done !" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:71 +#: ../../content/administration/odoo_sh/getting_started/create.rst:82 msgid "You can start using Odoo.sh. Your first build is about to be created. You will soon be able to connect to your first database." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:79 +#: ../../content/administration/odoo_sh/getting_started/create.rst:91 msgid "Import your database" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:81 +#: ../../content/administration/odoo_sh/getting_started/create.rst:93 msgid "You can import your database in your Odoo.sh project as long as it is in a :doc:`supported version ` of Odoo." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:85 +#: ../../content/administration/odoo_sh/getting_started/create.rst:97 msgid "Push your modules in production" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:87 +#: ../../content/administration/odoo_sh/getting_started/create.rst:99 msgid "If you use community or custom modules, add them in a branch in your Github repository. Databases hosted on the Odoo.com online platform do not have any custom modules. Users of these databases can therefore skip this step." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:91 +#: ../../content/administration/odoo_sh/getting_started/create.rst:103 msgid "You can structure your modules as you wish, Odoo.sh will automatically detect the folders containing Odoo addons. For instance, you can put all your modules folder in the root directory of your repository, or group the modules in folders by categories that you define (accounting, project, ...)." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:95 +#: ../../content/administration/odoo_sh/getting_started/create.rst:108 msgid "For community modules available in public Git repositories, you can also consider to add them using :ref:`Submodules `." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:98 +#: ../../content/administration/odoo_sh/getting_started/create.rst:111 msgid "Then, either :ref:`make this branch the production branch `, or :ref:`merge it into your production branch `." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:102 +#: ../../content/administration/odoo_sh/getting_started/create.rst:115 msgid "Download a backup" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:105 +#: ../../content/administration/odoo_sh/getting_started/create.rst:118 msgid "On-premise databases" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:107 +#: ../../content/administration/odoo_sh/getting_started/create.rst:120 msgid "Access the URL :file:`/web/database/manager` of your on-premise database and download a backup." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:111 +#: ../../content/administration/odoo_sh/getting_started/create.rst:124 msgid "If you cannot access the database manager, it may have been disabled by your system administrator. See the :ref:`database manager security documentation `." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:114 +#: ../../content/administration/odoo_sh/getting_started/create.rst:127 msgid "You will need the master password of your database server. If you do not have it, contact your system administrator." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:119 +#: ../../content/administration/odoo_sh/getting_started/create.rst:133 msgid "Choose a zip including the filestore as the backup format." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:125 +#: ../../content/administration/odoo_sh/getting_started/create.rst:139 msgid "Odoo Online databases" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:127 +#: ../../content/administration/odoo_sh/getting_started/create.rst:141 msgid "`Access your databases manager `_ and download a backup of your database." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:134 +#: ../../content/administration/odoo_sh/getting_started/create.rst:149 msgid "Online versions (e.g. *saas-**) are not supported on Odoo.sh." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:137 +#: ../../content/administration/odoo_sh/getting_started/create.rst:152 msgid "Upload the backup" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:139 +#: ../../content/administration/odoo_sh/getting_started/create.rst:154 msgid "Then, in your Odoo.sh project, in the backups tab of your production branch, import the backup you just downloaded." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:144 +#: ../../content/administration/odoo_sh/getting_started/create.rst:160 msgid "Once the backup imported, you can access the database using the *Connect* button in the history of the branch." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:150 +#: ../../content/administration/odoo_sh/getting_started/create.rst:167 msgid "Check your outgoing email servers" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:152 +#: ../../content/administration/odoo_sh/getting_started/create.rst:169 msgid "There is a default mail server provided with Odoo.sh. To use it, there must be no enabled outgoing mail server configured in your database in :menuselection:`Settings --> Technical --> Outgoing Mail Servers` (:ref:`Developer mode ` must be activated)." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:157 +#: ../../content/administration/odoo_sh/getting_started/create.rst:174 msgid "After the import of your database, all outgoing email servers are disabled so you use the Odoo.sh email server provided by default." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:162 +#: ../../content/administration/odoo_sh/getting_started/create.rst:178 msgid "Port 25 is (and will stay) closed. If you want to connect to an external SMTP server, you should use ports 465 and 587." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:165 +#: ../../content/administration/odoo_sh/getting_started/create.rst:182 msgid "Check your scheduled actions" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:167 +#: ../../content/administration/odoo_sh/getting_started/create.rst:184 msgid "All scheduled actions are disabled after the import." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:169 +#: ../../content/administration/odoo_sh/getting_started/create.rst:186 msgid "This is to prevent your newly imported database to perform actions that could impact your running production, such as sending the mails remaining in the queue, processing mass mailings, or third-party services synchronization (Calendars, files hosting, ...)." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:173 +#: ../../content/administration/odoo_sh/getting_started/create.rst:190 msgid "If you plan to make the imported database your production, enable the scheduled actions you need. You can check what is enabled in the database of origin and enable the same actions in the imported database. Scheduled actions are located under :menuselection:`Settings --> Technical --> Automation --> Scheduled Actions`." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:178 +#: ../../content/administration/odoo_sh/getting_started/create.rst:196 msgid "Register your subscription" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:180 +#: ../../content/administration/odoo_sh/getting_started/create.rst:198 msgid "Your subscription is unlinked after the import." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:182 +#: ../../content/administration/odoo_sh/getting_started/create.rst:200 msgid "The imported database is considered a duplicate by default and the enterprise subscription is therefore removed, as you can only have one database linked per subscription." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:185 +#: ../../content/administration/odoo_sh/getting_started/create.rst:203 msgid "If you plan to make it your production, unlink your former database from the subscription, and register the newly imported database. Read the :doc:`database registration documentation <../../maintain/on_premise>` for instructions." msgstr "" @@ -5067,418 +5098,418 @@ msgstr "" msgid "pic2" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:47 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:46 msgid "Once the build created, you can access the editor and browse to the folder *~/src/user* to access to the code of your development branch." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:57 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:56 msgid "From your computer" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:60 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:58 msgid "Clone your Github repository on your computer:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:69 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:67 msgid "Create a new branch:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:77 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:74 msgid "Create the module structure" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:80 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:77 msgid "Scaffolding the module" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:82 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:79 msgid "While not necessary, scaffolding avoids the tedium of setting the basic Odoo module structure. You can scaffold a new module using the executable *odoo-bin*." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:85 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:82 msgid "From the Odoo.sh editor, in a terminal:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:91 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:88 msgid "Or, from your computer, if you have an :ref:`installation of Odoo `:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:97 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:94 msgid "If you do not want to bother installing Odoo on your computer, you can also :download:`download this module structure template ` in which you replace every occurrences of *my_module* to the name of your choice." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:101 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:98 msgid "The below structure will be generated:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:124 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:121 msgid "Do not use special characters other than the underscore ( _ ) for your module name, not even an hyphen ( - ). This name is used for the Python classes of your module, and having classes name with special characters other than the underscore is not valid in Python." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:128 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:125 msgid "Uncomment the content of the files:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:130 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:127 msgid "*models/models.py*, an example of model with its fields," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:132 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:129 msgid "*views/views.xml*, a tree and a form view, with the menus opening them," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:134 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:131 msgid "*demo/demo.xml*, demo records for the above example model," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:136 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:133 msgid "*controllers/controllers.py*, an example of controller implementing some routes," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:138 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:135 msgid "*views/templates.xml*, two example qweb views used by the above controller routes," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:140 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:137 msgid "*__manifest__.py*, the manifest of your module, including for instance its title, description and data files to load. You just need to uncomment the access control list data file:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:149 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:146 msgid "Manually" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:151 -msgid "If you want to create your module structure manually, you can follow :doc:`Build an Odoo module ` to understand the structure of a module and the content of each file." +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:148 +msgid "If you want to create your module structure manually, you can follow the :doc:`/developer/tutorials/getting_started` tutorial to understand the structure of a module and the content of each file." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:156 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:153 msgid "Push the development branch" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:158 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:155 msgid "Stage the changes to be committed" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:164 -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:399 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:161 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:395 msgid "Commit your changes" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:170 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:167 msgid "Push your changes to your remote repository" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:172 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:169 msgid "From an Odoo.sh editor terminal:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:178 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:175 msgid "The above command is explained in the section :ref:`Commit & Push your changes ` of the :ref:`Online Editor ` chapter. It includes the explanation regarding the fact you will be prompted to type your username and password, and what to do if you use the two-factor authentication." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:186 -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:387 -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:413 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:183 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:383 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:409 msgid "Or, from your computer terminal:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:192 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:189 msgid "You need to specify *-u origin feature-1* for the first push only. From that point, to push your future changes from your computer, you can simply use" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:200 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:197 msgid "Test your module" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:202 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:199 msgid "Your branch should appear in your development branches in your project." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:207 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:204 msgid "In the branches view of your project, you can click on your branch name in the left navigation panel to access its history." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:213 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:210 msgid "You can see here the changes you just pushed, including the comment you set. Once the database ready, you can access it by clicking the *Connect* button." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:219 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:216 msgid "If your Odoo.sh project is configured to install your module automatically, you will directly see it amongst the database apps. Otherwise, it will be available in the apps to install." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:223 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:220 msgid "You can then play around with your module, create new records and test your features and buttons." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:227 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:223 msgid "Test with the production data" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:229 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:225 msgid "You need to have a production database for this step. You can create it if you do not have it yet." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:231 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:227 msgid "Once you tested your module in a development build with the demo data and believe it is ready, you can test it with the production data using a staging branch." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:234 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:230 msgid "You can either:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:236 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:232 msgid "Make your development branch a staging branch, by drag and dropping it onto the *staging* section title." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:242 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:238 msgid "Merge it in an existing staging branch, by drag and dropping it onto the given staging branch." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:247 -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:293 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:243 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:289 msgid "You can also use the :code:`git merge` command to merge your branches." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:249 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:245 msgid "This will create a new staging build, which will duplicate the production database and make it run using a server updated with your latest changes of your branch." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:255 -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:301 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:251 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:297 msgid "Once the database ready, you can access it using the *Connect* button." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:260 -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:304 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:256 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:300 msgid "Install your module" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:262 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:258 msgid "Your module will not be installed automatically, you have to install it from the apps menu. Indeed, the purpose of the staging build is to test the behavior of your changes as it would be on your production, and on your production you would not like your module to be installed automatically, but on demand." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:267 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:263 msgid "Your module may not appear directly in your apps to install either, you need to update your apps list first:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:270 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:266 msgid "Activate the :ref:`developer mode `" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:271 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:267 msgid "in the apps menu, click the *Update Apps List* button," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:272 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:268 msgid "in the dialog that appears, click the *Update* button." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:277 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:273 msgid "Your module will then appear in the list of available apps." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:283 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:279 msgid "Deploy in production" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:285 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:281 msgid "Once you tested your module in a staging branch with your production data, and believe it is ready for production, you can merge your branch in the production branch." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:288 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:284 msgid "Drag and drop your staging branch on the production branch." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:295 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:291 msgid "This will merge the latest changes of your staging branch in the production branch, and update your production server with these latest changes." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:306 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:302 msgid "Your module will not be installed automatically, you have to install it manually as explained in the :ref:`above section about installing your module in staging databases `." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:312 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:308 msgid "Add a change" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:314 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:310 msgid "This section explains how to add a change in your module by adding a new field in a model and deploy it." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:319 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:315 msgid "From the Odoo.sh editor," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:318 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:314 msgid "browse to your module folder *~/src/user/my_module*," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:319 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:315 msgid "then, open the file *models/models.py*." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:325 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:321 msgid "Or, from your computer," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:322 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:318 msgid "use the file browser of your choice to browse to your module folder *~/src/odoo-addons/my_module*," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:324 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:320 msgid "then, open the file *models/models.py* using the editor of your choice, such as *Atom*, *Sublime Text*, *PyCharm*, *vim*, ..." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:327 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:323 msgid "Then, after the description field" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:333 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:329 msgid "Add a datetime field" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:339 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:335 msgid "Then, open the file *views/views.xml*." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:341 -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:477 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:337 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:473 msgid "After" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:347 -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:454 -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:471 -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:483 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:343 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:450 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:467 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:479 msgid "Add" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:353 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:349 msgid "These changes alter the database structure by adding a column in a table, and modify a view stored in database." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:356 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:352 msgid "In order to be applied in existing databases, such as your production database, these changes requires the module to be updated." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:359 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:355 msgid "If you would like the update to be performed automatically by the Odoo.sh platform when you push your changes, increase your module version in its manifest." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:362 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:358 msgid "Open the module manifest *__manifest__.py*." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:370 -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:508 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:366 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:504 msgid "with" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:376 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:372 msgid "The platform will detect the change of version and trigger the update of the module upon the new revision deployment." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:379 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:375 msgid "Browse to your Git folder." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:381 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:377 msgid "Then, from an Odoo.sh terminal:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:393 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:389 msgid "Then, stage your changes to be committed" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:405 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:401 msgid "Push your changes:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:407 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:403 msgid "From an Odoo.sh terminal:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:419 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:415 msgid "The platform will then create a new build for the branch *feature-1*." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:424 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:420 msgid "Once you tested your changes, you can merge your changes in the production branch, for instance by drag-and-dropping the branch on the production branch in the Odoo.sh interface. As you increased the module version in the manifest, the platform will update the module automatically and your new field will be directly available. Otherwise you can manually update the module within the apps list." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:430 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:426 msgid "Use an external Python library" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:432 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:428 msgid "If you would like to use an external Python library which is not installed by default, you can define a *requirements.txt* file listing the external libraries your modules depends on." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:436 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:432 msgid "It is not possible to install or upgrade system packages on an Odoo.sh database (e.g., apt packages). However, under specific conditions, packages can be considered for installation. This also applies to **Python modules** requiring system packages for their compilation, and **third-party Odoo modules**." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:440 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:436 msgid "**PostgreSQL extensions** are not supported on Odoo.sh." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:441 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:437 msgid "For more information, consult our `FAQ `_." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:443 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:439 msgid "The platform will use this file to automatically install the Python libraries your project needs." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:445 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:441 msgid "The feature is explained in this section by using the `Unidecode library `_ in your module." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:448 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:444 msgid "Create a file *requirements.txt* in the root folder of your repository" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:450 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:446 msgid "From the Odoo.sh editor, create and open the file ~/src/user/requirements.txt." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:452 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:448 msgid "Or, from your computer, create and open the file ~/src/odoo-addons/requirements.txt." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:460 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:456 msgid "Then use the library in your module, for instance to remove accents from characters in the name field of your model." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:463 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:459 msgid "Open the file *models/models.py*." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:465 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:461 msgid "Before" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:498 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:494 msgid "Adding a Python dependency requires a module version increase for the platform to install it." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:500 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:496 msgid "Edit the module manifest *__manifest__.py*" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:514 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:510 msgid "Stage and commit your changes:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:522 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:518 msgid "Then, push your changes:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:524 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:520 msgid "In an Odoo.sh terminal:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:530 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:526 msgid "In your computer terminal:" msgstr "" @@ -5602,158 +5633,158 @@ msgstr "" msgid "The SSH Github remote is not used because your SSH private key is not hosted in your build containers (for obvious security concerns) nor forwarded through an SSH Agent (as you access this editor through a web browser) and you therefore cannot authenticate yourself to Github using SSH. You have to use the HTTPS remote of your Github repository to push your changes, which is added automatically named as *https* in your Git remotes. You will be prompted to enter your Github username and password. If you activated the two-factor authentication on Github, you can create a `personal access token `_ and use it as password. Granting the ``repo`` permission suffices." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/online-editor.rst:138 +#: ../../content/administration/odoo_sh/getting_started/online-editor.rst:137 msgid "The Git source folder *~/src/user* is not checked out on a branch but rather on a detached revision: This is because builds work on specific revisions rather than branches. In other words, this means you can have multiple builds on the same branch, but on different revisions." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/online-editor.rst:142 +#: ../../content/administration/odoo_sh/getting_started/online-editor.rst:141 msgid "Once your changes are pushed, according to your :ref:`branch push behavior `, a new build may be created. You can continue to work in the editor you pushed from, as it will have the same revision as the new build that was created, but always make sure to be in an editor of a build using the latest revision of your branch." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/online-editor.rst:149 +#: ../../content/administration/odoo_sh/getting_started/online-editor.rst:148 msgid "Consoles" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/online-editor.rst:151 +#: ../../content/administration/odoo_sh/getting_started/online-editor.rst:150 msgid "You can open Python consoles, which are `IPython interactive shells `_. One of the most interesting addition to use a Python console rather than a IPython shell within a terminal is the `rich display `_ capabilities. Thanks to this, you will be able to display objects in HTML." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/online-editor.rst:159 +#: ../../content/administration/odoo_sh/getting_started/online-editor.rst:158 msgid "You can for instance display cells of a CSV file using `pandas `_." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/online-editor.rst:165 +#: ../../content/administration/odoo_sh/getting_started/online-editor.rst:164 msgid "You can also open an Odoo Shell console to play around with the Odoo registry and model methods of your database. You can also directly read or write on your records." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/online-editor.rst:170 +#: ../../content/administration/odoo_sh/getting_started/online-editor.rst:169 msgid "In an Odoo Console, transactions are automatically committed. This means, for instance, that changes in records are applied effectively in the database. If you change the name of a user, the name of the user is changed in your database as well. You therefore should use Odoo consoles carefully on production databases." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/online-editor.rst:176 +#: ../../content/administration/odoo_sh/getting_started/online-editor.rst:174 msgid "You can use *env* to invoke models of your database registry, e.g. :code:`env['res.users']`." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/online-editor.rst:186 +#: ../../content/administration/odoo_sh/getting_started/online-editor.rst:184 msgid "The class :code:`Pretty` gives you the possibility to easily display lists and dicts in a pretty way, using the `rich display `_ mentioned above." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/online-editor.rst:194 +#: ../../content/administration/odoo_sh/getting_started/online-editor.rst:192 msgid "You can also use `pandas `_ to display graphs." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:9 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:8 msgid "The settings allow you to manage the configuration of your project." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:15 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:14 msgid "Project name" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:17 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:16 msgid "The name of your project." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:22 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:21 msgid "This defines the address that will be used to access your production database." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:24 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:23 msgid "Addresses of your staging and development builds are derived from this name and assigned automatically. However, when you change your project name, only future builds will use the new name." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:30 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:29 msgid "Collaborators" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:32 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:31 msgid "Manage the Github users who can access your project." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:37 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:36 msgid "There are two levels of users:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:39 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:38 msgid "Admin: has access to all features of Odoo.sh." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:40 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:39 msgid "User: does not have access to the project settings nor to the production and staging databases." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:42 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:41 msgid "The user group is meant for developers who can make modifications in your code but are not allowed to access the production data. Users of this group cannot connect to the production and staging databases using the *1-click connect* feature, but they can of course use their regular account on these databases if they have one, using their regular credentials." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:47 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:46 msgid "In addition, they cannot use the webshell nor have access to the server logs." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:50 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:49 msgid "User" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:50 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:49 msgid "Admin" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:52 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:52 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:54 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:54 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:56 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:56 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:58 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:58 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:60 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:60 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:62 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:62 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:64 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:64 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:66 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:68 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:70 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:72 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:74 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:76 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:78 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:78 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:80 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:80 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:82 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:51 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:51 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:53 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:53 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:55 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:55 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:57 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:57 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:59 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:59 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:61 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:61 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:63 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:63 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:65 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:67 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:69 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:71 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:73 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:75 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:77 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:77 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:79 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:79 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:81 msgid "X" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:54 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:66 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:53 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:65 msgid "1-click connect" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:58 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:70 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:57 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:69 msgid "Shell/SSH" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:64 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:63 msgid "Production & Staging" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:80 -#: ../../content/administration/odoo_sh/getting_started/status.rst:4 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:79 +#: ../../content/administration/odoo_sh/getting_started/status.rst:3 msgid "Status" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:86 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:85 msgid "Public Access" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:88 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:87 msgid "Allow public access to your development builds." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:93 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:92 msgid "If activated, this option exposes the Builds page publicly, allowing visitors to connect to your development builds." msgstr "" @@ -5765,11 +5796,11 @@ msgstr "" msgid "Production and staging builds are excluded, visitors can only see their status." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:103 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:102 msgid "Custom domains" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:105 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:104 msgid "To configure additional domains please refer to the corresponding branch's :ref:`settings tab `." msgstr "" @@ -5801,99 +5832,99 @@ msgstr "" msgid "it can be another Git server than Github, such as Bitbucket, Gitlab or even your own self-hosted server" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:135 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:136 msgid "copy the public key," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:137 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:138 msgid "it should look like *ssh-rsa some...random...characters...here...==*" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:139 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:140 msgid "in the settings of the private sub-repository, add the public key amongst the deploy keys." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:141 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:142 msgid "Github.com: :menuselection:`Settings --> Deploy keys --> Add deploy key`" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:142 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:143 msgid "Bitbucket.com: :menuselection:`Settings --> Access keys --> Add key`" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:143 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:144 msgid "Gitlab.com: :menuselection:`Settings --> Repository --> Deploy Keys`" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:144 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:145 msgid "Self-hosted: append the key to the git user’s authorized_keys file in its .ssh directory" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:147 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:148 msgid "Storage Size" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:149 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:150 msgid "This section shows the storage size used by your project." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:154 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:155 msgid "Storage size is computed as follows:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:156 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:157 msgid "the size of the PostgreSQL database" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:158 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:159 msgid "the size of the disk files available in your container: database filestore, sessions storage directory..." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:161 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:162 msgid "In case you want to analyze disk usage, you can run the tool `ncdu `_ in your Web Shell." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:163 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:165 msgid "Should your production database size grow to exceed what's provisioned in your subscription, it will automatically be synchronized with it." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:167 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:169 msgid "Database Workers" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:169 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:171 msgid "Additional database workers can be configured here. More workers help increase the load your production database is able to handle. If you add more, it will automatically be synchronized with your subscription." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:177 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:179 msgid "Adding more workers will not magically solve all performance issues. It only allows the server to handle more connections at the same time. If some operations are unusually slow, it's most likely a problem with the code, if it's not due to your own customizations you can open a ticket `here `_." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:183 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:185 msgid "Staging Branches" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:185 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:187 msgid "Additional staging branches allow you to develop and test more features at the same time. If you add more, it will automatically be synchronized with your subscription." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:192 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:194 msgid "Activation" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:194 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:196 msgid "Shows the status of the project's activation. You can change the project's activation code if needed." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/status.rst:9 +#: ../../content/administration/odoo_sh/getting_started/status.rst:8 msgid "The status page shows statistics regarding the servers your project uses. It includes the servers availability." msgstr "" -#: ../../content/administration/odoo_sh/overview/introduction.rst:4 +#: ../../content/administration/odoo_sh/overview/introduction.rst:3 msgid "Introduction to Odoo.sh" msgstr "" -#: ../../content/administration/odoo_sh/overview/introduction.rst:11 +#: ../../content/administration/odoo_sh/overview/introduction.rst:10 msgid "The documentation will help you go live with your Odoo.sh project in no time." msgstr "" @@ -5919,7 +5950,7 @@ msgstr "" #: ../../content/administration/upgrade.rst:29 #: ../../content/administration/upgrade.rst:148 -#: ../../content/administration/upgrade.rst:251 +#: ../../content/administration/upgrade.rst:252 #: ../../content/administration/upgrade/faq.rst:81 #: ../../content/administration/upgrade/faq.rst:92 #: ../../content/administration/upgrade/faq.rst:119 @@ -6165,7 +6196,7 @@ msgid "This is a factor to take into consideration before upgrading. If you are msgstr "" #: ../../content/administration/upgrade.rst:218 -#: ../../content/administration/upgrade.rst:256 +#: ../../content/administration/upgrade.rst:257 msgid ":doc:`maintain/supported_versions`" msgstr "" @@ -6214,18 +6245,22 @@ msgid "Any new developments and/or upgrades of your own :ref:`custom modules `_ on the latest version" msgstr "" -#: ../../content/administration/upgrade.rst:248 +#: ../../content/administration/upgrade.rst:249 msgid "You can get more information about your Enterprise Licence on our :ref:`Odoo Enterprise Subscription Agreement ` page." msgstr "" -#: ../../content/administration/upgrade.rst:254 +#: ../../content/administration/upgrade.rst:255 msgid ":doc:`upgrade/faq`" msgstr "" -#: ../../content/administration/upgrade.rst:255 +#: ../../content/administration/upgrade.rst:256 msgid ":doc:`odoo_sh`" msgstr "" diff --git a/locale/sources/applications.pot b/locale/sources/applications.pot index ca163909f..a45f2def2 100644 --- a/locale/sources/applications.pot +++ b/locale/sources/applications.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo 16.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-04 12:47+0000\n" +"POT-Creation-Date: 2023-03-03 17:52+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/locale/sources/contributing.pot b/locale/sources/contributing.pot index 4e6d2d28b..933e21e2d 100644 --- a/locale/sources/contributing.pot +++ b/locale/sources/contributing.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo 16.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-13 14:27+0000\n" +"POT-Creation-Date: 2023-03-03 17:52+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -418,926 +418,926 @@ msgstr "" msgid "Directories" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:33 +#: ../../content/contributing/development/coding_guidelines.rst:34 msgid "A module is organized in important directories. Those contain the business logic; having a look at them should make you understand the purpose of the module." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:36 +#: ../../content/contributing/development/coding_guidelines.rst:37 msgid "*data/* : demo and data xml" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:37 +#: ../../content/contributing/development/coding_guidelines.rst:38 msgid "*models/* : models definition" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:38 +#: ../../content/contributing/development/coding_guidelines.rst:39 msgid "*controllers/* : contains controllers (HTTP routes)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:39 +#: ../../content/contributing/development/coding_guidelines.rst:40 msgid "*views/* : contains the views and templates" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:40 +#: ../../content/contributing/development/coding_guidelines.rst:41 msgid "*static/* : contains the web assets, separated into *css/, js/, img/, lib/, ...*" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:42 +#: ../../content/contributing/development/coding_guidelines.rst:43 msgid "Other optional directories compose the module." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:44 +#: ../../content/contributing/development/coding_guidelines.rst:45 msgid "*wizard/* : regroups the transient models (``models.TransientModel``) and their views" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:45 +#: ../../content/contributing/development/coding_guidelines.rst:46 msgid "*report/* : contains the printable reports and models based on SQL views. Python objects and XML views are included in this directory" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:46 +#: ../../content/contributing/development/coding_guidelines.rst:47 msgid "*tests/* : contains the Python tests" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:50 +#: ../../content/contributing/development/coding_guidelines.rst:51 msgid "File naming" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:52 +#: ../../content/contributing/development/coding_guidelines.rst:53 msgid "File naming is important to quickly find information through all odoo addons. This section explains how to name files in a standard odoo module. As an example we use a `plant nursery `_ application. It holds two main models *plant.nursery* and *plant.order*." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:57 +#: ../../content/contributing/development/coding_guidelines.rst:58 msgid "Concerning *models*, split the business logic by sets of models belonging to a same main model. Each set lies in a given file named based on its main model. If there is only one model, its name is the same as the module name. Each inherited model should be in its own file to help understanding of impacted models." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:71 +#: ../../content/contributing/development/coding_guidelines.rst:72 msgid "Concerning *security*, three main files should be used:" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:73 +#: ../../content/contributing/development/coding_guidelines.rst:74 msgid "First one is the definition of access rights done in a :file:`ir.model.access.csv` file." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:74 +#: ../../content/contributing/development/coding_guidelines.rst:75 msgid "User groups are defined in :file:`_groups.xml`." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:75 +#: ../../content/contributing/development/coding_guidelines.rst:76 msgid "Record rules are defined in :file:`_security.xml`." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:86 +#: ../../content/contributing/development/coding_guidelines.rst:87 msgid "Concerning *views*, backend views should be split like models and suffixed by ``_views.xml``. Backend views are list, form, kanban, activity, graph, pivot, .. views. To ease split by model in views main menus not linked to specific actions may be extracted into an optional ``_menus.xml`` file. Templates (QWeb pages used notably for portal / website display) and bundles (import of JS and CSS assets) are put in separate files. Those are respectively ``_templates.xml`` and ``assets.xml`` files." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:106 +#: ../../content/contributing/development/coding_guidelines.rst:107 msgid "Concerning *data*, split them by purpose (demo or data) and main model. Filenames will be the main_model name suffixed by ``_demo.xml`` or ``_data.xml``. For instance for an application having demo and data for its main model as well as subtypes, activities and mail templates all related to mail module:" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:119 +#: ../../content/contributing/development/coding_guidelines.rst:120 msgid "Concerning *controllers*, generally all controllers belong to a single controller contained in a file named ``.py``. An old convention in Odoo is to name this file ``main.py`` but it is considered as outdated. If you need to inherit an existing controller from another module do it in ``.py``. For example adding portal controller in an application is done in ``portal.py``." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:133 +#: ../../content/contributing/development/coding_guidelines.rst:134 msgid "Concerning *static files*, Javascript files follow globally the same logic as python models. Each component should be in its own file with a meaningful name. For instance, the activity widgets are located in ``activity.js`` of mail module. Subdirectories can also be created to structure the 'package' (see web module for more details). The same logic should be applied for the templates of JS widgets (static XML files) and for their styles (scss files). Don't link data (image, libraries) outside Odoo: do not use an URL to an image but copy it in the codebase instead." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:142 +#: ../../content/contributing/development/coding_guidelines.rst:143 msgid "Concerning *wizards*, naming convention is the same of for python models: ``.py`` and ``_views.xml``. Both are put in the wizard directory. This naming comes from old odoo applications using the wizard keyword for transient models." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:154 +#: ../../content/contributing/development/coding_guidelines.rst:155 msgid "Concerning *statistics reports* done with python / SQL views and classic views naming is the following :" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:164 +#: ../../content/contributing/development/coding_guidelines.rst:165 msgid "Concerning *printable reports* which contain mainly data preparation and Qweb templates naming is the following :" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:174 +#: ../../content/contributing/development/coding_guidelines.rst:175 msgid "The complete tree of our Odoo module therefore looks like" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:233 +#: ../../content/contributing/development/coding_guidelines.rst:234 msgid "File names should only contain ``[a-z0-9_]`` (lowercase alphanumerics and ``_``)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:236 +#: ../../content/contributing/development/coding_guidelines.rst:237 msgid "Use correct file permissions : folder 755 and file 644." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:241 +#: ../../content/contributing/development/coding_guidelines.rst:242 msgid "XML files" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:244 +#: ../../content/contributing/development/coding_guidelines.rst:245 msgid "Format" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:245 +#: ../../content/contributing/development/coding_guidelines.rst:247 msgid "To declare a record in XML, the **record** notation (using **) is recommended:" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:247 +#: ../../content/contributing/development/coding_guidelines.rst:249 msgid "Place ``id`` attribute before ``model``" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:248 +#: ../../content/contributing/development/coding_guidelines.rst:250 msgid "For field declaration, ``name`` attribute is first. Then place the *value* either in the ``field`` tag, either in the ``eval`` attribute, and finally other attributes (widget, options, ...) ordered by importance." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:253 +#: ../../content/contributing/development/coding_guidelines.rst:255 msgid "Try to group the record by model. In case of dependencies between action/menu/views, this convention may not be applicable." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:255 +#: ../../content/contributing/development/coding_guidelines.rst:257 msgid "Use naming convention defined at the next point" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:256 +#: ../../content/contributing/development/coding_guidelines.rst:258 msgid "The tag ** is only used to set not-updatable data with ``noupdate=1``. If there is only not-updatable data in the file, the ``noupdate=1`` can be set on the ```` tag and do not set a ```` tag." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:274 +#: ../../content/contributing/development/coding_guidelines.rst:276 msgid "Odoo supports custom tags acting as syntactic sugar:" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:276 +#: ../../content/contributing/development/coding_guidelines.rst:278 msgid "menuitem: use it as a shortcut to declare a ``ir.ui.menu``" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:277 +#: ../../content/contributing/development/coding_guidelines.rst:279 msgid "template: use it to declare a QWeb View requiring only the ``arch`` section of the view." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:279 +#: ../../content/contributing/development/coding_guidelines.rst:281 msgid "These tags are preferred over the *record* notation." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:283 +#: ../../content/contributing/development/coding_guidelines.rst:285 msgid "XML IDs and naming" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:286 +#: ../../content/contributing/development/coding_guidelines.rst:288 msgid "Security, View and Action" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:288 +#: ../../content/contributing/development/coding_guidelines.rst:290 msgid "Use the following pattern :" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:290 +#: ../../content/contributing/development/coding_guidelines.rst:292 msgid "For a menu: :samp:`{}_menu`, or :samp:`{}_menu_{do_stuff}` for submenus." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:291 +#: ../../content/contributing/development/coding_guidelines.rst:293 msgid "For a view: :samp:`{}_view_{}`, where *view_type* is ``kanban``, ``form``, ``tree``, ``search``, ..." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:293 +#: ../../content/contributing/development/coding_guidelines.rst:295 msgid "For an action: the main action respects :samp:`{}_action`. Others are suffixed with :samp:`_{}`, where *detail* is a lowercase string briefly explaining the action. This is used only if multiple actions are declared for the model." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:297 +#: ../../content/contributing/development/coding_guidelines.rst:299 msgid "For window actions: suffix the action name by the specific view information like :samp:`{}_action_view_{}`." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:299 +#: ../../content/contributing/development/coding_guidelines.rst:301 msgid "For a group: :samp:`{}_group_{}` where *group_name* is the name of the group, generally 'user', 'manager', ..." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:301 +#: ../../content/contributing/development/coding_guidelines.rst:303 msgid "For a rule: :samp:`{}_rule_{}` where *concerned_group* is the short name of the concerned group ('user' for the 'model_name_group_user', 'public' for public user, 'company' for multi-company rules, ...)." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:306 +#: ../../content/contributing/development/coding_guidelines.rst:308 msgid "Name should be identical to xml id with dots replacing underscores. Actions should have a real naming as it is used as display name." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:360 +#: ../../content/contributing/development/coding_guidelines.rst:362 msgid "Inheriting XML" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:362 +#: ../../content/contributing/development/coding_guidelines.rst:364 msgid "Xml Ids of inheriting views should use the same ID as the original record. It helps finding all inheritance at a glance. As final Xml Ids are prefixed by the module that creates them there is no overlap." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:366 +#: ../../content/contributing/development/coding_guidelines.rst:368 msgid "Naming should contain an ``.inherit.{details}`` suffix to ease understanding the override purpose when looking at its name." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:377 +#: ../../content/contributing/development/coding_guidelines.rst:379 msgid "New primary views do not require the inherit suffix as those are new records based upon the first one." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:392 +#: ../../content/contributing/development/coding_guidelines.rst:394 #: ../../content/contributing/documentation/rst_cheat_sheet.rst:879 #: ../../content/contributing/documentation/rst_cheat_sheet.rst:881 #: ../../content/contributing/documentation/rst_cheat_sheet.rst:897 msgid "Python" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:396 +#: ../../content/contributing/development/coding_guidelines.rst:398 msgid "Do not forget to read the :ref:`Security Pitfalls ` section as well to write secure code." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:400 +#: ../../content/contributing/development/coding_guidelines.rst:402 msgid "PEP8 options" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:402 +#: ../../content/contributing/development/coding_guidelines.rst:404 msgid "Using a linter can help show syntax and semantic warnings or errors. Odoo source code tries to respect Python standard, but some of them can be ignored." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:405 +#: ../../content/contributing/development/coding_guidelines.rst:407 msgid "E501: line too long" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:406 +#: ../../content/contributing/development/coding_guidelines.rst:408 msgid "E301: expected 1 blank line, found 0" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:407 +#: ../../content/contributing/development/coding_guidelines.rst:409 msgid "E302: expected 2 blank lines, found 1" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:410 +#: ../../content/contributing/development/coding_guidelines.rst:412 msgid "Imports" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:411 +#: ../../content/contributing/development/coding_guidelines.rst:414 msgid "The imports are ordered as" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:413 +#: ../../content/contributing/development/coding_guidelines.rst:416 msgid "External libraries (one per line sorted and split in python stdlib)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:414 +#: ../../content/contributing/development/coding_guidelines.rst:417 msgid "Imports of ``odoo``" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:415 +#: ../../content/contributing/development/coding_guidelines.rst:418 msgid "Imports from Odoo modules (rarely, and only if necessary)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:417 +#: ../../content/contributing/development/coding_guidelines.rst:420 msgid "Inside these 3 groups, the imported lines are alphabetically sorted." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:435 +#: ../../content/contributing/development/coding_guidelines.rst:438 msgid "Idiomatics of Programming (Python)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:437 +#: ../../content/contributing/development/coding_guidelines.rst:440 msgid "Always favor *readability* over *conciseness* or using the language features or idioms." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:438 +#: ../../content/contributing/development/coding_guidelines.rst:441 msgid "Don't use ``.clone()``" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:449 +#: ../../content/contributing/development/coding_guidelines.rst:452 msgid "Python dictionary : creation and update" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:474 +#: ../../content/contributing/development/coding_guidelines.rst:477 msgid "Use meaningful variable/class/method names" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:475 +#: ../../content/contributing/development/coding_guidelines.rst:478 msgid "Useless variable : Temporary variables can make the code clearer by giving names to objects, but that doesn't mean you should create temporary variables all the time:" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:487 +#: ../../content/contributing/development/coding_guidelines.rst:490 msgid "Multiple return points are OK, when they're simpler" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:507 +#: ../../content/contributing/development/coding_guidelines.rst:510 msgid "Know your builtins : You should at least have a basic understanding of all the Python builtins (http://docs.python.org/library/functions.html)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:515 +#: ../../content/contributing/development/coding_guidelines.rst:518 msgid "Also, ``if 'key' in my_dict`` and ``if my_dict.get('key')`` have very different meaning, be sure that you're using the right one." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:518 +#: ../../content/contributing/development/coding_guidelines.rst:521 msgid "Learn list comprehensions : Use list comprehension, dict comprehension, and basic manipulation using ``map``, ``filter``, ``sum``, ... They make the code easier to read." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:531 +#: ../../content/contributing/development/coding_guidelines.rst:534 msgid "Collections are booleans too : In python, many objects have \"boolean-ish\" value when evaluated in a boolean context (such as an if). Among these are collections (lists, dicts, sets, ...) which are \"falsy\" when empty and \"truthy\" when containing items:" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:542 +#: ../../content/contributing/development/coding_guidelines.rst:545 msgid "So, you can write ``if some_collection:`` instead of ``if len(some_collection):``." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:545 +#: ../../content/contributing/development/coding_guidelines.rst:548 msgid "Iterate on iterables" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:559 +#: ../../content/contributing/development/coding_guidelines.rst:562 msgid "Use dict.setdefault" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:575 +#: ../../content/contributing/development/coding_guidelines.rst:578 msgid "As a good developer, document your code (docstring on methods, simple comments for tricky part of code)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:577 +#: ../../content/contributing/development/coding_guidelines.rst:580 msgid "In additions to these guidelines, you may also find the following link interesting: http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html (a little bit outdated, but quite relevant)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:582 +#: ../../content/contributing/development/coding_guidelines.rst:585 msgid "Programming in Odoo" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:584 +#: ../../content/contributing/development/coding_guidelines.rst:587 msgid "Avoid to create generators and decorators: only use the ones provided by the Odoo API." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:586 +#: ../../content/contributing/development/coding_guidelines.rst:589 msgid "As in python, use ``filtered``, ``mapped``, ``sorted``, ... methods to ease code reading and performance." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:590 +#: ../../content/contributing/development/coding_guidelines.rst:593 msgid "Propagate the context" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:591 +#: ../../content/contributing/development/coding_guidelines.rst:595 msgid "The context is a ``frozendict`` that cannot be modified. To call a method with a different context, the ``with_context`` method should be used :" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:600 +#: ../../content/contributing/development/coding_guidelines.rst:604 msgid "Passing parameter in context can have dangerous side-effects." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:602 +#: ../../content/contributing/development/coding_guidelines.rst:606 msgid "Since the values are propagated automatically, some unexpected behavior may appear. Calling ``create()`` method of a model with *default_my_field* key in context will set the default value of *my_field* for the concerned model. But if during this creation, other objects (such as sale.order.line, on sale.order creation) having a field name *my_field* are created, their default value will be set too." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:608 +#: ../../content/contributing/development/coding_guidelines.rst:612 msgid "If you need to create a key context influencing the behavior of some object, choose a good name, and eventually prefix it by the name of the module to isolate its impact. A good example are the keys of ``mail`` module : *mail_create_nosubscribe*, *mail_notrack*, *mail_notify_user_signature*, ..." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:615 +#: ../../content/contributing/development/coding_guidelines.rst:618 msgid "Think extendable" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:617 +#: ../../content/contributing/development/coding_guidelines.rst:620 msgid "Functions and methods should not contain too much logic: having a lot of small and simple methods is more advisable than having few large and complex methods. A good rule of thumb is to split a method as soon as it has more than one responsibility (see http://en.wikipedia.org/wiki/Single_responsibility_principle)." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:622 +#: ../../content/contributing/development/coding_guidelines.rst:625 msgid "Hardcoding a business logic in a method should be avoided as it prevents to be easily extended by a submodule." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:648 +#: ../../content/contributing/development/coding_guidelines.rst:651 msgid "The above code is over extendable for the sake of example but the readability must be taken into account and a tradeoff must be made." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:651 +#: ../../content/contributing/development/coding_guidelines.rst:654 msgid "Also, name your functions accordingly: small and properly named functions are the starting point of readable/maintainable code and tighter documentation." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:654 +#: ../../content/contributing/development/coding_guidelines.rst:657 msgid "This recommendation is also relevant for classes, files, modules and packages. (See also http://en.wikipedia.org/wiki/Cyclomatic_complexity)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:659 +#: ../../content/contributing/development/coding_guidelines.rst:661 msgid "Never commit the transaction" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:660 +#: ../../content/contributing/development/coding_guidelines.rst:663 msgid "The Odoo framework is in charge of providing the transactional context for all RPC calls. The principle is that a new database cursor is opened at the beginning of each RPC call, and committed when the call has returned, just before transmitting the answer to the RPC client, approximately like this:" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:681 +#: ../../content/contributing/development/coding_guidelines.rst:684 msgid "If any error occurs during the execution of the RPC call, the transaction is rolled back atomically, preserving the state of the system." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:684 +#: ../../content/contributing/development/coding_guidelines.rst:687 msgid "Similarly, the system also provides a dedicated transaction during the execution of tests suites, so it can be rolled back or not depending on the server startup options." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:688 +#: ../../content/contributing/development/coding_guidelines.rst:691 msgid "The consequence is that if you manually call ``cr.commit()`` anywhere there is a very high chance that you will break the system in various ways, because you will cause partial commits, and thus partial and unclean rollbacks, causing among others:" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:693 +#: ../../content/contributing/development/coding_guidelines.rst:696 msgid "inconsistent business data, usually data loss" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:694 +#: ../../content/contributing/development/coding_guidelines.rst:697 msgid "workflow desynchronization, documents stuck permanently" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:695 +#: ../../content/contributing/development/coding_guidelines.rst:698 msgid "tests that can't be rolled back cleanly, and will start polluting the database, and triggering error (this is true even if no error occurs during the transaction)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:706 +#: ../../content/contributing/development/coding_guidelines.rst:709 msgid "Here is the very simple rule:" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:700 +#: ../../content/contributing/development/coding_guidelines.rst:703 msgid "You should **NEVER** call ``cr.commit()`` yourself, **UNLESS** you have created your own database cursor explicitly! And the situations where you need to do that are exceptional!" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:704 +#: ../../content/contributing/development/coding_guidelines.rst:707 msgid "And by the way if you did create your own cursor, then you need to handle error cases and proper rollback, as well as properly close the cursor when you're done with it." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:708 +#: ../../content/contributing/development/coding_guidelines.rst:711 msgid "And contrary to popular belief, you do not even need to call ``cr.commit()`` in the following situations: - in the ``_auto_init()`` method of an *models.Model* object: this is taken care of by the addons initialization method, or by the ORM transaction when creating custom models - in reports: the ``commit()`` is handled by the framework too, so you can update the database even from within a report - within *models.Transient* methods: these methods are called exactly like regular *models.Model* ones, within a transaction and with the corresponding ``cr.commit()/rollback()`` at the end - etc. (see general rule above if you are in doubt!)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:720 +#: ../../content/contributing/development/coding_guidelines.rst:723 msgid "All ``cr.commit()`` calls outside of the server framework from now on must have an **explicit comment** explaining why they are absolutely necessary, why they are indeed correct, and why they do not break the transactions. Otherwise they can and will be removed !" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:727 +#: ../../content/contributing/development/coding_guidelines.rst:729 msgid "Use translation method correctly" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:729 +#: ../../content/contributing/development/coding_guidelines.rst:731 msgid "Odoo uses a GetText-like method named \"underscore\" ``_( )`` to indicate that a static string used in the code needs to be translated at runtime using the language of the context. This pseudo-method is accessed within your code by importing as follows:" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:738 +#: ../../content/contributing/development/coding_guidelines.rst:740 msgid "A few very important rules must be followed when using it, in order for it to work and to avoid filling the translations with useless junk." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:741 +#: ../../content/contributing/development/coding_guidelines.rst:743 msgid "Basically, this method should only be used for static strings written manually in the code, it will not work to translate field values, such as Product names, etc. This must be done instead using the translate flag on the corresponding field." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:746 +#: ../../content/contributing/development/coding_guidelines.rst:748 msgid "The method accepts optional positional or named parameter The rule is very simple: calls to the underscore method should always be in the form ``_('literal string')`` and nothing else:" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:789 +#: ../../content/contributing/development/coding_guidelines.rst:791 msgid "Also, keep in mind that translators will have to work with the literal values that are passed to the underscore function, so please try to make them easy to understand and keep spurious characters and formatting to a minimum. Translators must be aware that formatting patterns such as ``%s`` or ``%d``, newlines, etc. need to be preserved, but it's important to use these in a sensible and obvious manner:" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:809 +#: ../../content/contributing/development/coding_guidelines.rst:811 msgid "In general in Odoo, when manipulating strings, prefer ``%`` over ``.format()`` (when only one variable to replace in a string), and prefer ``%(varname)`` instead of position (when multiple variables have to be replaced). This makes the translation easier for the community translators." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:816 +#: ../../content/contributing/development/coding_guidelines.rst:817 msgid "Symbols and Conventions" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:826 +#: ../../content/contributing/development/coding_guidelines.rst:827 msgid "Model name (using the dot notation, prefix by the module name) :" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:819 +#: ../../content/contributing/development/coding_guidelines.rst:820 msgid "When defining an Odoo Model : use singular form of the name (*res.partner* and *sale.order* instead of *res.partnerS* and *saleS.orderS*)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:821 +#: ../../content/contributing/development/coding_guidelines.rst:822 msgid "When defining an Odoo Transient (wizard) : use ``.`` where *related_base_model* is the base model (defined in *models/*) related to the transient, and *action* is the short name of what the transient do. Avoid the *wizard* word. For instance : ``account.invoice.make``, ``project.task.delegate.batch``, ..." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:825 +#: ../../content/contributing/development/coding_guidelines.rst:826 msgid "When defining *report* model (SQL views e.i.) : use ``.report.``, based on the Transient convention." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:828 +#: ../../content/contributing/development/coding_guidelines.rst:829 msgid "Odoo Python Class : use camelcase (Object-oriented style)." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:839 +#: ../../content/contributing/development/coding_guidelines.rst:840 msgid "Variable name :" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:837 +#: ../../content/contributing/development/coding_guidelines.rst:838 msgid "use camelcase for model variable" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:838 +#: ../../content/contributing/development/coding_guidelines.rst:839 msgid "use underscore lowercase notation for common variable." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:839 +#: ../../content/contributing/development/coding_guidelines.rst:840 msgid "suffix your variable name with *_id* or *_ids* if it contains a record id or list of id. Don't use ``partner_id`` to contain a record of res.partner" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:847 +#: ../../content/contributing/development/coding_guidelines.rst:848 msgid "``One2Many`` and ``Many2Many`` fields should always have *_ids* as suffix (example: sale_order_line_ids)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:848 +#: ../../content/contributing/development/coding_guidelines.rst:849 msgid "``Many2One`` fields should have *_id* as suffix (example : partner_id, user_id, ...)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:858 +#: ../../content/contributing/development/coding_guidelines.rst:859 msgid "Method conventions" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:850 +#: ../../content/contributing/development/coding_guidelines.rst:851 msgid "Compute Field : the compute method pattern is *_compute_*" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:851 +#: ../../content/contributing/development/coding_guidelines.rst:852 msgid "Search method : the search method pattern is *_search_*" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:852 +#: ../../content/contributing/development/coding_guidelines.rst:853 msgid "Default method : the default method pattern is *_default_*" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:853 +#: ../../content/contributing/development/coding_guidelines.rst:854 msgid "Selection method: the selection method pattern is *_selection_*" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:854 +#: ../../content/contributing/development/coding_guidelines.rst:855 msgid "Onchange method : the onchange method pattern is *_onchange_*" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:855 +#: ../../content/contributing/development/coding_guidelines.rst:856 msgid "Constraint method : the constraint method pattern is *_check_*" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:856 +#: ../../content/contributing/development/coding_guidelines.rst:857 msgid "Action method : an object action method is prefix with *action_*. Since it uses only one record, add ``self.ensure_one()`` at the beginning of the method." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:869 +#: ../../content/contributing/development/coding_guidelines.rst:870 msgid "In a Model attribute order should be" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:861 +#: ../../content/contributing/development/coding_guidelines.rst:862 msgid "Private attributes (``_name``, ``_description``, ``_inherit``, ``_sql_constraints``, ...)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:862 +#: ../../content/contributing/development/coding_guidelines.rst:863 msgid "Default method and ``default_get``" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:863 +#: ../../content/contributing/development/coding_guidelines.rst:864 msgid "Field declarations" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:864 +#: ../../content/contributing/development/coding_guidelines.rst:865 msgid "Compute, inverse and search methods in the same order as field declaration" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:865 +#: ../../content/contributing/development/coding_guidelines.rst:866 msgid "Selection method (methods used to return computed values for selection fields)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:866 +#: ../../content/contributing/development/coding_guidelines.rst:867 msgid "Constrains methods (``@api.constrains``) and onchange methods (``@api.onchange``)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:867 +#: ../../content/contributing/development/coding_guidelines.rst:868 msgid "CRUD methods (ORM overrides)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:868 +#: ../../content/contributing/development/coding_guidelines.rst:869 msgid "Action methods" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:869 +#: ../../content/contributing/development/coding_guidelines.rst:870 msgid "And finally, other business methods." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:925 +#: ../../content/contributing/development/coding_guidelines.rst:926 msgid "Javascript" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:928 +#: ../../content/contributing/development/coding_guidelines.rst:929 msgid "Static files organization" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:930 +#: ../../content/contributing/development/coding_guidelines.rst:931 msgid "Odoo addons have some conventions on how to structure various files. We explain here in more details how web assets are supposed to be organized." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:933 +#: ../../content/contributing/development/coding_guidelines.rst:934 msgid "The first thing to know is that the Odoo server will serve (statically) all files located in a *static/* folder, but prefixed with the addon name. So, for example, if a file is located in *addons/web/static/src/js/some_file.js*, then it will be statically available at the url *your-odoo-server.com/web/static/src/js/some_file.js*" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:938 +#: ../../content/contributing/development/coding_guidelines.rst:939 msgid "The convention is to organize the code according to the following structure:" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:940 +#: ../../content/contributing/development/coding_guidelines.rst:941 msgid "*static*: all static files in general" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:942 +#: ../../content/contributing/development/coding_guidelines.rst:943 msgid "*static/lib*: this is the place where js libs should be located, in a sub folder. So, for example, all files from the *jquery* library are in *addons/web/static/lib/jquery*" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:944 +#: ../../content/contributing/development/coding_guidelines.rst:945 msgid "*static/src*: the generic static source code folder" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:946 +#: ../../content/contributing/development/coding_guidelines.rst:947 msgid "*static/src/css*: all css files" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:947 +#: ../../content/contributing/development/coding_guidelines.rst:948 msgid "*static/fonts*" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:948 +#: ../../content/contributing/development/coding_guidelines.rst:949 msgid "*static/img*" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:949 +#: ../../content/contributing/development/coding_guidelines.rst:950 msgid "*static/src/js*" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:951 +#: ../../content/contributing/development/coding_guidelines.rst:952 msgid "*static/src/js/tours*: end user tour files (tutorials, not tests)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:953 +#: ../../content/contributing/development/coding_guidelines.rst:954 msgid "*static/src/scss*: scss files" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:954 +#: ../../content/contributing/development/coding_guidelines.rst:955 msgid "*static/src/xml*: all qweb templates that will be rendered in JS" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:956 +#: ../../content/contributing/development/coding_guidelines.rst:957 msgid "*static/tests*: this is where we put all test related files." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:958 +#: ../../content/contributing/development/coding_guidelines.rst:959 msgid "*static/tests/tours*: this is where we put all tour test files (not tutorials)." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:961 +#: ../../content/contributing/development/coding_guidelines.rst:962 msgid "Javascript coding guidelines" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:963 +#: ../../content/contributing/development/coding_guidelines.rst:964 msgid "``use strict;`` is recommended for all javascript files" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:964 +#: ../../content/contributing/development/coding_guidelines.rst:965 msgid "Use a linter (jshint, ...)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:965 +#: ../../content/contributing/development/coding_guidelines.rst:966 msgid "Never add minified Javascript Libraries" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:966 +#: ../../content/contributing/development/coding_guidelines.rst:967 msgid "Use camelcase for class declaration" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:968 +#: ../../content/contributing/development/coding_guidelines.rst:969 msgid "More precise JS guidelines are detailed in the `github wiki `_. You may also have a look at existing API in Javascript by looking Javascript References." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:975 +#: ../../content/contributing/development/coding_guidelines.rst:976 msgid "CSS and SCSS" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:980 +#: ../../content/contributing/development/coding_guidelines.rst:981 msgid "Syntax and Formatting" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1012 +#: ../../content/contributing/development/coding_guidelines.rst:1013 msgid "four (4) space indents, no tabs;" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1013 +#: ../../content/contributing/development/coding_guidelines.rst:1014 msgid "columns of max. 80 characters wide;" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1014 +#: ../../content/contributing/development/coding_guidelines.rst:1015 msgid "opening brace (`{`): empty space after the last selector;" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1015 +#: ../../content/contributing/development/coding_guidelines.rst:1016 msgid "closing brace (`}`): on its own new line;" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1016 +#: ../../content/contributing/development/coding_guidelines.rst:1017 msgid "one line for each declaration;" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1017 +#: ../../content/contributing/development/coding_guidelines.rst:1018 msgid "meaningful use of whitespace." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1060 +#: ../../content/contributing/development/coding_guidelines.rst:1061 msgid "Properties order" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1062 +#: ../../content/contributing/development/coding_guidelines.rst:1063 msgid "Order properties from the \"outside\" in, starting from `position` and ending with decorative rules (`font`, `filter`, etc.)." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1065 +#: ../../content/contributing/development/coding_guidelines.rst:1066 msgid ":ref:`Scoped SCSS variables ` and :ref:`CSS variables ` must be placed at the very top, followed by an empty line separating them from other declarations." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1091 +#: ../../content/contributing/development/coding_guidelines.rst:1092 msgid "Naming Conventions" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1093 +#: ../../content/contributing/development/coding_guidelines.rst:1094 msgid "Naming conventions in CSS are incredibly useful in making your code more strict, transparent and informative." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1098 +#: ../../content/contributing/development/coding_guidelines.rst:1099 msgid "Avoid `id` selectors, and prefix your classes with `o_`, where `` is the technical name of the module (`sale`, `im_chat`, ...) or the main route reserved by the module (for website modules mainly, i.e. : `o_forum` for the `website_forum` module)." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1099 +#: ../../content/contributing/development/coding_guidelines.rst:1100 msgid "The only exception for this rule is the webclient: it simply uses the `o_` prefix." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1101 +#: ../../content/contributing/development/coding_guidelines.rst:1102 msgid "Avoid creating hyper-specific classes and variable names. When naming nested elements, opt for the \"Grandchild\" approach." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1109 +#: ../../content/contributing/development/coding_guidelines.rst:1110 msgid "Don't" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1123 +#: ../../content/contributing/development/coding_guidelines.rst:1124 msgid "Do" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1135 +#: ../../content/contributing/development/coding_guidelines.rst:1136 msgid "Besides being more compact, this approach eases maintenance because it limits the need of renaming when changes occur at the DOM." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1141 +#: ../../content/contributing/development/coding_guidelines.rst:1142 msgid "SCSS Variables" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1143 +#: ../../content/contributing/development/coding_guidelines.rst:1144 msgid "Our standard convention is `$o-[root]-[element]-[property]-[modifier]`, with:" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1145 +#: ../../content/contributing/development/coding_guidelines.rst:1146 msgid "`$o-`" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1146 -msgid "The prefix." -msgstr "" - #: ../../content/contributing/development/coding_guidelines.rst:1147 -#: ../../content/contributing/development/coding_guidelines.rst:1231 -msgid "`[root]`" +msgid "The prefix." msgstr "" #: ../../content/contributing/development/coding_guidelines.rst:1148 #: ../../content/contributing/development/coding_guidelines.rst:1232 -msgid "Either the component **or** the module name (components take priority)." +msgid "`[root]`" msgstr "" #: ../../content/contributing/development/coding_guidelines.rst:1149 #: ../../content/contributing/development/coding_guidelines.rst:1233 -msgid "`[element]`" +msgid "Either the component **or** the module name (components take priority)." msgstr "" #: ../../content/contributing/development/coding_guidelines.rst:1150 #: ../../content/contributing/development/coding_guidelines.rst:1234 -msgid "An optional identifier for inner elements." +msgid "`[element]`" msgstr "" #: ../../content/contributing/development/coding_guidelines.rst:1151 #: ../../content/contributing/development/coding_guidelines.rst:1235 -msgid "`[property]`" +msgid "An optional identifier for inner elements." msgstr "" #: ../../content/contributing/development/coding_guidelines.rst:1152 #: ../../content/contributing/development/coding_guidelines.rst:1236 +msgid "`[property]`" +msgstr "" + +#: ../../content/contributing/development/coding_guidelines.rst:1153 +#: ../../content/contributing/development/coding_guidelines.rst:1237 msgid "The property/behavior defined by the variable." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1154 -#: ../../content/contributing/development/coding_guidelines.rst:1238 +#: ../../content/contributing/development/coding_guidelines.rst:1155 +#: ../../content/contributing/development/coding_guidelines.rst:1239 msgid "`[modifier]`" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1154 -#: ../../content/contributing/development/coding_guidelines.rst:1238 +#: ../../content/contributing/development/coding_guidelines.rst:1155 +#: ../../content/contributing/development/coding_guidelines.rst:1239 msgid "An optional modifier." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1167 +#: ../../content/contributing/development/coding_guidelines.rst:1168 msgid "SCSS Variables (scoped)" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1169 +#: ../../content/contributing/development/coding_guidelines.rst:1170 msgid "These variables are declared within blocks and are not accessible from the outside. Our standard convention is `$-[variable name]`." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1187 +#: ../../content/contributing/development/coding_guidelines.rst:1188 msgid "`Variables scope on the SASS Documentation `_" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1193 +#: ../../content/contributing/development/coding_guidelines.rst:1194 msgid "SCSS Mixins and Functions" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1195 +#: ../../content/contributing/development/coding_guidelines.rst:1196 msgid "Our standard convention is `o-[name]`. Use descriptive names. When naming functions, use verbs in the imperative form (e.g.: `get`, `make`, `apply`...)." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1198 +#: ../../content/contributing/development/coding_guidelines.rst:1199 msgid "Name optional arguments in the :ref:`scoped variables form `, so `$-[argument]`." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1218 +#: ../../content/contributing/development/coding_guidelines.rst:1219 msgid "`Mixins on the SASS Documentation `_" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1219 +#: ../../content/contributing/development/coding_guidelines.rst:1220 msgid "`Functions on the SASS Documentation `_" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1224 +#: ../../content/contributing/development/coding_guidelines.rst:1225 msgid "CSS Variables" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1226 +#: ../../content/contributing/development/coding_guidelines.rst:1227 msgid "In Odoo, the use of CSS variables is strictly DOM-related. Use them to **contextually** adapt the design and layout." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1229 +#: ../../content/contributing/development/coding_guidelines.rst:1230 msgid "Our standard convention is BEM, so `--[root]__[element]-[property]--[modifier]`, with:" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1260 +#: ../../content/contributing/development/coding_guidelines.rst:1261 msgid "Use of CSS Variables" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1262 +#: ../../content/contributing/development/coding_guidelines.rst:1263 msgid "In Odoo, the use of CSS variables is strictly DOM-related, meaning that are used to **contextually** adapt the design and layout rather than to manage the global design-system. These are typically used when a component's properties can vary in specific contexts or in other circumstances." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1266 +#: ../../content/contributing/development/coding_guidelines.rst:1267 msgid "We define these properties inside the component's main block, providing default fallbacks." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1270 +#: ../../content/contributing/development/coding_guidelines.rst:1271 msgid ":file:`my_component.scss`" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1277 +#: ../../content/contributing/development/coding_guidelines.rst:1278 msgid ":file:`my_dashboard.scss`" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1286 +#: ../../content/contributing/development/coding_guidelines.rst:1287 msgid "`CSS variables on MDN web docs `_" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1292 +#: ../../content/contributing/development/coding_guidelines.rst:1293 msgid "CSS and SCSS Variables" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1294 +#: ../../content/contributing/development/coding_guidelines.rst:1295 msgid "Despite being apparently similar, `CSS` and `SCSS` variables behave very differently. The main difference is that, while `SCSS` variables are **imperative** and compiled away, `CSS` variables are **declarative** and included in the final output." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1299 +#: ../../content/contributing/development/coding_guidelines.rst:1300 msgid "`CSS/SCSS variables difference on the SASS Documentation `_" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1302 +#: ../../content/contributing/development/coding_guidelines.rst:1303 msgid "In Odoo, we take the best of both worlds: using the `SCSS` variables to define the design-system while opting for the `CSS` ones when it comes to contextual adaptations." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1305 +#: ../../content/contributing/development/coding_guidelines.rst:1306 msgid "The implementation of the previous example should be improved by adding SCSS variables in order to gain control at the top-level and ensure consistency with other components." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1310 +#: ../../content/contributing/development/coding_guidelines.rst:1311 msgid ":file:`secondary_variables.scss`" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1317 +#: ../../content/contributing/development/coding_guidelines.rst:1318 msgid ":file:`component.scss`" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1324 +#: ../../content/contributing/development/coding_guidelines.rst:1325 msgid ":file:`dashboard.scss`" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1334 +#: ../../content/contributing/development/coding_guidelines.rst:1335 msgid "The `:root` pseudo-class" msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1336 +#: ../../content/contributing/development/coding_guidelines.rst:1337 msgid "Defining CSS variables on the `:root` pseudo-class is a technique we normally **don't use** in Odoo's UI. The practice is commonly used to access and modify CSS variables globally. We perform this using SCSS instead." msgstr "" -#: ../../content/contributing/development/coding_guidelines.rst:1340 +#: ../../content/contributing/development/coding_guidelines.rst:1341 msgid "Exceptions to this rule should be fairly apparent, such as templates shared across bundles that require a certain level of contextual awareness in order to be rendered properly." msgstr "" @@ -1607,7 +1607,7 @@ msgid "Click on the :guilabel:`Preview changes` button to review your contributi msgstr "" #: ../../content/contributing/documentation.rst:184 -msgid "Scroll to the bottom of the page and fill out the small form to propose your changes. In the first text box, write a very short summary of your changes. For instance, \"Fix a typo\" or \"Add documentation for invoicing of sales orders\". In the second text box, explain *why* you are proposing these changes. Then, click on the :guilabel:`Propose changes` button." +msgid "Scroll to the bottom of the page and fill out the small form to propose your changes. In the first text box, write a very short summary of your changes. For instance, \"Fix a typo\" or \"Add documentation for invoicing of sales orders.\" In the second text box, explain *why* you are proposing these changes. Then, click on the :guilabel:`Propose changes` button." msgstr "" #: ../../content/contributing/documentation.rst:195 @@ -2750,42 +2750,46 @@ msgid "Code tabs are essentially :ref:`group tabs ` tha msgstr "" #: ../../content/contributing/documentation/rst_cheat_sheet.rst:1009 +msgid "Cards" +msgstr "" + +#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1057 msgid "Document metadata" msgstr "" -#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1011 +#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1059 msgid "Sphinx supports document-wide metadata markups that specify a behavior for the entire page." msgstr "" -#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1012 +#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1060 msgid "They must be placed between colons (`:`) at the top of the source file." msgstr "" -#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1015 +#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1063 msgid "**Metadata**" msgstr "" -#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1015 +#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1063 msgid "**Purpose**" msgstr "" -#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1017 +#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1065 msgid "`show-content`" msgstr "" -#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1017 +#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1065 msgid "Make a toctree page accessible from the navigation menu." msgstr "" -#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1019 +#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1067 msgid "`show-toc`" msgstr "" -#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1019 +#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1067 msgid "Show the table of content on a page that has the `show-content` metadata markup." msgstr "" -#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1022 +#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1070 msgid "`code-column`" msgstr "" @@ -2794,62 +2798,62 @@ msgid "Show a dynamic side column that can be used to display interactive tutori msgstr "" #: ../../content/contributing/documentation/rst_cheat_sheet.rst:0 -msgid "For example, see :doc:`/applications/finance/accounting/getting_started/memento`." +msgid "For example, see :doc:`/applications/finance/accounting/getting_started/cheat_sheet`." msgstr "" -#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1027 +#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1075 msgid "`hide-page-toc`" msgstr "" -#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1027 +#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1075 msgid "Hide the \"On this page\" sidebar and use full page width for the content." msgstr "" -#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1029 +#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1077 msgid "`custom-css`" msgstr "" -#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1029 +#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1077 msgid "Link CSS files (comma-separated) to the document." msgstr "" -#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1031 +#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1079 msgid "`custom-js`" msgstr "" -#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1031 +#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1079 msgid "Link JS files (comma-separated) to the document." msgstr "" -#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1033 +#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1081 msgid "`classes`" msgstr "" -#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1033 +#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1081 msgid "Assign the specified classes to the `
` element of the document." msgstr "" -#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1035 +#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1083 msgid "`orphan`" msgstr "" -#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1035 +#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1083 msgid "Suppress the need to include the document in a toctree." msgstr "" -#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1037 +#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1085 msgid "`nosearch`" msgstr "" -#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1037 +#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1085 msgid "Exclude the document from search results." msgstr "" -#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1043 +#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1091 msgid "Formatting tips" msgstr "" -#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1048 +#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1096 msgid "Break the line but not the paragraph" msgstr "" @@ -2861,15 +2865,15 @@ msgstr "" msgid "A second line that follows a line break." msgstr "" -#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1066 +#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1114 msgid "Escape markup symbols (Advanced)" msgstr "" -#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1068 +#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1116 msgid "Markup symbols escaped with backslashes (``\\``) are rendered normally. For instance, ``this \\*\\*line of text\\*\\* with \\*markup\\* symbols`` is rendered as “this \\*\\*line of text\\*\\* with \\*markup\\* symbols”." msgstr "" -#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1072 +#: ../../content/contributing/documentation/rst_cheat_sheet.rst:1120 msgid "When it comes to backticks (`````), which are used in many cases such as :ref:`external hyperlinks `, using backslashes for escaping is no longer an option because the outer backticks interpret enclosed backslashes and thus prevent them from escaping inner backticks. For instance, ```\\`this formatting\\```` produces an ``[UNKNOWN NODE title_reference]`` error. Instead, `````this formatting````` should be used to produce the following result: ```this formatting```." msgstr "" diff --git a/locale/sources/developer.pot b/locale/sources/developer.pot new file mode 100644 index 000000000..194d60f87 --- /dev/null +++ b/locale/sources/developer.pot @@ -0,0 +1,37587 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) Odoo S.A. +# This file is distributed under the same license as the Odoo package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Odoo 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-03-03 17:52+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../content/developer.rst:9 +msgid "Developer" +msgstr "" + +#: ../../content/developer.rst:11 +msgid "Learn through tutorials and get help using reference guides." +msgstr "" + +#: ../../content/developer/glossary.rst:5 +msgid "Glossary" +msgstr "" + +#: ../../content/developer/glossary.rst:8 +msgid "external id" +msgstr "" + +#: ../../content/developer/glossary.rst:9 +msgid "external identifier" +msgstr "" + +#: ../../content/developer/glossary.rst:10 +msgid "external identifiers" +msgstr "" + +#: ../../content/developer/glossary.rst:12 +msgid "string identifier stored in ``ir.model.data``, can be used to refer to a record regardless of its database identifier during data imports or export/import roundtrips." +msgstr "" + +#: ../../content/developer/glossary.rst:16 +msgid "External identifiers are in the form :samp:`{module}.{id}` (e.g. ``account.invoice_graph``). From within a module, the :samp:`{module}.` prefix can be left out." +msgstr "" + +#: ../../content/developer/glossary.rst:20 +msgid "Sometimes referred to as \"xml id\" or ``xml_id`` as XML-based :ref:`reference/data` make extensive use of them." +msgstr "" + +#: ../../content/developer/glossary.rst:22 +msgid "format string" +msgstr "" + +#: ../../content/developer/glossary.rst:24 +msgid "inspired by `jinja variables`_, format strings allow more easily mixing literal content and computed content (expressions): content between ``{{`` and ``}}`` is interpreted as an expression and evaluated, other content is interpreted as literal strings and displayed as-is" +msgstr "" + +#: ../../content/developer/glossary.rst:29 +msgid "GIS" +msgstr "" + +#: ../../content/developer/glossary.rst:30 +msgid "Geographic Information System" +msgstr "" + +#: ../../content/developer/glossary.rst:32 +msgid "any computer system or subsystem to capture, store, manipulate, analyze, manage or present spatial and geographical data." +msgstr "" + +#: ../../content/developer/glossary.rst:34 +msgid "minified" +msgstr "" + +#: ../../content/developer/glossary.rst:35 +msgid "minification" +msgstr "" + +#: ../../content/developer/glossary.rst:37 +msgid "process of removing extraneous/non-necessary sections of files (comments, whitespace) and possibly recompiling them using equivalent but shorter structures (`ternary operator`_ instead of ``if/else``) in order to reduce network traffic" +msgstr "" + +#: ../../content/developer/howtos.rst:6 +msgid "How-to guides" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:4 +msgid "Accounting localization" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:8 +msgid "This tutorial requires knowledge about how to build a module in Odoo (see :doc:`../tutorials/getting_started`)." +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:13 +msgid "Installation procedure" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:15 +msgid "On installing the `account `_ module, the localization module corresponding to the country code of the company is installed automatically. In case of no country code set or no localization module found, the `l10n_generic_coa `_ (US) localization module is installed by default. Check `post init hook `_ for details." +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:19 +msgid "For example, `l10n_ch `_ will be installed if the company has ``Switzerland`` as country." +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:22 +msgid "Building a localization module" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:24 +msgid "The structure of a basic ``l10n_XX`` module may be described with the following :file:`__manifest__.py` file:" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:63 +msgid "In the first file :file:`data/account_chart_template_data.xml`, we set the name for the chart of accounts along with some basic fields." +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:66 +msgid ":ref:`Chart Template References `" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:69 +msgid "`addons/l10n_ch/data/l10n_ch_chart_data.xml `_" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:80 +msgid "Recommended **xmlid** for the record is `chart_template`. If you need many chart of accounts, you can add some suffixes, i.e. `chart_template_XXX`." +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:85 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.chart_template_id:1 +msgid "Chart of Accounts" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:88 +msgid "Account tags" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:91 +msgid ":ref:`Account Tag References `" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:93 +msgid "Tags are a way to sort accounts. For example, imagine you want to create a financial report having multiple lines but you have no way to find a rule to dispatch the accounts according to their ``code``. The solution is the usage of tags, one for each report line, to filter accounts like you want." +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:97 +msgid "Put the tags in the :file:`data/account_account_tag_data.xml` file." +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:100 +msgid "`addons/l10n_lt/data/account.account.template.csv `_" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:108 +#: ../../content/developer/howtos/accounting_localization.rst:138 +msgid "`addons/l10n_at/data/account_account_template.xml `_" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:119 +msgid "Accounts" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:122 +msgid ":ref:`Account References `" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:123 +msgid ":doc:`/applications/finance/accounting/getting_started/initial_configuration/chart_of_accounts`" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:125 +msgid "Obviously, :guilabel:`Chart of Accounts` cannot exist without :guilabel:`Accounts`. You need to specify them in :file:`data/account.account.template.csv`." +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:128 +msgid "`addons/l10n_ch/data/account.account.template.csv `_" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:135 +msgid "CSV is prefered but you may use XML format instead." +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:148 +msgid "Avoid the usage of liquidity ``account.account.type``! Indeed, the bank & cash accounts are created directly at the installation of the localization module and then, are linked to an ``account.journal``." +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:150 +msgid "Only one account of type payable/receivable is enough for the generic case. We need to define a PoS receivable account as well however. (linked in the CoA)" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:151 +msgid "Don't create too many accounts: 200-300 is enough. But mostly, we try to find a good balance where the CoA needs minimal adapting for most companies afterwards." +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:153 +msgid "Next settings for the chart of accounts are set in a separate file, because we need to provide a :ref:`list of accounts ` first. In :file:`data/account_chart_post_data.xml`, we set some default accounts:" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:158 +msgid "`addons/l10n_ch/data/l10n_ch_chart_post_data.xml `_" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:168 +msgid "Account groups" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:171 +msgid ":ref:`Account Group References `" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:173 +msgid "Account groups allow describing the hierarchical structure of the chart of accounts. The filter needs to be activated in the report and then when you decollapse into journal entries it will show the parents of the account." +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:175 +msgid "It works with the prefix *start*/*end*, so every account where the code starts with something between *start* and *end* will have this account.group as the parent group. Furthermore, the account groups can have a parent account group as well to form the hierarchy." +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:179 +msgid "`addons/l10n_il/data/account.group.template.csv `_" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +#: ../../content/developer/reference/backend/data/res.country.state.csv:1 +#: ../../content/developer/tutorials/dashboards.rst:302 +msgid "id" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "code_prefix_start" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "code_prefix_end" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +#: ../../content/developer/reference/backend/data/res.country.state.csv:1 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountAccountTemplate.name:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountAccountTemplate.currency_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountAccountTemplate.code:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountAccountTemplate.account_type:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountAccountTemplate.reconcile:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountAccountTemplate.note:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountAccountTemplate.tax_ids:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountAccountTemplate.nocreate:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountAccountTemplate.chart_template_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountAccountTemplate.tag_ids:0 +#: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.name: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_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.color: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.tax_negate:0 +#: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.country_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.name:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.parent_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.code_digits:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.visible:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.currency_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.country_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.use_anglo_saxon:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.bank_account_code_prefix:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.cash_account_code_prefix:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.transfer_account_code_prefix:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.account_ids:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.income_currency_exchange_account_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.expense_currency_exchange_account_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.account_journal_suspense_account_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.account_journal_payment_debit_account_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.account_journal_payment_credit_account_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.default_cash_difference_income_account_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.default_cash_difference_expense_account_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.default_pos_receivable_account_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.property_account_receivable_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.property_account_payable_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.property_account_expense_categ_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.property_account_income_categ_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.property_account_expense_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.property_account_income_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.property_stock_account_input_categ_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.property_stock_account_output_categ_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.property_stock_valuation_account_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.property_tax_payable_account_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.property_tax_receivable_account_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.property_advance_tax_payment_account_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountChartTemplate.property_cash_basis_base_account_id:0 +#: ../../../odoo/addons/l10n_multilang/models/account.py:docstring of odoo.addons.l10n_multilang.models.account.AccountChartTemplate.spoken_languages:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountFiscalPositionTemplate.sequence:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountFiscalPositionTemplate.name:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountFiscalPositionTemplate.chart_template_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountFiscalPositionTemplate.account_ids:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountFiscalPositionTemplate.tax_ids:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountFiscalPositionTemplate.note:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountFiscalPositionTemplate.auto_apply:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountFiscalPositionTemplate.vat_required:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountFiscalPositionTemplate.country_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountFiscalPositionTemplate.country_group_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountFiscalPositionTemplate.state_ids:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountFiscalPositionTemplate.zip_from:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountFiscalPositionTemplate.zip_to:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountGroupTemplate.parent_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountGroupTemplate.name:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountGroupTemplate.code_prefix_start:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountGroupTemplate.code_prefix_end:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountGroupTemplate.chart_template_id:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.name:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.line_ids:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.column_ids:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.root_report_id:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.chart_template_id:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.country_id:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.only_tax_exigible:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.availability_condition:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.load_more_limit:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.search_bar:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.default_opening_date_filter:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_multi_company:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_date_range:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_show_draft:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_unreconciled:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_unfold_all:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_period_comparison:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_growth_comparison:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_journals:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_analytic:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_hierarchy:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_account_type:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_partner:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_fiscal_position:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.name:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.expression_ids:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.report_id:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.hierarchy_level:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.parent_id:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.children_ids:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.foldable:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.print_on_new_page:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.action_id:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.hide_if_zero:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountTaxTemplate.chart_template_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountTaxTemplate.name:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountTaxTemplate.type_tax_use:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountTaxTemplate.tax_scope:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountTaxTemplate.amount_type:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountTaxTemplate.active:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountTaxTemplate.children_tax_ids:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountTaxTemplate.sequence:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountTaxTemplate.amount:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountTaxTemplate.description:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountTaxTemplate.price_include:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountTaxTemplate.include_base_amount:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountTaxTemplate.is_base_affected:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountTaxTemplate.analytic:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountTaxTemplate.invoice_repartition_line_ids:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountTaxTemplate.refund_repartition_line_ids:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountTaxTemplate.tax_group_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountTaxTemplate.tax_exigibility:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountTaxTemplate.cash_basis_transition_account_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountTaxRepartitionLineTemplate.factor_percent:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountTaxRepartitionLineTemplate.repartition_type:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountTaxRepartitionLineTemplate.account_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountTaxRepartitionLineTemplate.invoice_tax_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountTaxRepartitionLineTemplate.refund_tax_id:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountTaxRepartitionLineTemplate.tag_ids:0 +#: ../../../odoo/addons/account/models/chart_template.py:docstring of odoo.addons.account.models.chart_template.AccountTaxRepartitionLineTemplate.use_in_tax_closing:0 +#: ../../content/developer/tutorials/define_module_data.rst:176 +#: ../../content/developer/tutorials/getting_started/04_basicmodel.rst:182 +#: ../../content/developer/tutorials/getting_started/04_basicmodel.rst:255 +#: ../../content/developer/tutorials/getting_started/08_relations.rst:73 +#: ../../content/developer/tutorials/getting_started/08_relations.rst:180 +msgid "name" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "chart_template_id/id" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "il_group_100100" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "100100" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "100499" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "Fixed Assets" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "l10n_il.il_chart_template" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "il_group_101110" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "101110" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "101400" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "Current Assets" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "il_group_101401" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "101401" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "101799" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "Bank And Cash" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "il_group_111000" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "111000" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "111999" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "Current Liabilities" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "il_group_112000" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "112000" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "112210" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "Non-current Liabilities" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "il_group_200000" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "200000" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "200199" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "Sales Income" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "il_group_200200" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "200200" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "200300" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "Other Income" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "il_group_201000" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "201000" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "201299" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "Cost of Goods" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "il_group_202000" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "202000" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "220900" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "Expenses" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "il_group_300000" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "300000" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "399999" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/account.group.template.csv:1 +msgid "Capital And Shares" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:188 +#: ../../content/developer/reference/standard_modules/account/account_tax.rst:5 +msgid "Taxes" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:191 +msgid ":ref:`Tax References `" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:192 +msgid ":doc:`/applications/finance/accounting/taxation/taxes/taxes`" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:194 +msgid "To add taxes you first need to specify tax groups. You normally need just one tax group for every tax rate, except for the 0% as you need to often distinguish between exempt, 0%, not subject, ... taxes. This model only has two required fields: *name* and *country*. Create the file :file:`data/account_tax_group_data.xml` and list the groups:" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:211 +msgid "`addons/l10n_ch/data/account_tax_group_data.xml `_" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:220 +msgid "`addons/l10n_uk/data/account.tax.group.csv `_" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:227 +msgid "Now you can add the taxes via :file:`data/account_tax_template_data.xml` file. The first tax you define that is purchase/sale also becomes the default purchase/sale tax for your products." +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:231 +msgid "`addons/l10n_ae/data/account_tax_template_data.xml `_" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:239 +msgid "If some accounts should use default taxes, you can set them up in :file:`data/account_account_template_post_data.xml`" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:242 +msgid "Tax Report" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:248 +msgid "The tax report is declared in the :guilabel:`Invoicing` (`account`) app, but the report is only accessible when :guilabel:`Accounting` (`account_accountant`) is installed." +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:251 +#: ../../content/developer/howtos/accounting_localization.rst:376 +msgid ":doc:`/developer/reference/standard_modules/account/account_report_line`" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:252 +msgid ":doc:`/applications/finance/accounting/reporting/declarations/tax_returns`" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:254 +msgid "In the previous section, you noticed the fields `invoice_repartition_line_ids` or `refund_repartition_line_ids` and probably understood nothing about them. Good news: you are not alone on this incomprehension. Bad news: you have to figure it out a bit. The topic is complicated. Indeed:" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:259 +msgid "The simple version is that, in the tax template, you indicate in the invoice/refund repartition lines whether the base or a percentage of the tax needs to be reported in which report line (through the *minus/plus_report_line_ids* fields). It becomes clear also when you check the tax configuration in the Odoo interface (or check the docs :ref:`Tax References `, :ref:`Tax Repartition References `)." +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:262 +msgid "So, once you have properly configured taxes, you just need to add the :file:`data/account_tax_report_data.xml` file with a record for your `account.report`. For it to be considered as a tax report, you need to provide it with the right `root_report_id`." +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:276 +msgid "... followed by the declaration of its lines, as `account.report.line` records." +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:279 +msgid "`addons/l10n_au/data/account_tax_report_data.xml `_" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:290 +msgid "Fiscal positions" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:293 +msgid ":ref:`Fiscal Position References `" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:294 +msgid ":doc:`/applications/finance/accounting/taxation/taxes/fiscal_positions`" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:296 +msgid "Specify fiscal positions in the :file:`data/account_fiscal_position_template_data.xml` file." +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:299 +msgid "`addons/l10n_es/data/account_fiscal_position_template_data.xml `_" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:308 +msgid "Final steps" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:310 +msgid "The last step when installing a localization module is to try to apply its chart of accounts to the current company (if it does not already have one). The file :file:`data/account_chart_template_try_loading.xml` is responsible for that." +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:314 +msgid "`addons/l10n_ch/data/account_chart_template_data.xml `_" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:322 +msgid "Finally, you may add a demo company, so the localization can easily be tested in demo mode." +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:325 +msgid "`addons/l10n_ch/demo/demo_company.xml `_" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:334 +msgid "Accounting reports" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:341 +msgid ":doc:`/applications/finance/accounting/reporting/overview`" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:343 +msgid "Accounting reports should be added via a separate module `l10n_XX_reports` that should go to the `enterprise repository `_." +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:345 +msgid "Basic :file:`__manifest__.py` file for such a module looks as following:" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:366 +msgid "Functional overview of financial reports is here: :doc:`/applications/finance/accounting/reporting/overview/main_reports`." +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:368 +msgid "Some good examples:" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:370 +msgid "`l10n_ch_reports/data/account_financial_html_report_data.xml `_" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:371 +msgid "`l10n_be_reports/data/account_financial_html_report_data.xml `_" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:373 +msgid "You can check the meaning of the fields here:" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:375 +msgid ":doc:`/developer/reference/standard_modules/account/account_report`" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:378 +msgid "If you gave a `root_report_id` to your report, it is now available in its variant selector. If not, you still need to add a menu item for it. A default menu item can be created from the form view of the report by clicking on :menuselection:`Actions --> Create Menu Item`. You will then need to refresh the page to see it. Alternatively, to create a dedicated section for a totally new report in the :guilabel:`Reporting` menu, you need to create a new `ir.ui.menu` record (usually in the main `l10n_XX` module) and a new `ir.actions.client` (usually in the new report XML file) that calls the `account.report` with the new **report id**. Then, set the new menu as `parent_id` field in the action model." +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:388 +msgid "`ir.ui.menu creation `_" +msgstr "" + +#: ../../content/developer/howtos/accounting_localization.rst:389 +msgid "`ir.actions.client and menu item creation `_" +msgstr "" + +#: ../../content/developer/howtos/company.rst:6 +msgid "Multi-company Guidelines" +msgstr "" + +#: ../../content/developer/howtos/company.rst:10 +msgid "This tutorial requires good knowledge of Odoo. Please refer to the :doc:`../tutorials/getting_started` tutorial first if needed." +msgstr "" + +#: ../../content/developer/howtos/company.rst:13 +msgid "As of version 13.0, a user can be logged in multiple companies at once. This allows the user to access information from multiple companies but also to create/edit records in a multi-company environment." +msgstr "" + +#: ../../content/developer/howtos/company.rst:17 +msgid "If not handled correctly, it may be the source of a lot of inconsistent multi-company behaviors. For instance, a user logged in both companies A and B could create a sales order in company A and add products belonging to company B to it. It is only when the user will log out from company B that access errors will occur for the sales order." +msgstr "" + +#: ../../content/developer/howtos/company.rst:22 +msgid "To correctly manage multi-company behaviors, Odoo's ORM provides multiple features:" +msgstr "" + +#: ../../content/developer/howtos/company.rst:24 +msgid ":ref:`Company-dependent fields `" +msgstr "" + +#: ../../content/developer/howtos/company.rst:25 +msgid ":ref:`Multi-company consistency `" +msgstr "" + +#: ../../content/developer/howtos/company.rst:26 +msgid ":ref:`Default company `" +msgstr "" + +#: ../../content/developer/howtos/company.rst:27 +msgid ":ref:`Views `" +msgstr "" + +#: ../../content/developer/howtos/company.rst:28 +msgid ":ref:`Security rules `" +msgstr "" + +#: ../../content/developer/howtos/company.rst:33 +msgid "Company-dependent fields" +msgstr "" + +#: ../../content/developer/howtos/company.rst:35 +msgid "When a record is available from multiple companies, we must expect that different values will be assigned to a given field depending on the company from which the value is set." +msgstr "" + +#: ../../content/developer/howtos/company.rst:38 +msgid "For the field of a same record to support several values, it must be defined with the attribute `company_dependent` set to `True`." +msgstr "" + +#: ../../content/developer/howtos/company.rst:57 +msgid "The `_compute_display_info` method is decorated with `depends_context('company')` (see :attr:`~odoo.api.depends_context`) to ensure that the computed field is recomputed depending on the current company (`self.env.company`)." +msgstr "" + +#: ../../content/developer/howtos/company.rst:61 +msgid "When a company-dependent field is read, the current company is used to retrieve its value. In other words, if a user is logged in companies A and B with A as main company and creates a record for company B, the values of company-dependent fields will be that of company A." +msgstr "" + +#: ../../content/developer/howtos/company.rst:65 +msgid "To read the values of company-dependent fields set from another company than the current one, we need to ensure the company we are using is the correct one. This can be done with :meth:`~odoo.models.Model.with_company`, which updates the current company." +msgstr "" + +#: ../../content/developer/howtos/company.rst:80 +msgid "Whenever you are computing/creating/... things that may behave differently in different companies, you should make sure whatever you are doing is done in the right company. It doesn't cost much to always use `with_company` to avoid problems later on." +msgstr "" + +#: ../../content/developer/howtos/company.rst:101 +msgid "Multi-company consistency" +msgstr "" + +#: ../../content/developer/howtos/company.rst:103 +msgid "When a record is made shareable between several companies by the mean of a `company_id` field, we must take care that it cannot be linked to the record of another company through a relational field. For instance, we do not want to have a sales order and its invoice belonging to different companies." +msgstr "" + +#: ../../content/developer/howtos/company.rst:107 +msgid "To ensure this multi-company consistency, you must:" +msgstr "" + +#: ../../content/developer/howtos/company.rst:109 +msgid "Set the class attribute `_check_company_auto` to `True`." +msgstr "" + +#: ../../content/developer/howtos/company.rst:110 +msgid "Define relational fields with the attribute `check_company` set to `True` if their model has a `company_id` field." +msgstr "" + +#: ../../content/developer/howtos/company.rst:113 +msgid "On each :meth:`~odoo.models.Model.create` and :meth:`~odoo.models.Model.write`, automatic checks will be triggered to ensure the multi-company consistency of the record." +msgstr "" + +#: ../../content/developer/howtos/company.rst:127 +msgid "The field `company_id` must not be defined with `check_company=True`." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._check_company:1 +msgid "Check the companies of the values of the given field names." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._check_company:0 +#: ../../content/developer/howtos/provide_iap_services.rst:0 +#: ../../content/developer/howtos/provide_iap_services.rst:0 +#: ../../content/developer/howtos/provide_iap_services.rst:0 +#: ../../content/developer/howtos/provide_iap_services.rst:0 +#: ../../content/developer/howtos/provide_iap_services.rst:0 +#: ../../content/developer/howtos/provide_iap_services.rst:0 +#: ../../content/developer/howtos/provide_iap_services.rst:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.route:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.update_env:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.csrf_token:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.validate_csrf:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.make_response:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.make_json_response:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.render:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.JsonRPCDispatcher.handle_error:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.HttpDispatcher.handle_error:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Response:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Response.load:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Response.set_cookie:0 +#: ../../content/developer/reference/backend/mixins.rst:0 +#: ../../content/developer/reference/backend/mixins.rst:0 +#: ../../content/developer/reference/backend/mixins.rst:0 +#: ../../content/developer/reference/backend/mixins.rst:0 +#: ../../content/developer/reference/backend/mixins.rst:0 +#: ../../content/developer/reference/backend/mixins.rst:0 +#: ../../content/developer/reference/backend/mixins.rst:0 +#: ../../content/developer/reference/backend/mixins.rst:0 +#: ../../content/developer/reference/backend/mixins.rst:0 +#: ../../content/developer/reference/backend/mixins.rst:0 +#: ../../content/developer/reference/backend/mixins.rst:0 +#: ../../content/developer/reference/backend/mixins.rst:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Char:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Float:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Binary:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Html:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Image:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Monetary:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Selection:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Text:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.add:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Date.context_today:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.end_of:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.start_of:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.subtract:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Date.to_date:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Date.to_string:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.add:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Datetime.context_timestamp:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.end_of:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.start_of:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.subtract:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Datetime.to_datetime:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Datetime.to_string:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2one:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.One2many:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2many:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2many:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2oneReference:0 +#: ../../../odoo/odoo/api.py:docstring of odoo.api.ondelete:0 +#: ../../../odoo/odoo/api.py:docstring of odoo.api.returns:0 +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.ref:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.with_company:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.with_env:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.flush_model:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.flush_recordset:0 +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.invalidate_all:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.invalidate_model:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.invalidate_recordset:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.modified:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.create:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.copy:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.default_get:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.name_create:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.write:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.browse:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search_count:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.name_search:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read_group:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.fields_get:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.filtered:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.filtered_domain:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.mapped:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.sorted:0 +#: ../../../odoo/odoo/exceptions.py:docstring of odoo.exceptions.RedirectWarning:0 +#: ../../../odoo/odoo/tools/profiler.py:docstring of odoo.tools.profiler.Profiler.__init__:0 +#: ../../../odoo/odoo/tools/profiler.py:docstring of odoo.tools.profiler.PeriodicCollector:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._populate:0 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.cartesian:0 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.compute:0 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.iterate:0 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.randint:0 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.randomize:0 +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.BaseCase.browse_ref:0 +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.BaseCase.ref:0 +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.BaseCase.browse_ref:0 +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.BaseCase.ref:0 +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.BaseCase.browse_ref:0 +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.BaseCase.ref:0 +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.Form:0 +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_views:0 +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_view:0 +#: ../../content/developer/reference/frontend/framework_overview.rst:0 +#: ../../content/developer/reference/frontend/framework_overview.rst:0 +#: ../../content/developer/reference/frontend/framework_overview.rst:0 +#: ../../content/developer/reference/frontend/framework_overview.rst:0 +#: ../../content/developer/reference/frontend/qweb.rst:0 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._compute_fees: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 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._is_tokenization_required:0 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._should_build_inline_form:0 +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._build_display_name:0 +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._get_specific_create_values:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference_prefix:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_specific_create_values:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_specific_processing_values:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_specific_rendering_values:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_tx_from_notification_data:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._handle_notification_data:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._process_notification_data:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_refund_request:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_authorized:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_canceled:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_done:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_error:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_pending:0 +msgid "Parameters" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._check_company:3 +msgid "names of relational fields to check" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._check_company:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Response.load:0 +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.company:0 +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.companies:0 +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.ref:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.create:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.write:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read_group:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.unlink:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.ensure_one:0 +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.Form.save:0 +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.O2MProxy.edit:0 +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.O2MProxy.new:0 +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.O2MProxy.remove:0 +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_view:0 +msgid "Raises" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._check_company:4 +msgid "if the `company_id` of the value of any field is not in `[False, self.company_id]` (or `self` if :class:`~odoo.addons.base.models.res_company`)." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._check_company:8 +msgid "For :class:`~odoo.addons.base.models.res_users` relational fields, verifies record company is in `company_ids` fields." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._check_company:11 +msgid "User with main company A, having access to company A and B, could be assigned or linked to records in company B." +msgstr "" + +#: ../../content/developer/howtos/company.rst:132 +msgid "The `check_company` feature performs a strict check ! It means that if a record has no `company_id` (i.e. the field is not required), it cannot be linked to a record whose `company_id` is set." +msgstr "" + +#: ../../content/developer/howtos/company.rst:138 +msgid "When no domain is defined on the field and `check_company` is set to `True`, a default domain is added: `['|', '('company_id', '=', False), ('company_id', '=', company_id)]`" +msgstr "" + +#: ../../content/developer/howtos/company.rst:144 +msgid "Default company" +msgstr "" + +#: ../../content/developer/howtos/company.rst:146 +msgid "When the field `company_id` is made required on a model, a good practice is to set a default company. It eases the setup flow for the user or even guarantees its validity when the company is hidden from the view. Indeed, the company is usually hidden if the user does not have access to multiple companies (i.e. when the user does not have the group `base.group_multi_company`)." +msgstr "" + +#: ../../content/developer/howtos/company.rst:168 +#: ../../content/developer/reference/backend/views.rst:6 +#: ../../content/developer/reference/frontend/javascript_reference.rst:1196 +msgid "Views" +msgstr "" + +#: ../../content/developer/howtos/company.rst:170 +msgid "As stated in :ref:`above `, the company is usually hidden from the view if the user does not have access to multiple companies. This is tested with the group `base.group_multi_company`." +msgstr "" + +#: ../../content/developer/howtos/company.rst:197 +msgid "Security rules" +msgstr "" + +#: ../../content/developer/howtos/company.rst:199 +msgid "When working with records shared across companies or restricted to a single company, we must take care that a user does not have access to records belonging to other companies." +msgstr "" + +#: ../../content/developer/howtos/company.rst:202 +msgid "This is achieved with security rules based on `company_ids`, which contains the current companies of the user (the companies the user checked in the multi-company widget)." +msgstr "" + +#: ../../content/developer/howtos/company.rst:229 +#: ../../content/developer/howtos/provide_iap_services.rst:118 +#: ../../content/developer/howtos/provide_iap_services.rst:222 +#: ../../content/developer/howtos/provide_iap_services.rst:406 +#: ../../content/developer/howtos/provide_iap_services.rst:408 +#: ../../content/developer/howtos/provide_iap_services.rst:511 +#: ../../content/developer/howtos/translations.rst:19 +#: ../../content/developer/reference/backend/actions.rst:176 +#: ../../../odoo/odoo/api.py:docstring of odoo.api:3 +#: ../../content/developer/reference/backend/orm.rst:636 +#: ../../content/developer/reference/backend/orm.rst:638 +#: ../../content/developer/reference/backend/orm.rst:827 +#: ../../content/developer/reference/backend/orm.rst:980 +#: ../../content/developer/reference/backend/security.rst:28 +#: ../../content/developer/reference/backend/security.rst:186 +#: ../../content/developer/reference/backend/views.rst:13 +#: ../../content/developer/reference/backend/views.rst:70 +#: ../../content/developer/reference/backend/views.rst:81 +#: ../../content/developer/reference/backend/views.rst:179 +#: ../../content/developer/reference/backend/views.rst:241 +#: ../../content/developer/reference/backend/views.rst:890 +#: ../../content/developer/reference/backend/views.rst:1014 +#: ../../content/developer/reference/backend/views.rst:1016 +#: ../../content/developer/reference/backend/views.rst:1589 +#: ../../content/developer/reference/backend/views.rst:1684 +#: ../../content/developer/reference/backend/views.rst:1702 +#: ../../content/developer/reference/backend/views.rst:1833 +#: ../../content/developer/reference/frontend/qweb.rst:412 +#: ../../content/developer/reference/frontend/qweb.rst:413 +#: ../../content/developer/reference/frontend/qweb.rst:475 +#: ../../content/developer/reference/frontend/qweb.rst:792 +#: ../../content/developer/tutorials/discover_js_framework/01_components.rst:51 +#: ../../content/developer/tutorials/discover_js_framework/05_custom_kanban_view.rst:5 +#: ../../content/developer/tutorials/web.rst:134 +#: ../../content/developer/tutorials/web.rst:1872 +#: ../../content/developer/tutorials/website.rst:495 +msgid "Todo" +msgstr "" + +#: ../../content/developer/howtos/company.rst:229 +msgid "check_company on company_dependent fields." +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:3 +msgid "Connect with a device" +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:5 +msgid "IoT Drivers allow any Odoo module to communicate in real-time with any device connected to the IoT Box. Communication with the IoT Box goes both ways, so the Odoo client can send commands to and receive information from any of the supported devices." +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:10 +msgid "To add support for a device, all we need is:" +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:12 +msgid "an `Interface`, to detect connected devices of a specific type" +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:13 +msgid "a `Driver`, to communicate with an individual device" +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:15 +msgid "At each boot, the IoT Box will load all of the Interfaces and Drivers that can be located on the connected Odoo instance. Each module can contain an `iot_handlers` directory that will be copied to the IoT Box. The structure of this directory is the following" +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:34 +msgid "Detect Devices" +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:36 +msgid "Devices connected to the IoT Box are detected through `Interfaces`. There is an Interface for each supported connection type (USB, Bluetooth, Video, Printers, Serial, etc.). The interface maintains a list of detected devices and associates them with the right Driver." +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:41 +msgid "Supported devices will appear both on the IoT Box Homepage that you can access through its IP address and in the IoT module of the connected Odoo instance." +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:45 +msgid "Interface" +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:47 +msgid "The role of the Interface is to maintain a list of devices connected through a determined connection type. Creating a new interface requires" +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:50 +msgid "Extending the `Interface` class" +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:51 +msgid "Setting the `connection_type` class attribute" +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:52 +msgid "Implementing the `get_devices` method, that should return a dictionary containing data about each detected device. This data will be given as argument to the constructors and `supported` method of the Drivers." +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:57 +msgid "Setting the `_loop_delay` attribute will modify the interval between calls to `get_devices`. By default, this interval is set to 3 seconds." +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:74 +msgid "Driver" +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:76 +msgid "Once the interface has retrieved the list of detected devices, it will loop through all of the Drivers that have the same `connection_type` attribute and test their respective `supported` method on all detected devices. If the supported method of a Driver returns `True`, an instance of this Driver will be created for the corresponding device." +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:83 +msgid "`supported` methods of drivers are given a priority order. The `supported` method of a child class will always be tested before the one of its parent. This priority can be adjusted by modifying the `priority` attribute of the Driver." +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:88 +msgid "Creating a new Driver requires:" +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:90 +msgid "Extending `Driver`" +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:91 +msgid "Setting the `connection_type` class attribute." +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:92 +msgid "Setting the `device_type`, `device_connection` and `device_name` attributes." +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:93 +msgid "Defining the `supported` method" +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:113 +msgid "Communicate With Devices" +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:115 +msgid "Once your new device is detected and appears in the IoT module, the next step is to communicate with it. Since the box only has a local IP address, it can only be reached from the same local network. Communication, therefore, needs to happen on the browser-side, in JavaScript." +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:120 +msgid "The process depends on the direction of the communication: - From the browser to the box, through `Actions`_ - From the box to the browser, through `Longpolling`_" +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:124 +msgid "Both channels are accessed from the same JS object, the `DeviceProxy`, which is instantiated using the IP of the IoT Box and the device identifier." +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:137 +#: ../../content/developer/reference/backend/actions.rst:6 +#: ../../content/developer/tutorials/getting_started/06_firstui.rst:47 +msgid "Actions" +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:139 +msgid "Actions are used to tell a selected device to execute a specific action, such as taking a picture, printing a receipt, etc." +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:143 +msgid "It must be noted that no “answer” will be sent by the box on this route, only the request status. The answer to the action, if any, has to be retrieved via the longpolling." +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:147 +msgid "An action can be performed on the DeviceProxy Object." +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:153 +msgid "In your driver, define an `action` method that will be executed when called from an Odoo module. It takes the data given during the call as argument." +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:162 +msgid "Longpolling" +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:164 +msgid "When any module in Odoo wants to read data from a specific device, it creates a listener identified by the IP/domain of the box and the device identifier and passes it a callback function to be called every time the device status changes. The callback is called with the new data as argument." +msgstr "" + +#: ../../content/developer/howtos/connect_device.rst:177 +msgid "In the Driver, an event is released by calling the `device_changed` function from the `event_manager`. All callbacks set on the listener will then be called with `self.data` as argument." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:3 +msgid "Provide IAP services" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:5 +msgid "In-App Purchase (IAP) allows providers of ongoing services through Odoo apps to be compensated for ongoing service use rather than — and possibly instead of — a sole initial purchase." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:9 +msgid "In that context, Odoo acts mostly as a *broker* between a client and an Odoo App Developer:" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:12 +msgid "Users purchase service tokens from Odoo." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:13 +msgid "Service providers draw tokens from the user's Odoo account when service is requested." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:18 +msgid "This document is intended for *service providers* and presents the latter, which can be done either via direct JSON-RPC2_ or if you are using Odoo using the convenience helpers it provides." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:23 +#: ../../content/developer/reference/frontend/javascript_reference.rst:17 +#: ../../content/developer/reference/frontend/services.rst:144 +#: ../../content/developer/reference/frontend/services.rst:182 +#: ../../content/developer/reference/frontend/services.rst:362 +#: ../../content/developer/reference/frontend/services.rst:408 +#: ../../content/developer/reference/frontend/services.rst:522 +#: ../../content/developer/reference/frontend/services.rst:612 +#: ../../content/developer/reference/frontend/services.rst:708 +#: ../../content/developer/reference/frontend/services.rst:759 +#: ../../content/developer/reference/frontend/services.rst:834 +#: ../../content/developer/reference/user_interface/scss_inheritance.rst:6 +msgid "Overview" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:28 +msgid "The Players" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:30 +msgid "The Service Provider is (probably) you the reader, you will be providing value to the client in the form of a service paid per-use." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:32 +msgid "The Client installed your Odoo App, and from there will request services." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:33 +msgid "Odoo brokers crediting, the Client adds credit to their account, and you can draw credits from there to provide services." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:35 +msgid "The External Service is an optional player: *you* can either provide a service directly, or you can delegate the actual service acting as a bridge/translator between an Odoo system and the actual service." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:43 +msgid "The Credits" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:45 +msgid "The credits went from integer to float value starting **October 2018**. Integer values are still supported." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:48 +msgid "Every service provided through the IAP platform can be used by the clients with tokens or *credits*. The credits are an float unit and their monetary value depends on the service and is decided by the provider. This could be:" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:53 +msgid "for an sms service: 1 credit = 1 sms;" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:54 +msgid "for an ad service: 1 credit = 1 ad; or" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:55 +msgid "for a postage service: 1 credit = 1 post stamp." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:57 +msgid "A credit can also simply be associated with a fixed amount of money to palliate the variations of price (e.g. the prices of sms and stamps may vary following the countries)." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:61 +msgid "The value of the credits is fixed with the help of prepaid credit packs that the clients can buy on https://iap.odoo.com (see :ref:`Packs `)." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:64 +msgid "In the following explanations we will ignore the External Service, they are just a detail of the service you provide." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:70 +msgid "'Normal' service flow" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:72 +msgid "If everything goes well, the normal flow is the following:" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:74 +msgid "The Client requests a service of some sort." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:75 +msgid "The Service Provider asks Odoo if there are enough credits for the service in the Client's account, and creates a transaction over that amount." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:78 +msgid "The Service Provider provides the service (either on their own or calling to External Services)." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:80 +msgid "The Service Provider goes back to Odoo to capture (if the service could be provided) or cancel (if the service could not be provided) the transaction created at step 2." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:83 +msgid "Finally, the Service Provider notifies the Client that the service has been rendered, possibly (depending on the service) displaying or storing its results in the client's system." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:90 +msgid "Insufficient credits" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:92 +msgid "However, if the Client's account lacks credits for the service, the flow will be as follows:" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:94 +msgid "The Client requests a service as previously." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:95 +msgid "The Service Provider asks Odoo if there are enough credits on the Client's account and gets a negative reply." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:97 +msgid "This is signaled back to the Client." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:98 +msgid "Who is redirected to their Odoo account to credit it and re-try." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:102 +msgid "Building your service" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:104 +msgid "For this example, the service we will provide is ~~mining dogecoins~~ burning 10 seconds of CPU for a credit. For your own services, you could, for example:" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:107 +msgid "provide an online service yourself (e.g. convert quotations to faxes for business in Japan);" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:109 +msgid "provide an *offline* service yourself (e.g. provide accountancy service); or" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:110 +msgid "act as intermediary to an other service provider (e.g. bridge to an MMS gateway)." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:116 +msgid "Register the service on Odoo" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:118 +msgid "complete this part with screenshots" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:120 +msgid "The first step is to register your service on the IAP endpoint (production and/or test) before you can actually query user accounts. To create a service, go to your *Portal Account* on the IAP endpoint (https://iap.odoo.com for production, https://iap-sandbox.odoo.com for testing, the endpoints are *independent* and *not synchronized*). Alternatively, you can go to your portal on Odoo (https://iap.odoo.com/my/home) and select *In-App Services*." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:129 +msgid "On production, there is a manual validation step before the service can be used to manage real transactions. This step is automatically passed when on sandbox to ease the tests." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:133 +msgid "Log in then go to :menuselection:`My Account --> Your In-App Services`, click Create and provide the information of your service." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:137 +msgid "The service has *seven* important fields:" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:139 +msgid ":samp:`name` - :class:`ServiceName`: This is the string you will need to provide inside the client's :ref:`app ` when requesting a transaction from Odoo. (e.g. `self.env['iap.account].get(name)`). As good practice, this should match the technical name of your app." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:144 +msgid ":samp:`label` - :class:`Label`: The name displayed on the shopping portal for the client." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:149 +msgid "Both the :class:`ServiceName` and :class:`Label` are unique. As good practice, the :class:`ServiceName` should usually match the name of your Odoo Client App." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:152 +msgid ":samp:`icon` - :class:`Icon`: A generic icon that will serve as default for your :ref:`packs `." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:155 +msgid ":samp:`key` - :class:`ServiceKey`: The developer key that identifies you in IAP (see :ref:`your service `) and allows to draw credits from the client's account. It will be shown only once upon creation of the service and can be regenerated at will." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:161 +msgid "Your :class:`ServiceKey` *is a secret*, leaking your service key allows other application developers to draw credits bought for your service(s)." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:165 +msgid ":samp:`trial credits` - :class:`Float`: This corresponds to the credits you are ready to offer upon first use to your app users. Note that such service will only be available to clients that have an active enterprise contract." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:169 +msgid ":samp:`privacy policy` - :class:`PrivacyPolicy`: This is an url to the privacy policy of your service. This should explicitly mention the **information you collect**, how you **use it, its relevance** to make your service work and inform the client on how they can **access, update or delete their personal information**." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:186 +msgid "You can then create *credit packs* which clients can purchase in order to use your service." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:192 +msgid "Packs" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:194 +msgid "A credit pack is essentially a product with five characteristics:" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:196 +msgid "Name: name of the pack," +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:197 +msgid "Icon: specific icon for the pack (if not provided, it will fallback on the service icon)," +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:198 +msgid "Description: details on the pack that will appear on the shop page as well as the invoice," +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:200 +msgid "Amount: amount of credits the client is entitled to when buying the pack," +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:201 +msgid "Price: price in EUR (for the time being, USD support is planned)." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:205 +msgid "Odoo takes a 25% commission on all pack sales. Adjust your selling price accordingly." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:210 +msgid "Depending on the strategy, the price per credit may vary from one pack to another." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:220 +msgid "Odoo App" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:222 +msgid "does this actually require apps?" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:224 +msgid "The second step is to develop an `Odoo App`_ which clients can install in their Odoo instance and through which they can *request* the services you provide. Our app will just add a button to the Partners form which lets a user request burning some CPU time on the server." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:229 +msgid "First, we will create an *odoo module* depending on ``iap``. IAP is a standard V11 module and the dependency ensures a local account is properly set up and we will have access to some necessary views and useful helpers." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:233 +#: ../../content/developer/howtos/provide_iap_services.rst:248 +msgid "`coalroller/__manifest__.py`" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:243 +msgid "Second, the \"local\" side of the integration. Here we will only be adding an action button to the partners view, but you can of course provide significant local value via your application and additional parts via a remote service." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:261 +msgid "`coalroller/views/res_partner_views.xml`" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:286 +msgid "We can now implement the action method/callback. This will *call our own server*." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:289 +msgid "There are no requirements when it comes to the server or the communication protocol between the app and our server, but ``iap`` provides a :func:`~odoo.addons.iap.tools.iap_tools.iap_jsonrpc` helper to call a JSON-RPC2_ endpoint on an other Odoo instance and transparently re-raise relevant Odoo exceptions (:class:`~odoo.addons.iap.tools.iap_tools.InsufficientCreditError`, :class:`odoo.exceptions.AccessError` and :class:`odoo.exceptions.UserError`)." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:296 +msgid "In that call, we will need to provide:" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:298 +msgid "any relevant client parameter (none here)," +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:299 +msgid "the :class:`token ` of the current client that is provided by the ``iap.account`` model's ``account_token`` field. You can retrieve the account for your service by calling :samp:`env['iap.account'].get({service_name})` where :class:`service_name ` is the name of the service registered on IAP endpoint." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:305 +msgid "`coalroller/models/res_partner.py`" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:333 +msgid "``iap`` automatically handles :class:`~odoo.addons.iap.tools.iap_tools.InsufficientCreditError` coming from the action and prompts the user to add credits to their account." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:337 +msgid ":func:`~odoo.addons.iap.tools.iap_tools.iap_jsonrpc` takes care of re-raising :class:`~odoo.addons.iap.models.iap.InsufficientCreditError` for you." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:342 +msgid "If you are not using :func:`~odoo.addons.iap.tools.iap_tools.iap_jsonrpc` you *must* be careful to re-raise :class:`~odoo.addons.iap.tools.iap_tools.InsufficientCreditError` in your handler otherwise the user will not be prompted to credit their account, and the next call will fail the same way." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:351 +#: ../../content/developer/reference/frontend/javascript_reference.rst:876 +msgid "Service" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:353 +msgid "Though that is not *required*, since ``iap`` provides both a client helper for JSON-RPC2_ calls (:func:`~odoo.addons.iap.tools.iap_tools.iap_jsonrpc`) and a service helper for transactions (:class:`~odoo.addons.iap.tools.iap_tools.iap_charge`) we will also be implementing the service side as an Odoo module:" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:358 +#: ../../content/developer/howtos/provide_iap_services.rst:448 +msgid "`coalroller_service/__manifest__.py`" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:368 +msgid "Since the query from the client comes as JSON-RPC2_ we will need the corresponding controller which can call :class:`~odoo.addons.iap.tools.iap_tools.iap_charge` and perform the service within:" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:372 +#: ../../content/developer/howtos/provide_iap_services.rst:461 +msgid "`coalroller_service/controllers/main.py`" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:406 +msgid "for the actual IAP will the \"portal\" page be on odoo.com or iap.odoo.com?" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:408 +msgid "\"My Account\" > \"Your InApp Services\"?" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:411 +msgid "The :class:`~odoo.addons.iap.tools.iap_tools.iap_charge` helper will:" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:413 +msgid "authorize (create) a transaction with the specified number of credits, if the account does not have enough credits it will raise the relevant error" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:416 +msgid "execute the body of the ``with`` statement" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:417 +msgid "if the body of the ``with`` executes successfully, update the price of the transaction if needed" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:419 +msgid "capture (confirm) the transaction" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:420 +msgid "otherwise, if an error is raised from the body of the ``with``, cancel the transaction (and release the hold on the credits)" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:425 +msgid "By default, :class:`~odoo.addons.iap.tools.iap_tools.iap_charge` contacts the *production* IAP endpoint, https://iap.odoo.com. While developing and testing your service you may want to point it towards the *development* IAP endpoint https://iap-sandbox.odoo.com." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:430 +msgid "To do so, set the ``iap.endpoint`` config parameter in your service Odoo: in debug/developer mode, :menuselection:`Setting --> Technical --> Parameters --> System Parameters`, just define an entry for the key ``iap.endpoint`` if none already exists)." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:435 +msgid "The :class:`~odoo.addons.iap.tools.iap_tools.iap_charge` helper has two additional optional parameters we can use to make things clearer to the end-user." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:440 +#: ../../content/developer/reference/backend/reports.rst:198 +msgid "``description``" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:439 +msgid "is a message which will be associated with the transaction and will be displayed in the user's dashboard, it is useful to remind the user why the charge exists." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:446 +msgid "``credit_template``" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:443 +msgid "is the name of a :ref:`reference/qweb` template which will be rendered and shown to the user if their account has less credit available than the service provider is requesting, its purpose is to tell your users why they should be interested in your IAP offers." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:488 +msgid "`coalroller_service/views/no-credit.xml`" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:511 +msgid "how do you test your service?" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:514 +msgid "JSON-RPC2_ Transaction API" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:519 +msgid "The IAP transaction API does not require using Odoo when implementing your server gateway, calls are standard JSON-RPC2_." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:521 +msgid "Calls use different *endpoints* but the same *method* on all endpoints (``call``)." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:523 +msgid "Exceptions are returned as JSON-RPC2_ errors, the formal exception name is available on ``data.name`` for programmatic manipulation." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:526 +msgid "`iap.odoo.com documentation`_ for additional information." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:529 +#: ../../content/developer/howtos/provide_iap_services.rst:775 +msgid "Authorize" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:533 +msgid "Verifies that the user's account has at least as ``credit`` available *and creates a hold (pending transaction) on that amount*." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:536 +msgid "Any amount currently on hold by a pending transaction is considered unavailable to further authorize calls." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:539 +msgid "Returns a :class:`TransactionToken` identifying the pending transaction which can be used to capture (confirm) or cancel said transaction (`iap.odoo.com documentation`_)." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:545 +msgid "optional, helps users identify the reason for charges on their account" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:547 +msgid "optional, allows the user to benefit from trial credits if his database is eligible (see :ref:`Service registration `)" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:549 +msgid "optional, transaction time to live in hours. If the credit are not captured when the transaction expires, the transaction is cancelled. The default value is set to 4320 hours (= 180 days)." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.csrf_token:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.validate_csrf:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.default_lang:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.get_http_params:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.make_response:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.JsonRPCDispatcher.handle_error:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.HttpDispatcher.handle_error:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Response.load:0 +#: ../../content/developer/reference/backend/mixins.rst:0 +#: ../../content/developer/reference/backend/mixins.rst:0 +#: ../../content/developer/reference/backend/mixins.rst:0 +#: ../../content/developer/reference/backend/mixins.rst:0 +#: ../../content/developer/reference/backend/mixins.rst:0 +#: ../../content/developer/reference/backend/mixins.rst:0 +#: ../../content/developer/reference/backend/mixins.rst:0 +#: ../../content/developer/reference/backend/mixins.rst:0 +#: ../../content/developer/reference/backend/mixins.rst:0 +#: ../../content/developer/reference/backend/mixins.rst:0 +#: ../../content/developer/reference/backend/mixins.rst:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.add:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.end_of:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.start_of:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.subtract:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Date.to_date:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Date.to_string:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.add:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Datetime.context_timestamp:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.end_of:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.start_of:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.subtract:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Datetime.to_datetime:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Datetime.to_string:0 +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.user:0 +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.company:0 +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.companies:0 +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.ref:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.create:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.copy:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.default_get:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.name_create:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.browse:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.name_search:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read_group:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.fields_get:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.name_get:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.get_metadata:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.filtered:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.mapped:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._populate_factories:0 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.cartesian:0 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.compute:0 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.constant:0 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.iterate:0 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.randint:0 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.randomize:0 +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.BaseCase.browse_ref:0 +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.BaseCase.ref:0 +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.BaseCase.browse_ref:0 +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.BaseCase.ref:0 +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.BaseCase.browse_ref:0 +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.BaseCase.ref:0 +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_views:0 +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_view:0 +#: ../../content/developer/reference/frontend/assets.rst:0 +#: ../../content/developer/reference/frontend/framework_overview.rst:0 +#: ../../content/developer/reference/frontend/framework_overview.rst:0 +#: ../../content/developer/reference/frontend/framework_overview.rst:0 +#: ../../content/developer/reference/frontend/framework_overview.rst:0 +#: ../../content/developer/reference/frontend/framework_overview.rst:0 +#: ../../content/developer/reference/frontend/framework_overview.rst:0 +#: ../../content/developer/reference/frontend/framework_overview.rst:0 +#: ../../content/developer/reference/frontend/framework_overview.rst:0 +#: ../../content/developer/reference/frontend/framework_overview.rst:0 +#: ../../content/developer/reference/frontend/framework_overview.rst:0 +#: ../../content/developer/reference/frontend/framework_overview.rst:0 +#: ../../content/developer/reference/frontend/framework_overview.rst:0 +#: ../../content/developer/reference/frontend/hooks.rst:0 +#: ../../content/developer/reference/frontend/javascript_reference.rst:0 +#: ../../content/developer/reference/frontend/javascript_reference.rst:0 +#: ../../content/developer/reference/frontend/javascript_reference.rst:0 +#: ../../content/developer/reference/frontend/mobile.rst:0 +#: ../../content/developer/reference/frontend/mobile.rst:0 +#: ../../content/developer/reference/frontend/qweb.rst:0 +#: ../../content/developer/reference/frontend/registries.rst:0 +#: ../../content/developer/reference/frontend/registries.rst:0 +#: ../../content/developer/reference/frontend/registries.rst:0 +#: ../../content/developer/reference/frontend/registries.rst:0 +#: ../../content/developer/reference/frontend/registries.rst:0 +#: ../../content/developer/reference/frontend/registries.rst:0 +#: ../../content/developer/reference/frontend/services.rst:0 +#: ../../content/developer/reference/frontend/services.rst:0 +#: ../../content/developer/reference/frontend/services.rst:0 +#: ../../content/developer/reference/frontend/services.rst:0 +#: ../../content/developer/reference/frontend/services.rst:0 +#: ../../content/developer/reference/frontend/services.rst:0 +#: ../../content/developer/reference/frontend/services.rst:0 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._compute_feature_support_fields:0 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._compute_fees:0 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._compute_view_configuration_fields: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 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_validation_amount:0 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_validation_currency:0 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._is_tokenization_required:0 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._should_build_inline_form:0 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_removal_values:0 +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._build_display_name:0 +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._get_specific_create_values:0 +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._handle_archiving:0 +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken.get_linked_records_info:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference_prefix:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_post_processing_values:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_specific_create_values:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_specific_processing_values:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_specific_rendering_values:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_tx_from_notification_data:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._handle_notification_data:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._process_notification_data:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_capture_request:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_payment_request:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_refund_request:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_void_request:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_authorized:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_canceled:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_done:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_error:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_pending:0 +msgid "Returns" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:551 +msgid ":class:`TransactionToken` if the authorization succeeded" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:0 +#: ../../content/developer/howtos/provide_iap_services.rst:0 +#: ../../content/developer/howtos/provide_iap_services.rst:0 +#: ../../content/developer/howtos/provide_iap_services.rst:0 +#: ../../content/developer/howtos/provide_iap_services.rst:0 +msgid "raises" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:552 +msgid ":class:`~odoo.exceptions.AccessError` if the service token is invalid" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:553 +msgid ":class:`~odoo.addons.iap.models.iap.InsufficientCreditError` if the account does not have enough credits" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:554 +msgid "``TypeError`` if the ``credit`` value is not an integer or a float" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:577 +#: ../../content/developer/howtos/provide_iap_services.rst:855 +msgid "Capture" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:581 +msgid "Confirms the specified transaction, transferring the reserved credits from the user's account to the service provider's." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:584 +msgid "Capture calls are idempotent: performing capture calls on an already captured transaction has no further effect." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:589 +msgid "optional parameter to capture a smaller amount of credits than authorized" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:590 +#: ../../content/developer/howtos/provide_iap_services.rst:622 +msgid ":class:`~odoo.exceptions.AccessError`" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:610 +#: ../../content/developer/howtos/provide_iap_services.rst:817 +msgid "Cancel" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:614 +msgid "Cancels the specified transaction, releasing the hold on the user's credits." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:617 +msgid "Cancel calls are idempotent: performing capture calls on an already cancelled transaction has no further effect." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:640 +#: ../../content/developer/tutorials/getting_started/04_basicmodel.rst:127 +msgid "Types" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:642 +msgid "Exceptions aside, these are *abstract types* used for clarity, you should not care how they are implemented." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:647 +msgid "String identifying your service on https://iap.odoo.com (production) as well as the account related to your service in the client's database." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:652 +msgid "Identifier generated for the provider's service. Each key (and service) matches a token of a fixed value, as generated by the service provide." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:655 +msgid "Multiple types of tokens correspond to multiple services. As an exampe, SMS and MMS could either be the same service (with an MMS being 'worth' multiple SMS) or could be separate services at separate price points." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:659 +msgid "Your service key *is a secret*, leaking your service key allows other application developers to draw credits bought for your service(s)." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:665 +msgid "Identifier for a user account." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:669 +msgid "Transaction identifier, returned by the authorization process and consumed by either capturing or cancelling the transaction." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:674 +msgid "Raised during transaction authorization if the credits requested are not currently available on the account (either not enough credits or too many pending transactions/existing holds)." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:681 +msgid "Raised by:" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:683 +msgid "any operation to which a service token is required, if the service token is invalid; or" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:684 +msgid "any failure in an inter-server call. (typically, in :func:`~odoo.addons.iap.tools.iap_tools.iap_jsonrpc`)." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:689 +msgid "Raised by any unexpected behaviour at the discretion of the App developer (*you*)." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:693 +msgid "Test the API" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:695 +msgid "In order to test the developed app, we propose a sandbox platform that allows you to:" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:697 +msgid "Test the whole flow from the client's point of view - Actual services and transactions that can be consulted. (again this requires to change the endpoint, see the danger note in :ref:`Service `)." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:700 +msgid "Test the API." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:702 +msgid "The latter consists in specific tokens that will work on **IAP-Sandbox only**." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:704 +msgid "Token ``000000``: Represents a non-existing account. Returns an :class:`~odoo.addons.iap.tools.iap_tools.InsufficientCreditError` on authorize attempt." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:706 +msgid "Token ``000111``: Represents an account without sufficient credits to perform any service. Returns an :class:`~odoo.addons.iap.tools.iap_tools.InsufficientCreditError` on authorize attempt." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:708 +msgid "Token ``111111``: Represents an account with enough credits to perform any service. An authorize attempt will return a dummy transaction token that is processed by the capture and cancel routes." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:714 +msgid "Those tokens are only active on the IAP-Sanbox server." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:715 +msgid "The service key is completely ignored with this flow, If you want to run a robust test of your service, you should ignore these tokens." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:719 +msgid "Odoo Helpers" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:721 +msgid "For convenience, if you are implementing your service using Odoo the ``iap`` module provides a few helpers to make IAP flow even simpler." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:727 +msgid "Charging" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:731 +msgid "A *context manager* for authorizing and automatically capturing or cancelling transactions for use in the backend/proxy." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:734 +msgid "Works much like e.g. a cursor context manager:" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:736 +msgid "immediately authorizes a transaction with the specified parameters;" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:737 +msgid "executes the ``with`` body;" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:738 +msgid "if the body executes in full without error, captures the transaction;" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:739 +msgid "otherwise cancels it." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:741 +#: ../../content/developer/howtos/provide_iap_services.rst:781 +#: ../../content/developer/howtos/provide_iap_services.rst:823 +#: ../../content/developer/howtos/provide_iap_services.rst:861 +msgid "used to retrieve the ``iap.endpoint`` configuration key" +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:779 +msgid "Will authorize everything." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:821 +msgid "Will cancel an authorized transaction." +msgstr "" + +#: ../../content/developer/howtos/provide_iap_services.rst:859 +msgid "Will capture the amount ``credit`` on the given transaction." +msgstr "" + +#: ../../content/developer/howtos/scss_tips.rst:3 +msgid "Write lean easy-to-maintain CSS" +msgstr "" + +#: ../../content/developer/howtos/scss_tips.rst:5 +msgid "There are many ways to lean and simplify SCSS. The first step is to establish if custom code is needed at all." +msgstr "" + +#: ../../content/developer/howtos/scss_tips.rst:8 +msgid "Odoo's webclient has been designed to be modular, meaning that (potentially all) classes can be shared across views. Check the code before creating a new class. Chances are that there is already a class or an HTML tag doing exactly what you're looking for." +msgstr "" + +#: ../../content/developer/howtos/scss_tips.rst:12 +msgid "On top of that, Odoo relies on `Bootstrap `_ (BS), one of the most complete CSS frameworks available. The framework has been customized in order to match Odoo's design (both community and enterprise versions), meaning that you can use any BS class directly in Odoo and achieve a visual result that is consistent with our UI." +msgstr "" + +#: ../../content/developer/howtos/scss_tips.rst:19 +msgid "The fact that a class achieves the desired visual result doesn't necessarily mean that it's the right one for the job. Be aware of classes triggering JS behaviors, for example." +msgstr "" + +#: ../../content/developer/howtos/scss_tips.rst:21 +msgid "Be careful about class semantics. Applying a **button class** to a **title** is not only semantically wrong, it may also lead to migration issues and visual inconsistencies." +msgstr "" + +#: ../../content/developer/howtos/scss_tips.rst:24 +msgid "The following sections describe tips to strip-down SCSS lines **when custom-code is the only way to go**." +msgstr "" + +#: ../../content/developer/howtos/scss_tips.rst:30 +msgid "Browser defaults" +msgstr "" + +#: ../../content/developer/howtos/scss_tips.rst:32 +msgid "By default, each browser renders content using a *user agent stylesheet*. To overcome inconsistencies between browsers, some of these rules are overridden by `Bootstrap Reboot `_." +msgstr "" + +#: ../../content/developer/howtos/scss_tips.rst:36 +msgid "At this stage all \"browser-specific-decoration\" rules have been stripped away, but a big chunk of rules defining basic layout information is maintained (or reinforced by *Reboot* for consistency reasons)." +msgstr "" + +#: ../../content/developer/howtos/scss_tips.rst:40 +msgid "You can rely on these rules." +msgstr "" + +#: ../../content/developer/howtos/scss_tips.rst:44 +msgid "Applying `display: block;` to a `
` is normally not necessary." +msgstr "" + +#: ../../content/developer/howtos/scss_tips.rst:55 +msgid "In this instance, you may opt to switching the HTML tag rather than adding a new CSS rule." +msgstr "" + +#: ../../content/developer/howtos/scss_tips.rst:65 +msgid "Here's a non-comprehensive list of default rules:" +msgstr "" + +#: ../../content/developer/howtos/scss_tips.rst:70 +msgid "Tag / Attribute" +msgstr "" + +#: ../../content/developer/howtos/scss_tips.rst:71 +msgid "Defaults" +msgstr "" + +#: ../../content/developer/howtos/scss_tips.rst:72 +msgid "`
`, `
`, `
`, `