diff --git a/locale/sources/administration.pot b/locale/sources/administration.pot index eebc0679b4..6c65456351 100644 --- a/locale/sources/administration.pot +++ b/locale/sources/administration.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo 17.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-16 14:19+0000\n" +"POT-Creation-Date: 2025-11-18 10:55+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -151,7 +151,7 @@ msgstr "" #: ../../content/administration/hosting.rst:42 #: ../../content/administration/hosting.rst:85 -msgid "Follow the instructions found in :ref:`the Import your database section ` of the Odoo.sh *Create your project* documentation." +msgid "Follow the instructions found in :ref:`the Import a database section ` of the Odoo.sh *Create a project* documentation." msgstr "" #: ../../content/administration/hosting.rst:46 @@ -234,7 +234,7 @@ msgid "Databases are **not reachable** during their migration." msgstr "" #: ../../content/administration/hosting.rst:122 -msgid "Download a :ref:`backup of your Odoo.sh production database `." +msgid "Download a :ref:`backup of your Odoo.sh production database `." msgstr "" #: ../../content/administration/mobile.rst:3 @@ -502,6 +502,7 @@ msgid ":guilabel:`My Apps Dashboard`" msgstr "" #: ../../content/administration/odoo_online.rst:3 +#: ../../content/administration/odoo_sh/getting_started/create.rst:121 #: ../../content/administration/supported_versions.rst:29 #: ../../content/administration/upgrade.rst:14 #: ../../content/administration/upgrade.rst:109 @@ -578,7 +579,7 @@ msgid ":ref:`odoo_online/web-services`" msgstr "" #: ../../content/administration/odoo_online.rst:44 -#: ../../content/administration/odoo_sh/getting_started/branches.rst:293 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:521 #: ../../content/administration/odoo_sh/getting_started/settings.rst:123 #: ../../content/administration/odoo_sh/getting_started/settings.rst:168 #: ../../content/administration/upgrade.rst:3 @@ -658,7 +659,7 @@ msgid "You can search for tags in the search bar." msgstr "" #: ../../content/administration/odoo_online.rst:109 -#: ../../content/administration/odoo_sh/getting_started/branches.rst:550 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:803 msgid "Delete" msgstr "" @@ -738,7 +739,7 @@ msgstr "" msgid "And here is the equivalent example with JSON-RPC::" msgstr "" -#: ../../content/administration/odoo_sh.rst:5 +#: ../../content/administration/odoo_sh.rst:6 #: ../../content/administration/supported_versions.rst:30 #: ../../content/administration/upgrade.rst:22 #: ../../content/administration/upgrade.rst:139 @@ -746,6 +747,10 @@ msgstr "" msgid "Odoo.sh" msgstr "" +#: ../../content/administration/odoo_sh.rst:8 +msgid "Odoo.sh is the official cloud platform for hosting and managing Odoo applications. It offers a range of features such as web shell, module dependencies, continuous integration, and SSH access." +msgstr "" + #: ../../content/administration/odoo_sh/advanced.rst:5 msgid "Advanced" msgstr "" @@ -756,13 +761,11 @@ 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:6 +#: ../../content/administration/odoo_sh/first_module.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:6 #: ../../content/administration/odoo_sh/getting_started/status.rst:6 -#: ../../content/administration/odoo_sh/overview.rst:5 msgid "Overview" msgstr "" @@ -1089,8 +1092,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:360 -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:498 +#: ../../content/administration/odoo_sh/first_module.rst:362 +#: ../../content/administration/odoo_sh/first_module.rst:500 msgid "Replace" msgstr "" @@ -1130,1508 +1133,2032 @@ msgstr "" msgid "If you're adding a repository that contains a lot of modules, you may want to ignore some of them in case there are any that are installed automatically. To do so, you can prefix your submodule folder with a :code:`.`. The platform will ignore this folder and you can hand pick your modules by creating symlinks to them from another folder." msgstr "" -#: ../../content/administration/odoo_sh/getting_started.rst:5 -msgid "Get started" +#: ../../content/administration/odoo_sh/first_module.rst:3 +msgid "Your first module" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:3 -msgid "Branches" +#: ../../content/administration/odoo_sh/first_module.rst:8 +msgid "This chapter helps you to create your first Odoo module and deploy it in your Odoo.sh project." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:8 -msgid "The branches view gives you an overview of the different branches your repository has." +#: ../../content/administration/odoo_sh/first_module.rst:10 +msgid "This tutorial requires you created a project on Odoo.sh, and you know your Github repository's URL." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:16 -#: ../../content/administration/odoo_sh/getting_started/builds.rst:41 -msgid "Stages" +#: ../../content/administration/odoo_sh/first_module.rst:13 +msgid "Basic use of Git and Github is explained." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:18 -msgid "Odoo.sh offers three different stages for your branches: production, staging and development." +#: ../../content/administration/odoo_sh/first_module.rst:15 +msgid "The below assumptions are made:" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/first_module.rst:17 +msgid "*~/src* is the directory where are located the Git repositories related to your Odoo projects," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:28 -#: ../../content/administration/odoo_sh/getting_started/builds.rst:44 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:132 -msgid "Production" +#: ../../content/administration/odoo_sh/first_module.rst:18 +msgid "*odoo* is the Github user," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:30 -msgid "This is the branch holding the code on which your production database runs. There can be only one production branch." +#: ../../content/administration/odoo_sh/first_module.rst:19 +msgid "*odoo-addons* is the Github repository," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:33 -msgid "When you push a new commit in this branch, your production server is updated with the code of the new revision and is then restarted." +#: ../../content/administration/odoo_sh/first_module.rst:20 +msgid "*feature-1* is the name of a development branch," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:36 -msgid "If your changes require the update of a module, such as a change in a form view, and you want it to be performed automatically, increase the version number of the module in its manifest (*__manifest__.py*). The platform will then take care to perform the update during which the instance will be held temporarily unavailable for maintenance reason." +#: ../../content/administration/odoo_sh/first_module.rst:21 +msgid "*master* is the name of the production branch," 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 `." +#: ../../content/administration/odoo_sh/first_module.rst:22 +msgid "*my_module* is the name of the module." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:47 -msgid "In the case the changes in the commit prevent the server to restart, or if the modules update fails, the server is automatically reverted to the previous successful code revision and the database is roll-backed as it was before the update. You still have access to the log of the failed update, so you can troubleshoot it." +#: ../../content/administration/odoo_sh/first_module.rst:24 +msgid "Replace these by the values of your choice." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:53 -msgid "The demo data is not loaded, as it is not meant to be used in a production database. The unit tests are not performed, as it would increase the unavailability time of the production database during the updates." +#: ../../content/administration/odoo_sh/first_module.rst:27 +msgid "Create the development branch" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:57 -msgid "Partners using trial projects should be aware their production branch, along with all the staging branches, will automatically be set back to the development stage after 30 days." +#: ../../content/administration/odoo_sh/first_module.rst:30 +msgid "From Odoo.sh" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:61 -#: ../../content/administration/odoo_sh/getting_started/builds.rst:63 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:87 -msgid "Staging" +#: ../../content/administration/odoo_sh/first_module.rst:32 +msgid "In the branches view:" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/first_module.rst:34 +msgid "hit the :code:`+` button next to the development stage," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:67 -msgid "The neutralization includes:" +#: ../../content/administration/odoo_sh/first_module.rst:35 +msgid "choose the branch *master* in the *Fork* selection," msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/first_module.rst:36 +msgid "type *feature-1* in the *To* input." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/first_module.rst:38 +msgid "|pic1| |pic2|" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:75 -msgid "Setting payment providers and shipping providers in test mode." +#: ../../content/administration/odoo_sh/first_module.rst:40 +#: ../../content/administration/odoo_sh/first_module.rst:40 +msgid "pic1" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:76 -msgid "Disabling IAP services" +#: ../../content/administration/odoo_sh/first_module.rst:43 +#: ../../content/administration/odoo_sh/first_module.rst:43 +msgid "pic2" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/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/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." +#: ../../content/administration/odoo_sh/first_module.rst:56 +msgid "From your computer" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:88 -#: ../../content/administration/odoo_sh/getting_started/builds.rst:81 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:57 -msgid "Development" +#: ../../content/administration/odoo_sh/first_module.rst:58 +msgid "Clone your Github repository on your computer:" msgstr "" -#: ../../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 `." +#: ../../content/administration/odoo_sh/first_module.rst:67 +msgid "Create a new branch:" msgstr "" -#: ../../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 `." +#: ../../content/administration/odoo_sh/first_module.rst:74 +msgid "Create the module structure" msgstr "" -#: ../../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 long as the database is not in use." +#: ../../content/administration/odoo_sh/first_module.rst:77 +msgid "Scaffolding the module" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/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/branches.rst:110 -msgid "Merging your branches" +#: ../../content/administration/odoo_sh/first_module.rst:82 +msgid "From the Odoo.sh editor, in a terminal:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:112 -msgid "You can merge your branches easily by drag and dropping them into each other." +#: ../../content/administration/odoo_sh/first_module.rst:88 +msgid "Or, from your computer, if you have an installation of Odoo:" msgstr "" -#: ../../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:" +#: ../../content/administration/odoo_sh/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/branches.rst:120 -msgid "merge the development branch into your staging branch, by drag and dropping it onto the desired staging branch," +#: ../../content/administration/odoo_sh/first_module.rst:98 +msgid "The below structure will be generated:" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/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/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." +#: ../../content/administration/odoo_sh/first_module.rst:125 +msgid "Uncomment the content of the files:" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/first_module.rst:127 +msgid "*models/models.py*, an example of model with its fields," msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/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/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." +#: ../../content/administration/odoo_sh/first_module.rst:131 +msgid "*demo/demo.xml*, demo records for the above example model," msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/first_module.rst:133 +msgid "*controllers/controllers.py*, an example of controller implementing some routes," msgstr "" -#: ../../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:" +#: ../../content/administration/odoo_sh/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/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." +#: ../../content/administration/odoo_sh/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/branches.rst:147 -msgid "pass them manually from your staging to your production database, by copy/pasting them." +#: ../../content/administration/odoo_sh/first_module.rst:146 +msgid "Manually" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:152 -msgid "Tabs" +#: ../../content/administration/odoo_sh/first_module.rst:148 +msgid "If you want to create your module structure manually, you can follow the :doc:`/developer/tutorials/server_framework_101` tutorial to understand the structure of a module and the content of each file." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:155 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:58 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:88 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:133 -msgid "History" +#: ../../content/administration/odoo_sh/first_module.rst:153 +msgid "Push the development branch" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:157 -msgid "An overview of your branch history:" +#: ../../content/administration/odoo_sh/first_module.rst:155 +msgid "Stage the changes to be committed" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:159 -msgid "The messages of the commits and their authors," +#: ../../content/administration/odoo_sh/first_module.rst:161 +#: ../../content/administration/odoo_sh/first_module.rst:397 +msgid "Commit your changes" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/first_module.rst:167 +msgid "Push your changes to your remote repository" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/first_module.rst:169 +msgid "From an Odoo.sh editor terminal:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:173 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:78 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:108 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:153 -msgid "Mails" +#: ../../content/administration/odoo_sh/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/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." +#: ../../content/administration/odoo_sh/first_module.rst:183 +#: ../../content/administration/odoo_sh/first_module.rst:385 +#: ../../content/administration/odoo_sh/first_module.rst:411 +msgid "Or, from your computer terminal:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:184 -msgid "Shell" +#: ../../content/administration/odoo_sh/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/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`." +#: ../../content/administration/odoo_sh/first_module.rst:197 +msgid "Test your module" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/first_module.rst:199 +msgid "Your branch should appear in your development branches in your project." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/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/branches.rst:200 -msgid "Editor" +#: ../../content/administration/odoo_sh/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/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." +#: ../../content/administration/odoo_sh/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/branches.rst:212 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:113 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:158 -msgid "Monitoring" +#: ../../content/administration/odoo_sh/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/branches.rst:214 -msgid "This link contains various monitoring metrics of the current build." +#: ../../content/administration/odoo_sh/first_module.rst:223 +msgid "Test with the production data" msgstr "" -#: ../../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...)." +#: ../../content/administration/odoo_sh/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/branches.rst:225 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:68 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:98 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:143 -msgid "Logs" +#: ../../content/administration/odoo_sh/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/branches.rst:227 -msgid "A viewer to have a look to your server logs." +#: ../../content/administration/odoo_sh/first_module.rst:230 +msgid "You can either:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:232 -msgid "Different logs are available:" +#: ../../content/administration/odoo_sh/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/branches.rst:234 -msgid "install.log: The logs of the database installation. In a development branch, the logs of the tests are included." +#: ../../content/administration/odoo_sh/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/branches.rst:235 -msgid "pip.log: The logs of the Python dependencies installation." +#: ../../content/administration/odoo_sh/first_module.rst:243 +#: ../../content/administration/odoo_sh/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/branches.rst:236 -msgid "odoo.log: The logs of the running server." +#: ../../content/administration/odoo_sh/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/branches.rst:237 -msgid "update.log: The logs of the database updates." +#: ../../content/administration/odoo_sh/first_module.rst:251 +#: ../../content/administration/odoo_sh/first_module.rst:297 +msgid "Once the database ready, you can access it using the *Connect* button." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/first_module.rst:256 +#: ../../content/administration/odoo_sh/first_module.rst:300 +msgid "Install your module" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/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/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." +#: ../../content/administration/odoo_sh/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/branches.rst:249 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:118 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:163 -msgid "Backups" +#: ../../content/administration/odoo_sh/first_module.rst:266 +msgid "Activate the :ref:`developer mode `" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/first_module.rst:267 +msgid "in the apps menu, click the *Update Apps List* button," msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/first_module.rst:268 +msgid "in the dialog that appears, click the *Update* button." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/first_module.rst:273 +msgid "Your module will then appear in the list of available apps." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/first_module.rst:279 +msgid "Deploy in production" msgstr "" -#: ../../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 `_." +#: ../../content/administration/odoo_sh/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/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." +#: ../../content/administration/odoo_sh/first_module.rst:284 +msgid "Drag and drop your staging branch on the production branch." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/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/branches.rst:282 -msgid "The *import database* feature accepts database archives in the format provided by:" +#: ../../content/administration/odoo_sh/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/branches.rst:284 -msgid "the standard Odoo databases manager, (available for on-premise Odoo servers under :code:`/web/database/manager`)" +#: ../../content/administration/odoo_sh/first_module.rst:310 +msgid "Add a change" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:286 -msgid "the Odoo online databases manager," +#: ../../content/administration/odoo_sh/first_module.rst:312 +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/branches.rst:287 -msgid "the Odoo.sh backup download button of this *Backups* tab," +#: ../../content/administration/odoo_sh/first_module.rst:317 +msgid "From the Odoo.sh editor," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:288 -msgid "the Odoo.sh dump download button in the :ref:`Builds view `." +#: ../../content/administration/odoo_sh/first_module.rst:316 +msgid "browse to your module folder *~/src/user/my_module*," msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:295 -msgid "Available for production and staging branches for valid projects." +#: ../../content/administration/odoo_sh/first_module.rst:317 +msgid "then, open the file *models/models.py*." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:298 -msgid ":doc:`Upgrade documentation <../../upgrade>`" +#: ../../content/administration/odoo_sh/first_module.rst:323 +msgid "Or, from your computer," msgstr "" -#: ../../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:83 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:128 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:173 -#: ../../content/administration/odoo_sh/getting_started/settings.rst:182 -msgid "Settings" +#: ../../content/administration/odoo_sh/first_module.rst:320 +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/branches.rst:305 -msgid "Here you can find a couple of settings that only apply to the currently selected branch." +#: ../../content/administration/odoo_sh/first_module.rst:322 +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/branches.rst:310 -msgid "**Behaviour upon new commit**" +#: ../../content/administration/odoo_sh/first_module.rst:325 +msgid "Then, after the description field" msgstr "" -#: ../../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'." +#: ../../content/administration/odoo_sh/first_module.rst:331 +msgid "Add a datetime field" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:320 -msgid "**Modules installation**" +#: ../../content/administration/odoo_sh/first_module.rst:337 +msgid "Then, open the file *views/views.xml*." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:322 -msgid "Choose the modules to install automatically for your development builds." +#: ../../content/administration/odoo_sh/first_module.rst:339 +#: ../../content/administration/odoo_sh/first_module.rst:475 +msgid "After" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/first_module.rst:345 +#: ../../content/administration/odoo_sh/first_module.rst:452 +#: ../../content/administration/odoo_sh/first_module.rst:469 +#: ../../content/administration/odoo_sh/first_module.rst:481 +msgid "Add" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/first_module.rst:351 +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/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." +#: ../../content/administration/odoo_sh/first_module.rst:354 +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/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." +#: ../../content/administration/odoo_sh/first_module.rst:357 +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/branches.rst:339 -msgid "**Test suite**" +#: ../../content/administration/odoo_sh/first_module.rst:360 +msgid "Open the module manifest *__manifest__.py*." msgstr "" -#: ../../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 `." +#: ../../content/administration/odoo_sh/first_module.rst:368 +#: ../../content/administration/odoo_sh/first_module.rst:506 +msgid "with" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:345 -msgid "**Odoo Version**" +#: ../../content/administration/odoo_sh/first_module.rst:374 +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/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." +#: ../../content/administration/odoo_sh/first_module.rst:377 +msgid "Browse to your Git folder." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:350 -msgid "In addition, for each version you have two options regarding the code update." +#: ../../content/administration/odoo_sh/first_module.rst:379 +msgid "Then, from an Odoo.sh terminal:" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/first_module.rst:391 +msgid "Then, stage your changes to be committed" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/first_module.rst:403 +msgid "Push your changes:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:359 -msgid "**Custom domains**" +#: ../../content/administration/odoo_sh/first_module.rst:405 +msgid "From an Odoo.sh terminal:" msgstr "" -#: ../../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:" +#: ../../content/administration/odoo_sh/first_module.rst:417 +msgid "The platform will then create a new build for the branch *feature-1*." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:364 -msgid "own or purchase the domain name," +#: ../../content/administration/odoo_sh/first_module.rst:422 +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/branches.rst:365 -msgid "add the domain name in this list," +#: ../../content/administration/odoo_sh/first_module.rst:428 +msgid "Use an external Python library" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/first_module.rst:430 +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/branches.rst:369 -msgid "For instance, to associate *www.mycompany.com* to your database *mycompany.odoo.com*:" +#: ../../content/administration/odoo_sh/first_module.rst:434 +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/branches.rst:371 -msgid "in Odoo.sh, add *www.mycompany.com* in the custom domains of your project settings," +#: ../../content/administration/odoo_sh/first_module.rst:438 +msgid "**PostgreSQL extensions** are not supported on Odoo.sh." msgstr "" -#: ../../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*." +#: ../../content/administration/odoo_sh/first_module.rst:439 +msgid "For more information, consult our `FAQ `_." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:375 -msgid "Bare domains (e.g. *mycompany.com*) are not accepted:" +#: ../../content/administration/odoo_sh/first_module.rst:441 +msgid "The platform will use this file to automatically install the Python libraries your project needs." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:377 -msgid "they can only be configured using ``A`` records," +#: ../../content/administration/odoo_sh/first_module.rst:443 +msgid "The feature is explained in this section by using the `Unidecode library `_ in your module." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:378 -msgid "``A`` records only accept IP addresses as value," +#: ../../content/administration/odoo_sh/first_module.rst:446 +msgid "Create a file *requirements.txt* in the root folder of your repository" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/first_module.rst:448 +msgid "From the Odoo.sh editor, create and open the file ~/src/user/requirements.txt." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/first_module.rst:450 +msgid "Or, from your computer, create and open the file ~/src/odoo-addons/requirements.txt." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/first_module.rst:458 +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/branches.rst:391 -msgid "**HTTPS/SSL**" +#: ../../content/administration/odoo_sh/first_module.rst:461 +msgid "Open the file *models/models.py*." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/first_module.rst:463 +msgid "Before" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/first_module.rst:496 +msgid "Adding a Python dependency requires a module version increase for the platform to install it." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:401 -msgid "**SPF and DKIM compliance**" +#: ../../content/administration/odoo_sh/first_module.rst:498 +msgid "Edit the module manifest *__manifest__.py*" msgstr "" -#: ../../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 `." +#: ../../content/administration/odoo_sh/first_module.rst:512 +msgid "Stage and commit your changes:" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/first_module.rst:520 +msgid "Then, push your changes:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:414 -msgid "Shell commands" +#: ../../content/administration/odoo_sh/first_module.rst:522 +msgid "In an Odoo.sh terminal:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:416 -msgid "In the top right-hand corner of the view, different shell commands are available." +#: ../../content/administration/odoo_sh/first_module.rst:528 +msgid "In your computer terminal:" msgstr "" -#: ../../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 ````, ````, ..." +#: ../../content/administration/odoo_sh/getting_started.rst:5 +msgid "Getting started" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:427 -msgid "Clone" +#: ../../content/administration/odoo_sh/getting_started.rst:8 +msgid "Main components" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:429 -msgid "Download the Git repository." +#: ../../content/administration/odoo_sh/getting_started.rst:10 +msgid "When working with Odoo.sh, it is important to understand the main components involved. While they are all interconnected, each one plays a distinct role in the development and deployment of Odoo applications:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:435 -msgid "Clones the repository *odoo/odoo*." +#: ../../content/administration/odoo_sh/getting_started.rst:14 +msgid "**GitHub repository**: a version-controlled space where the Odoo applications' source code is stored. It tracks every change, supports collaboration, and can be either public or private." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started.rst:0 +msgid "Example of a GitHub repository" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:438 -msgid ":code:`--branch`: checks out a specific branch of the repository, in this case *master*." +#: ../../content/administration/odoo_sh/getting_started.rst:20 +msgid "**Odoo.sh project**: a Platform as a Service (PaaS) that integrates with GitHub and enables streamlined development, testing, and deployment of Odoo applications. It includes tools such as automated backups, staging environments, and continuous integration pipelines." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started.rst:0 +msgid "Example of an Odoo.sh project" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:443 -msgid "Fork" +#: ../../content/administration/odoo_sh/getting_started.rst:27 +msgid "**Odoo database**: a database stores all the operational data used and generated by Odoo applications, such as business records, configurations, and user data." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:445 -msgid "Create a new branch based on the current branch." +#: ../../content/administration/odoo_sh/getting_started.rst:0 +msgid "Example of an Odoo database" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started.rst:33 +msgid "Together, they form a cohesive pipeline from code development to a live business use." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:457 -msgid "Uploads the new branch *feature-1* on your remote repository." +#: ../../content/administration/odoo_sh/getting_started.rst:36 +msgid "User types" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:460 -msgid "Merge" +#: ../../content/administration/odoo_sh/getting_started.rst:38 +msgid "Odoo.sh involves different types of users, each with a specific role in the project lifecycle:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:462 -msgid "Merge the current branch in another branch." +#: ../../content/administration/odoo_sh/getting_started.rst:40 +msgid "GitHub users: developers with access to the GitHub repository linked to the Odoo.sh project. Access to the repository does not automatically make someone a collaborator on the Odoo.sh project." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:468 -msgid "Merges the branch *staging-1* in the current branch." +#: ../../content/administration/odoo_sh/getting_started.rst:44 +msgid "Odoo.sh collaborators: individuals managing the Odoo.sh project. Each collaborator must be linked to a GitHub user. However, collaborators are not the same as database users." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started.rst:47 +msgid "Database users: end-users of the deployed Odoo database. They interact with the live system but are not involved in development or project management." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:477 -msgid "SSH" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:3 +msgid "Branches" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:480 -msgid "Setup" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:5 +msgid "The branches view provides an overview of the different branches in your repository." msgstr "" -#: ../../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:" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:10 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:41 +msgid "Stages" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:485 -msgid "`Generate a new SSH key `_" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:12 +msgid "Odoo.sh offers three different branch stages:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:487 -msgid "`Copy the SSH key to your clipboard `_ (only apply the step 1)" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:14 +msgid ":ref:`Production `" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:490 -msgid "Paste the copied content to your profile SSH keys and press \"Add\"" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:15 +msgid ":ref:`Staging `" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:495 -msgid "The key should appear below" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:16 +msgid ":ref:`Development `" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:501 -msgid "Connection" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:18 +msgid "You can change the stage of a branch by dragging and dropping it under the desired stage." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:503 -msgid "To connect to your builds using ssh use the following command in a terminal:" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:-1 +msgid "Changing the stage of a branch" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:24 +msgid "Development branches can be moved under :guilabel:`Staging`. If you try to move a development branch under :guilabel:`Production`, a warning message will be displayed explaining that you can only have one production branch per project." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:27 +msgid "Staging branches can be moved under :guilabel:`Development`, but it is not possible to move them under :guilabel:`Production`." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:29 +msgid "The production branch can only be moved under :guilabel:`Development`. If you try to move it under :guilabel:`Staging`, you can only perform a merge. Refer to the :ref:`merging ` section for a detailed explanation of this process." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:522 -msgid "Submodule" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:37 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:499 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:44 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:132 +msgid "Production" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:524 -msgid "Add a branch from another repository in your current branch as a *submodule*." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:39 +msgid "The production branch contains the code used to run the production database. There can be only one production branch." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:526 -msgid "*Submodules* allows you to use modules from other repositories in your project." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:42 +msgid "When you push a new commit to this branch, the production server is updated with the revised code and restarted." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:528 -msgid "The submodules feature is detailed in the chapter :ref:`Submodules ` of this documentation." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:45 +msgid "If the changes require a module update, such as changing a form view, and you want the update to be performed automatically, you can increase the module's version number in its manifest file (:file:`__manifest__.py`). The platform then performs the update, during which the instance will be held temporarily unavailable for maintenance reasons." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:50 +msgid "This method is equivalent to upgrading the module using the :guilabel:`Apps` menu or the `-u` switch on :doc:`the command line <../../../developer/reference/cli>`." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:541 -msgid "Commits all your current changes." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:54 +msgid "If the changes prevent the server from restarting or if the module update fails, the server is automatically reverted to the previous successful code revision, and the database is rolled back to its previous state. Access to the failed update's log to troubleshoot it." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:552 -msgid "Delete a branch from your repository." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:57 +msgid "The demo data is not loaded, as it is not intended for use on a production database. The `unit tests `_ are not performed, as it would increase the unavailability time of the production database during the update." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:558 -msgid "Deletes the branch in your remote repository." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:61 +msgid "Odoo.sh automatically backs up the production database. It keeps seven daily, four weekly, and three monthly backups. Each backup includes the database dump, the filestore (attachments and binary fields), logs, and sessions." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/branches.rst:564 -msgid "Deletes the branch in your local copy of the repository." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:66 +msgid "When using **trial projects**, the production branch and all staging branches are automatically set back to the development stage after **30 days**." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/builds.rst:6 -msgid "Builds" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:72 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:502 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:63 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:87 +msgid "Staging" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/builds.rst:11 -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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:74 +msgid "Staging branches are meant to test new features using production data without compromising the actual production database with test records. They create neutralized duplicates of the production database." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:78 +msgid "The neutralization disables:" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:80 +msgid "Scheduled actions" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:83 +msgid "To test them, trigger them 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 resources." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:86 +msgid "Outgoing emails" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:89 +msgid "They are instead intercepted using a mail catcher. An :ref:`interface to view the emails ` sent by the database is provided in your Odoo.sh project. That way, no emails are sent to your contacts." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:93 +msgid "IAP services" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:95 +msgid "Payment providers and shipping connectors" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:98 +msgid "They are put into test mode." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:100 +msgid "If you configure or view changes in a staging database, make sure to record them (noting them step by step, reproducing in production, etc.) or write them directly in the branch's modules, using XML data files to override the default configuration or views. Check the :ref:`first module documentation ` to view examples." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:106 +msgid "Unit tests are not performed. They rely on demo data, which is not loaded into the production and staging databases. If Odoo starts supporting running the units without demo data, Odoo.sh will then consider running the tests on staging databases." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:110 +msgid "Staging databases are not automatically backed up. Nevertheless, you can restore a backup of the production database in a staging branch for testing purposes or to manually recover data that has been accidently deleted from the production database. It is possible to create manual backups of staging databases." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:118 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:505 +#: ../../content/administration/odoo_sh/getting_started/builds.rst:81 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:57 +msgid "Development" msgstr "" -#: ../../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:" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:120 +msgid "Development branches create new databases using demo data to run the unit tests. The installed modules are those included in the branch. You can change this list of modules to install in the :doc:`project settings `." msgstr "" -#: ../../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," +#: ../../content/administration/odoo_sh/getting_started/branches.rst:124 +msgid "When pushing a commit to a development branch, a new server is started, with a database created from scratch, and the branch is updated. The demo data is loaded, and the unit tests are performed by default to verify that the changes do not break any of the features being tested. You can disable the tests or allow specific tests to be run with custom tags by going to the :ref:`branch's settings `." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:130 +msgid "Similarly to staging branches, emails are not sent but are intercepted by a mail catcher, and scheduled actions are not triggered as long as the database is not in use." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:133 +msgid "Development databases are not automatically backed up, and manual backups are not possible." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/builds.rst:83 -msgid "Development builds create new databases, load the demo data and run the unit tests." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:136 +msgid "Databases created for development branches are intended to last approximately 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/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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:143 +msgid "Merging branches" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:145 +msgid "You can merge your branches by dragging and dropping them into each other." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:-1 +msgid "Merging branches into each other" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/builds.rst:94 -msgid "Features" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:150 +msgid "To test the changes of development branches with the production data, you can either:" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:152 +msgid "Merge the development branch into a staging branch by dragging and dropping it onto the desired branch; or" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:0 +msgid "Merging a development branch into a staging branch" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:158 +msgid "Drag and drop the development branch under the :guilabel:`Staging` section to make it a staging branch." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:0 +msgid "Moving a development branch under staging" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:6 -msgid "Create your project" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:164 +msgid "When the changes are ready for production, drag and drop the staging branch into the production branch to merge and deploy them." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:168 +msgid "You can merge development branches into the production branch directly. However, changes will not be validated against the production data through a staging branch, so there is a higher risk of encountering issues in the production database." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:171 +msgid "You can merge development branches into each other, and staging branches into each other." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:172 +msgid "You can also use `git merge` directly on your workstation to merge your branches. Odoo.sh is notified when new revisions are pushed to your branches." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:175 +msgid "Merging a staging branch into the production branch only merges the source code. Any changes made to the staging database are not passed to the production database. However, if you modify the code in the repository, it will be passed to the production branch when merging." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:179 +msgid "If you test configuration changes in staging branches, and want them to be applied to the production branch, you have to, either:" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:182 +msgid "Write the configuration changes in XML data files to overide the default configuration or views in the branch, and then increase the version of the module in its manifest (:file:`__manifest__.py`) to trigger the module update when merging the staging branch in the production branch." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:187 +msgid "This method is recommended for better scalability of your developments, as you will use the Git versioning features for all configuration changes, thereby ensuring traceability of your changes." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:191 +msgid "Pass them manually from the staging database to the production one by copying and pasting them." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:196 +msgid "Tabs" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:201 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:58 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:88 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:133 +msgid "History" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:203 +msgid "The :guilabel:`History` tab gives an overview of the branch history:" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:205 +msgid "The commit messages and their authors" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:206 +msgid "The various events linked to the platform, such as stage changes, database imports, and backup restores" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:-1 +msgid "The branches' history tab" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:212 +msgid "A status in the top right corner of each event indicates the current operation on the database (e.g., installation, update, backup import) or its outcome (e.g., test feedback, successful backup import). If an operation is successful, a :guilabel:`Connect` button appears, allowing you to access the database." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:220 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:396 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:78 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:108 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:153 +msgid "Mails" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:222 +msgid "The :guilabel:`Mails` tab contains the mail catcher, which provides an overview of emails sent by the database." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:226 +msgid "The mail catcher is available for development and staging branches. Emails from the production database are actually sent and are not intercepted by the mail catcher." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:-1 +msgid "The branches' mails tab" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:235 +msgid "Shell" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:237 +msgid "The :guilabel:`Shell` tab provides shell access to the container." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:239 +msgid "Clicking :guilabel:`Shell` opens a new browser tab where you can run basic Linux commands (`ls`, `top`). You can open a shell on the database by running `psql`." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:-1 +msgid "The branches' shell tab" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:246 +msgid "You can open multiple shell tabs at once and arrange their layout by dragging and dropping them." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:249 +msgid "Production instance shells are highlighted in red to emphasize the danger of manipulating production instances directly, while staging/development instance shells are highlighted in yellow." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:252 +msgid "Long-running shell instances/idle shell sessions can be terminated at any time to free up resources." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:258 +msgid "Commands" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:260 +msgid "Here is an overview of useful commands that you can run an Odoo.sh database terminal:" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:262 +msgid "`odoo-bin shell`: to open an Odoo shell" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:263 +msgid "`odoo-update`: to update modules in the database" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:264 +msgid "`odoosh-restart`: to restart Odoo.sh services (http or cron)" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:265 +msgid "`odoosh-storage`: to check the storage usage of your instance's container filesystem" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:266 +msgid "`psql`: to open a database shell" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:267 +msgid "`mutt`: to check how emails appear on text clients (staging and development instances)" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:268 +msgid "`lnav ~/logs/odoo.log`: to navigate in your instance's :file:`odoo.log` file" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:269 +msgid "`ncdu`: to launch the disk usage analyzer with an interactive interface" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:270 +msgid "`grep`: to filter and find information in log or configuration files" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:275 +msgid "Editor" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:277 +msgid "Clicking :guilabel:`Editor` opens a new browser tab to access an online integrated development environment (IDE) to edit the source code. You can also open terminals, Python consoles, and Odoo shell consoles." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:-1 +msgid "The branches' editor tab" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:284 +msgid "You can open multiple tabs and drag and drop them to arrange the layout as you wish." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:287 +msgid ":doc:`Online editor documentation `." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:292 +msgid "Monitor" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:294 +msgid "The :guilabel:`Monitor` tab displays various performance monitoring metrics of the current build." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:296 +msgid "Zoom in with your cursor to adjust the time range or select it manually from the time range selector. It is also possible to change the time zone." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:-1 +msgid "The time range selector in the branches monitor tab" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:303 +msgid "Technical logs always use the :abbr:`UTC (Coordinated Universal Time)`. To analyze these logs together with your monitoring metrics, ensure :abbr:`UTC (Coordinated Universal Time)` is selected in the monitoring tool." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:306 +msgid "Similarly, when sending a support ticket, ensure the information you share is based on :abbr:`UTC (Coordinated Universal Time)`, as Odoo uses this time zone to investigate performance issues." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:310 +msgid "The information is aggregated periodically. When this is the case, a blue dotted line is displayed, along with the tag :guilabel:`Aggregate Date`. This means that the data before this date will appear flattened when compared to the data after this date. Therefore, when using the monitoring tool, it is recommended to focus on recent events to get the most detailed information possible." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:316 +msgid "Dotted Lines of other colors help you relate to other changes on the build (database import, git push, etc.)." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:-1 +msgid "CPU monitoring aggregated data" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:323 +msgid "On each graph, an 𝕚 (:guilabel:`information`) icon is displayed in the top-left corner. Hover your mouse over it to get more details about what the graph represents." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:329 +msgid "Metrics" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:334 +msgid "System" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:9 -msgid "Deploy your platform" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:336 +msgid "The :guilabel:`Memory` graph displays information about memory consumption:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:11 -msgid "Go to `Odoo.sh `_ and hit the *Deploy your platform* button." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:338 +msgid ":guilabel:`Memory container` represents Odoo workers and container processes." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:17 -msgid "Sign in with Github" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:339 +msgid ":guilabel:`Memory postgresql` represents the database." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:-1 +msgid "The memory graph in the monitor tab" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:344 +msgid "The :guilabel:`CPU` graph displays information about CPU consumption:" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:346 +msgid ":guilabel:`CPU http` represents Odoo workers." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:347 +msgid ":guilabel:`CPU cron/mail` represents scheduled actions and incoming emails." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:348 +msgid ":guilabel:`CPU postgresql` (database processes)" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:349 +msgid ":guilabel:`CPU other` represents webshells, the editor, etc." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:-1 +msgid "The cpu graph in the monitor tab" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:354 +msgid "The :guilabel:`Storage` graph displays information about the storage used:" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:356 +msgid ":guilabel:`Container` represents the filestore, log files, and user files." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:357 +msgid ":guilabel:`Postgresql` represents the database and indexes." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:-1 +msgid "The storage graph in the monitor tab" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:365 +msgid "HTTP" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:367 +msgid "The :guilabel:`Requests` graph displays information about the number of HTTP requests per second:" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:369 +msgid ":guilabel:`HTTP successes` represents successful requests." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:370 +msgid ":guilabel:`HTTP errors` represents failed requests (check :file:`odoo.log`)." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:371 +msgid ":guilabel:`HTTP rate limited` represents declined requests, possibly due to lack of workers." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:-1 +msgid "The requests graph in the monitor tab" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:376 +msgid "The :guilabel:`Concurrent requests (max)` graph displays the maximum number of concurrent HTTP requests per second." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:-1 +msgid "The concurrent rquests graph in the monitor tab" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:383 +msgid "Database workers determine the number of concurrent requests that can be managed simultaneously. It is essential to have enough workers to handle all incoming requests as they arrive. However, having additional workers beyond this does not improve the speed at which requests are processed." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:387 +msgid "The :guilabel:`Average Response time` displays the average response time to HTTP requests (in milliseconds)." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:-1 +msgid "The average response time graph in the monitor tab" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:398 +msgid "The :guilabel:`Incoming` graph displays data about the daily number of incoming emails:" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:400 +msgid ":guilabel:`Received Emails` represents emails successfuly received." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:401 +msgid ":guilabel:`Received Emails bounced` represents emails unsuccessfully received." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:-1 +msgid "The incoming graph in the monitor tab" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:406 +msgid "The :guilabel:`Outgoing` graph displays data about the daily number of outgoing emails:" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:408 +msgid ":guilabel:`Sent Emails` represents emails successfully sent." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:409 +msgid ":guilabel:`Sent Emails bounced` represents emails unsuccessfully sent." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:-1 +msgid "The outgoing graph in the monitor tab" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:417 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:68 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:98 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:143 +msgid "Logs" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:419 +msgid "The :guilabel:`Logs` tab offers a real-time view of your server's logs." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:-1 +msgid "The branches log tab" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:424 +msgid "Different logs are available:" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:426 +msgid "`pip.log`: the Python dependencies installation" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:427 +msgid "`install.log`: the database installation (for development branches, tests are included)" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:428 +msgid "`odoosh-import-database.log`: the last imported dump process" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:429 +msgid "`odoo.log`: the running server" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:430 +msgid "`update.log`: the database updates" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:431 +msgid "`pg_slow_queries.log`: psql queries that take an unusual amount of time" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:432 +msgid "`sh_webshell.log`: the actions taken in the webshell" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:433 +msgid "`sh_editor.log`: the actions taken in the editor" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:434 +msgid "`neutralize.log`: the neutralization of the database (only staging)" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:-1 +msgid "Logs scrolling automatically" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:439 +msgid "When new lines are added to the logs, they are displayed automatically. If you scroll to the bottom, the browser scrolls automatically each time a new line is added." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:442 +msgid "You can pause the logs fetching process by clicking the :icon:`fa-pause` (:guilabel:`pause`) button in the upper right corner. Otherwise, the process stops after five minutes. You can restart it by clicking the :icon:`fa-play` (:guilabel:`play`) button." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:449 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:118 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:163 +msgid "Backups" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:451 +msgid "The :guilabel:`Backups` tab lists the available backups to download and restore, lets you perform a manual backup and import a database." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:-1 +msgid "The branches backups tab" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:457 +msgid "The production database is automatically backed up daily. Seven daily, four weekly, and three monthly backups are kept. Each backup includes the database dump, the filestore (attachments and binary fields), logs, and sessions." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:462 +msgid "You can refer to `the estimated scheduling of automatic backups `_ to gain a better understanding of how the system works. This file is updated daily, taking the current day as the departure point." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:466 +msgid "Staging and development databases are not automatically backed up. However, you can restore a backup of the production database in your staging branches, for testing purposes, or manually recover data that has been accidentally deleted from the production database." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:470 +msgid "The list contains the backups kept on the server of your production database. This server only keeps one month of backups: seven daily and four weekly backups." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:473 +msgid "Dedicated backup servers keep the same backups, as well as three additional monthly backups. To restore or download one of these monthly backups, contact `Odoo Support `_." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:477 +msgid "When merging 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 an automatic backup (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, a backup is triggered as it may break something." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:483 +msgid "If the merged commit does not update the version of a module or linked dependencies, then no backup is triggered by Odoo.sh, as neither the container nor the database is modified; therefore, the platform considers this safe enough. As an extra precaution, you can make a manual backup before modifiyng production sources." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:488 +msgid "The purpose of manual backups is to create a specific snapshot of production or staging databases (not available for development). These remain available for seven days. However, there is a limit of five daily manual backups." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:496 +msgid "Stage" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:497 +msgid "Automatic backup" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:498 +msgid "Manual backup" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:500 +msgid "Yes (up to 3 months)" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:501 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:504 +msgid "Yes (3 days)" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:503 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:506 +#: ../../content/administration/odoo_sh/getting_started/branches.rst:507 +msgid "No" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:509 +msgid "The :guilabel:`Import Database` feature accepts database archives from:" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:511 +msgid "the standard Odoo database manager (available for on-premise Odoo servers under `/web/database/manager`)" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:513 +msgid "the Odoo Online databases manager" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:514 +msgid "the Odoo.sh :guilabel:`Backups` tab (using the :icon:`fa-download` (:guilabel:`Download Options`) button)" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:516 +msgid "the Odoo.sh :doc:`Builds ` view (by clicking :guilabel:`Download DB dump`)" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:523 +msgid "The :guilabel:`Upgrade` tab can be used to upgrade production and staging branches of valid projects. For more information about the upgrade process, refer to the :doc:`Upgrade documentation <../../upgrade>`." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:-1 +msgid "The branches upgrade tab" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:533 +msgid "Tools" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:535 +msgid "The :guilabel:`Tools` tab contains the code profiler. It is used to start a profiling session, recording the activities of Odoo workers running in the instance for a maximum of five minutes. You can choose to terminate the session earlier, as running the tool for a shorter duration reduces the amount of noise in the report." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:-1 +msgid "Using the code profiler" +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:543 +msgid "After each session, an interactive flame graph is created to help you visualize how the Odoo workers allocate their time." +msgstr "" + +#: ../../content/administration/odoo_sh/getting_started/branches.rst:547 +msgid "Running the profiler consumes a lot of server resources, so avoid letting it run for too long. The goal is to record a specific action in your database." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:19 -msgid "Sign in with your Github account. If you do not have an account yet, hit the *Create an account* link." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:553 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:3 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:83 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:128 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:173 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:182 +msgid "Settings" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:26 -msgid "Authorize Odoo.sh" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:555 +msgid "The :guilabel:`Settings` tab lists the configuration options available for the currently selected branch. The options vary for each stage." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:28 -msgid "Grant Odoo.sh the required accesses to your account by clicking the *Authorize* button." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:-1 +msgid "The branches settings tab" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:33 -msgid "Odoo.sh basically needs:" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:564 +msgid "Behavior upon new commits" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:35 -msgid "to know your Github login and email," +#: ../../content/administration/odoo_sh/getting_started/branches.rst:566 +msgid "You can change the branch's behavior upon receiving a new commit for **development** and **staging** branches." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:36 -msgid "to create a new repository in case you decide to start from scratch," +#: ../../content/administration/odoo_sh/getting_started/branches.rst:569 +msgid "By default, a **development** branch creates a new build and a staging branch updates the previous build. This is useful if the feature you are working on requires a specific configuration, as you would not need to manually configure it again after every commit." msgstr "" -#: ../../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," +#: ../../content/administration/odoo_sh/getting_started/branches.rst:573 +msgid "If you select :guilabel:`New build` for a **staging** branch, a fresh copy of the production build is created every time a commit is pushed." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:39 -msgid "to create a webhook to be notified each time you push changes," +#: ../../content/administration/odoo_sh/getting_started/branches.rst:576 +msgid "A branch that is moved from **staging** to **development** is set automatically to :guilabel:`Do nothing`." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:582 +msgid "Module installation" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:44 -msgid "Submit your project" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:584 +msgid "You can choose which modules should be installed automatically for **development** branches." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:-1 +msgid "The settings tab module installation" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:49 -msgid "Then, choose a name or select the repository you want to use." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:589 +msgid "To change the default behavior, untick the :guilabel:`Use Default` option under :guilabel:`Development build behavior` and select one of the following options under :guilabel:`Module Installation`:" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:593 +msgid ":guilabel:`Install only my modules (does not include submodules)`: only installs the branch's modules, excluding :doc:`submodules <../advanced/submodules>`. This is the default option." msgstr "" -#: ../../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*." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:595 +msgid ":guilabel:`Full installation (no test suite)`: installs the branch's modules, submodules, and all standard Odoo modules. When running the full installation, the test suite is disabled." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:58 -msgid "It should be the code of your Enterprise subscription that includes Odoo.sh." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:597 +msgid ":guilabel:`Install a list of modules`: installs the specified modules. To do so, enter their technical name, and separate them using commas (e.g., `sale_management,website,accountant`)." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:601 +msgid "If the test suite is enabled, installing all standard Odoo modules can take up to one hour." msgstr "" -#: ../../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:" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:606 +msgid "Test suite" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:67 -msgid "it is not an existing subscription," +#: ../../content/administration/odoo_sh/getting_started/branches.rst:608 +msgid "By default, the test suite for **development** branches is enabled. You can restrict which tests are run by entering :ref:`test tags ` and separating them using commas (e.g., `custom_tags,at_install,post_install`)." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:68 -msgid "it is not a partnership subscription," +#: ../../content/administration/odoo_sh/getting_started/branches.rst:612 +msgid "To disable the test suite entirely, untick :guilabel:`Validate the test suite on new builds`." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:69 -msgid "it is an enterprise subscription, but which does not include Odoo.sh," +#: ../../content/administration/odoo_sh/getting_started/branches.rst:617 +msgid "Odoo version" msgstr "" -#: ../../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)." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:619 +msgid "You can change the version of Odoo for **development** branches, for example, to test upgraded code or develop features while your production database is in the process of being upgraded to a newer version, by selecting another :guilabel:`Version`." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:73 -msgid "In case of doubt with your subscription, please contact the `Odoo support `_." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:623 +msgid "By default, :guilabel:`Latest` is selected as the :guilabel:`Revision`, and the sources of your Odoo server are updated weekly automatically to benefit from the latest bug, security, and performance fixes." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:80 -msgid "You're done !" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:627 +msgid "To choose a specific revision instead, select it using the :guilabel:`Revision` field." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:630 +msgid "Revisions expire after three months. You will be notified by email when the revision's expiration date approaches. If you have not taken any action when it expires, the :guilabel:`Revision` field is automatically set back to :guilabel:`Latest`." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:91 -msgid "Import your database" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:-1 +msgid "The settings tab revisions" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:640 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:241 +msgid "Custom domains" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:97 -msgid "Push your modules in production" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:642 +msgid "You can configure additional `.odoo.com` domains or your own custom domains for all branch types." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:645 +msgid "To use your own custom domain, it is necessary to:" msgstr "" -#: ../../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, ...)." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:647 +msgid "Own or purchase the domain name." msgstr "" -#: ../../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 `." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:648 +msgid "Enter the domain name under :guilabel:`Custom domains` (e.g., `www.mycompany.com`), then click :guilabel:`Add domain`." msgstr "" -#: ../../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 `." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:650 +msgid "Configure the domain name (e.g., `www.mycompany.com`) using your registrar's domain name manager with a **CNAME** record value set to your production database domain name (e.g., `mycompany.odoo.com`)." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:115 -msgid "Download a backup" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:655 +msgid "Bare domains (e.g., `mycompany.com`) are not accepted. They can only be configured using **A** records, which only accept IP addresses as their value. Therefore, a bare domain could suddenly cease to function, as the IP address of a database can change (e.g., following an upgrade, a hardware failure, a change of database hosting location)." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:118 -msgid "On-premise databases" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:660 +msgid "To have both your bare domain (e.g., `mycompany.com`) and *www* domain (e.g., `www.mycompany.com`) working, it is necessary to redirect the bare domain to the *www* domain. .com. Most domain managers provide a way to configure this redirection, commonly referred to as a web redirection." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:667 +msgid "HTTPS/SSL" msgstr "" -#: ../../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 `." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:669 +msgid "If the redirection is correctly set up, an SSL certificate is automatically generated using `Let's Encrypt `_ within the hour, meaning your domain will be accessible through HTTPS." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:676 +msgid "SPF and DKIM compliance" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:133 -msgid "Choose a zip including the filestore as the backup format." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:678 +msgid "If the domain of your email addresses uses the :abbr:`SPF (Sender Policy Framework)` or :abbr:`DKIM (DomainKeys Identified Mail)` authentication protocol, it is necessary to authorize Odoo as a sending host in the domain name settings to increase the deliverability of outgoing emails. For more information, refer to the :doc:`Configure DNS records to send emails in Odoo documentation <../../../applications/general/email_communication/email_domain>`." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:139 -msgid "Odoo Online databases" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:685 +msgid "If Odoo is not authorized as a sending host, your outgoing emails may be flagged as spam." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:141 -msgid "`Access your databases manager `_ and download a backup of your database." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:690 +msgid "Shell commands" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:149 -msgid "Online versions (e.g. *saas-**) are not supported on Odoo.sh." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:692 +msgid "In the top right corner of the view, several shell commands are displayed. The commands can be copied using the clipboard button and then used in a terminal. In addition, some of them can be used directly from Odoo.sh's interface." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:152 -msgid "Upload the backup" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:-1 +msgid "The branches shell commands shortcuts" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:702 +msgid "Clone" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:704 +msgid "The clone command is used to create a local copy of your Git repository." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:167 -msgid "Check your outgoing email servers" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:707 +msgid ":command:`git clone --recurse-submodules --branch development git@github.com:my-organization/my-repository.git`" msgstr "" -#: ../../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)." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:709 +msgid "`--recurse-submodules` to download the submodules of your repository" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:710 +msgid "`--branch main` to check out to a specific branch of the repository (e.g., `development`)" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:713 +msgid "The run button is not available as the command is used to create a local copy on your machine." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:182 -msgid "Check your scheduled actions" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:718 +msgid "Fork" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:184 -msgid "All scheduled actions are disabled after the import." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:720 +msgid "The fork command is used to create a new branch based on the current one." msgstr "" -#: ../../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, ...)." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:723 +msgid ":command:`git checkout -b main-1 development && git push -u origin development-1`" msgstr "" -#: ../../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`." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:725 +msgid ":command:`git checkout -b main-1 main` a command to create a new branch (e.g., `development-1`) based on the current branch (e.g., `development`)" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:196 -msgid "Register your subscription" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:727 +msgid ":command:`git push -u origin development-1` a command to upload the new branch (e.g., `development-1`) to the remote repository" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/create.rst:198 -msgid "Your subscription is unlinked after the import." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:733 +msgid "Merge" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:735 +msgid "The merge command is used to combine changes on one branch into another branch." msgstr "" -#: ../../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 <../../on_premise>` for instructions." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:738 +msgid ":command:`git merge staging-1 && git push -u origin staging`" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:3 -msgid "Your first module" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:740 +msgid ":command:`git merge staging-1` a command to merge the changes of the current branch into another branch (e.g., `staging-1`)" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:8 -msgid "This chapter helps you to create your first Odoo module and deploy it in your Odoo.sh project." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:742 +msgid ":command:`git push -u origin staging` a command to upload the merged changes to the remote repository branch (e.g., `staging`)" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:10 -msgid "This tutorial requires :ref:`you created a project on Odoo.sh `, and you know your Github repository's URL." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:748 +msgid "SSH" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:13 -msgid "Basic use of Git and Github is explained." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:750 +msgid "The SSH command is used to connect to a build using SSH." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:15 -msgid "The below assumptions are made:" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:752 +msgid "To use the SSH command, it is necessary to set up an SSH key first. To do so:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:17 -msgid "*~/src* is the directory where are located the Git repositories related to your Odoo projects," +#: ../../content/administration/odoo_sh/getting_started/branches.rst:754 +msgid "`Generate a new SSH key `_." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:18 -msgid "*odoo* is the Github user," +#: ../../content/administration/odoo_sh/getting_started/branches.rst:755 +msgid "`Copy the SSH key to your clipboard `_." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:19 -msgid "*odoo-addons* is the Github repository," +#: ../../content/administration/odoo_sh/getting_started/branches.rst:756 +msgid "On Odoo.sh, click your GitHub user in the top-right corner and select :guilabel:`Profile`." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:20 -msgid "*feature-1* is the name of a development branch," +#: ../../content/administration/odoo_sh/getting_started/branches.rst:0 +msgid "Accessing a user's profile" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:21 -msgid "*master* is the name of the production branch," +#: ../../content/administration/odoo_sh/getting_started/branches.rst:761 +msgid "Paste the SSH key under the :guilabel:`Add a key manually` field and click :guilabel:`Add`." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:22 -msgid "*my_module* is the name of the module." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:0 +msgid "Adding an SSH key manually" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:24 -msgid "Replace these by the values of your choice." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:767 +msgid ":command:`ssh 25004381@my-user-my-repository-staging-25004381.dev.odoo.com`" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:27 -msgid "Create the development branch" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:769 +msgid "`25004381` the build ID" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:30 -msgid "From Odoo.sh" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:770 +msgid "`my-user-my-repository-staging-25004381.dev.odoo.com` the domain used to connect to the build" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:32 -msgid "In the branches view:" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:772 +msgid "Provided you have the necessary :ref:`access rights ` on the project, you will be granted SSH access to the build." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:34 -msgid "hit the :code:`+` button next to the development stage," +#: ../../content/administration/odoo_sh/getting_started/branches.rst:776 +msgid "Long-running SSH connections are not guaranteed. Idle connections can be disconnected to free up resources." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:35 -msgid "choose the branch *master* in the *Fork* selection," +#: ../../content/administration/odoo_sh/getting_started/branches.rst:782 +msgid "Submodule" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:36 -msgid "type *feature-1* in the *To* input." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:784 +msgid "The submodule command is used to add a branch from another repository to your current branch as a submodule." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:38 -msgid "|pic1| |pic2|" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:788 +msgid ":doc:`Submodules documentation <../advanced/submodules>`" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:40 -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:40 -msgid "pic1" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:791 +msgid ":command:`git submodule add -b master && git commit -a && git push -u origin staging`" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:43 -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:43 -msgid "pic2" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:793 +msgid ":command:`git submodule add -b master ` a command to add a specific branch (e.g., `master`) of a repository (``) as a submodule under the specified path (``) in your current branch." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:796 +msgid ":command:`git commit -a` a command to commit all current changes" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:56 -msgid "From your computer" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:797 +msgid ":command:`git push -u origin staging` a command to upload the changes of the current branch (e.g., `staging`) to the remote repository." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:58 -msgid "Clone your Github repository on your computer:" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:805 +msgid "The delete command is used to delete a branch from your repository." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:67 -msgid "Create a new branch:" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:808 +msgid "Once you delete a branch, there is no way to retrieve it unless a backup exists. Staging branches are not automatically backed up, but can be manually. Development branches cannot be backed up." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:74 -msgid "Create the module structure" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:812 +msgid ":command:`git push origin :staging && git branch -D staging`" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:77 -msgid "Scaffolding the module" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:814 +msgid ":command:`git push origin :staging` a command to delete a specific branch (e.g., `staging`) on the remote repository" msgstr "" -#: ../../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*." +#: ../../content/administration/odoo_sh/getting_started/branches.rst:816 +msgid ":command:`git branch -D staging` a command to delete the specific branch on your local copy of the repository" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:82 -msgid "From the Odoo.sh editor, in a terminal:" +#: ../../content/administration/odoo_sh/getting_started/branches.rst:820 +msgid "Before deleting a branch, refer to the :ref:`Backups section ` to better understand how they work and when you should create a manual backup." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:88 -msgid "Or, from your computer, if you have an :doc:`installation of Odoo <../../on_premise/source>`:" +#: ../../content/administration/odoo_sh/getting_started/builds.rst:6 +msgid "Builds" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/builds.rst:11 +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/first_module.rst:98 -msgid "The below structure will be generated:" +#: ../../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/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." +#: ../../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/first_module.rst:125 -msgid "Uncomment the content of the files:" +#: ../../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/first_module.rst:127 -msgid "*models/models.py*, an example of model with its fields," +#: ../../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/first_module.rst:129 -msgid "*views/views.xml*, a tree and a form view, with the menus opening them," +#: ../../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/first_module.rst:131 -msgid "*demo/demo.xml*, demo records for the above example model," +#: ../../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/first_module.rst:133 -msgid "*controllers/controllers.py*, an example of controller implementing some routes," +#: ../../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/first_module.rst:135 -msgid "*views/templates.xml*, two example qweb views used by the above controller routes," +#: ../../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/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:" +#: ../../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/first_module.rst:146 -msgid "Manually" +#: ../../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/first_module.rst:148 -msgid "If you want to create your module structure manually, you can follow the :doc:`/developer/tutorials/server_framework_101` tutorial to understand the structure of a module and the content of each file." +#: ../../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/first_module.rst:153 -msgid "Push the development branch" +#: ../../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/first_module.rst:155 -msgid "Stage the changes to be committed" +#: ../../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/first_module.rst:161 -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:395 -msgid "Commit your changes" +#: ../../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/first_module.rst:167 -msgid "Push your changes to your remote repository" +#: ../../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/first_module.rst:169 -msgid "From an Odoo.sh editor terminal:" +#: ../../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/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." +#: ../../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/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:" +#: ../../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/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" +#: ../../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/first_module.rst:197 -msgid "Test your module" +#: ../../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/first_module.rst:199 -msgid "Your branch should appear in your development branches in your project." +#: ../../content/administration/odoo_sh/getting_started/builds.rst:94 +msgid "Features" msgstr "" -#: ../../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." +#: ../../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/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." +#: ../../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/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." +#: ../../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/first_module.rst:220 -msgid "You can then play around with your module, create new records and test your features and buttons." +#: ../../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 "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:223 -msgid "Test with the production data" +#: ../../content/administration/odoo_sh/getting_started/create.rst:3 +msgid "Create a project" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/create.rst:6 +msgid "Deploy a platform" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/create.rst:8 +msgid "Visit `Odoo.sh `_ and click :guilabel:`Deploy your platform`." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:230 -msgid "You can either:" +#: ../../content/administration/odoo_sh/getting_started/create.rst:0 +msgid "The Deploy your platform button on Odoo.sh" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/create.rst:13 +msgid "Sign in with a `GitHub `_ account." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/create.rst:0 +msgid "Signing in to GitHub" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/create.rst:18 +msgid "Authorize Odoo.sh by clicking :guilabel:`Authorize odoo` twice." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/create.rst:0 +msgid "Granting Odoo.sh permissions to perform actions and access data on GitHub" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/create.rst:0 +msgid "Granting Odoo.sh additional permissions to perform actions and access data on GitHub" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:256 -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:300 -msgid "Install your module" +#: ../../content/administration/odoo_sh/getting_started/create.rst:27 +msgid "Odoo.sh requests GitHub to:" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/create.rst:29 +msgid "Access your GitHub login and email." msgstr "" -#: ../../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:" +#: ../../content/administration/odoo_sh/getting_started/create.rst:30 +msgid "Create a new repository, in case you start from scratch." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:266 -msgid "Activate the :ref:`developer mode `" +#: ../../content/administration/odoo_sh/getting_started/create.rst:31 +msgid "Access existing repositories, including organization ones, in case you start from an existing repository." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:267 -msgid "in the apps menu, click the *Update Apps List* button," +#: ../../content/administration/odoo_sh/getting_started/create.rst:33 +msgid "Create a webhook to notify you each time changes are pushed." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:268 -msgid "in the dialog that appears, click the *Update* button." +#: ../../content/administration/odoo_sh/getting_started/create.rst:34 +msgid "Commit changes for easier deployment." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:273 -msgid "Your module will then appear in the list of available apps." +#: ../../content/administration/odoo_sh/getting_started/create.rst:36 +msgid "Fill in the :guilabel:`Deploy your platform` form and click :guilabel:`Deploy`:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:279 -msgid "Deploy in production" +#: ../../content/administration/odoo_sh/getting_started/create.rst:38 +msgid ":guilabel:`Github repository`: to create a new repository, choose :guilabel:`New repository` and enter a name; to use an existing one, choose :guilabel:`Existing repository` and select it." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/create.rst:40 +msgid ":guilabel:`Odoo Version`: select the major version of Odoo you want to use." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:284 -msgid "Drag and drop your staging branch on the production branch." +#: ../../content/administration/odoo_sh/getting_started/create.rst:43 +msgid "Use the latest major version of Odoo version when creating a new repository. If you are planning to import an existing database or applications, it might be required that their versions match." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/create.rst:46 +msgid "If you are starting on Odoo Online and plan to migrate to Odoo.sh later, create your database using `odoo.com/start-lts `_ to ensure compatibility, as minor versions are not supported by Odoo.sh." msgstr "" -#: ../../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 `." +#: ../../content/administration/odoo_sh/getting_started/create.rst:50 +msgid ":guilabel:`Subscription Code`: enter your Odoo Enterprise subscription code that includes Odoo.sh. It is also sometimes called the *subscription referral*, *contract number*, or *activation code*." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:308 -msgid "Add a change" +#: ../../content/administration/odoo_sh/getting_started/create.rst:55 +msgid "Partners can use their partnership codes to initiate a trial (trial builds are limited to 1 GB storage and two staging). If a client proceeds to start a project, they must subscribe to an Odoo Enterprise plan that includes Odoo.sh hosting and use their subscription code." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/create.rst:59 +msgid ":guilabel:`Hosting location`: select the region where your platform will be hosted." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:315 -msgid "From the Odoo.sh editor," +#: ../../content/administration/odoo_sh/getting_started/create.rst:0 +msgid "The Deploy your platform form" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:314 -msgid "browse to your module folder *~/src/user/my_module*," +#: ../../content/administration/odoo_sh/getting_started/create.rst:67 +msgid "Import a database" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:315 -msgid "then, open the file *models/models.py*." +#: ../../content/administration/odoo_sh/getting_started/create.rst:69 +msgid "Once your platform is deployed, you can import a database into your Odoo.sh project, provided it uses a :doc:`supported version <../../supported_versions>` of Odoo." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:321 -msgid "Or, from your computer," +#: ../../content/administration/odoo_sh/getting_started/create.rst:73 +msgid "Due to `Odoo's backup policy `_, the import process requires **four times** the size of your database dump in available storage. For example, a 10 GB dump file will require at least 40 GB of available space. We recommend allocating **more than four times×** the dump size temporarily, then reducing storage after the import is complete." msgstr "" -#: ../../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*," +#: ../../content/administration/odoo_sh/getting_started/create.rst:78 +msgid "If your project is a trial created with a partnership code, you can only import database dumps up to **1 GB** in size." msgstr "" -#: ../../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*, ..." +#: ../../content/administration/odoo_sh/getting_started/create.rst:82 +msgid "Push modules in production" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:323 -msgid "Then, after the description field" +#: ../../content/administration/odoo_sh/getting_started/create.rst:84 +msgid "If you are using community or custom modules, add them to a branch in your GitHub repository." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:329 -msgid "Add a datetime field" +#: ../../content/administration/odoo_sh/getting_started/create.rst:87 +msgid "Databases hosted on Odoo Online do not support custom modules." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:335 -msgid "Then, open the file *views/views.xml*." +#: ../../content/administration/odoo_sh/getting_started/create.rst:89 +msgid "Odoo.sh automatically detects folders containing Odoo modules. You can organize them however you prefer. For example, you can place them directly in the root directory of your repository or group them by category (e.g., `accounting`, `project`, etc.)." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:337 -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:473 -msgid "After" +#: ../../content/administration/odoo_sh/getting_started/create.rst:93 +msgid "For publicly available community modules, you may also consider using :doc:`submodules <../advanced/submodules>`." msgstr "" -#: ../../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" +#: ../../content/administration/odoo_sh/getting_started/create.rst:97 +msgid "Download a backup" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/create.rst:101 +#: ../../content/administration/on_premise.rst:5 +#: ../../content/administration/upgrade.rst:30 +#: ../../content/administration/upgrade.rst:163 +#: ../../content/administration/upgrade.rst:371 +msgid "On-premise" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/create.rst:103 +msgid "Go to `/web/database/manager` on your on-premise Odoo instance and click :icon:`fa-floppy-o` :guilabel:`Backup`." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/create.rst:0 +msgid "The on-premise web manager interface" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:358 -msgid "Open the module manifest *__manifest__.py*." +#: ../../content/administration/odoo_sh/getting_started/create.rst:109 +msgid "Select :guilabel:`zip (includes filestore)` as the :guilabel:`Backup Format`." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:366 -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:504 -msgid "with" +#: ../../content/administration/odoo_sh/getting_started/create.rst:0 +msgid "Downloading an on-premise database backup" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/create.rst:115 +msgid "You will need the :guilabel:`Master Password` of your Odoo server. If you do not have it, contact your system administrator." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:375 -msgid "Browse to your Git folder." +#: ../../content/administration/odoo_sh/getting_started/create.rst:117 +msgid "If you cannot access the database manager, it may have been disabled by your system administrator. Refer to the :ref:`database manager security documentation `." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:377 -msgid "Then, from an Odoo.sh terminal:" +#: ../../content/administration/odoo_sh/getting_started/create.rst:123 +msgid "Log in to your portal account and navigate to the `My Databases page `_, and download a backup by clicking the :icon:`fa-gear` (:guilabel:`gear`) icon, then :icon:`fa-cloud-download` :guilabel:`Download`." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:389 -msgid "Then, stage your changes to be committed" +#: ../../content/administration/odoo_sh/getting_started/create.rst:0 +msgid "Downloading an Odoo Online database backup" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:401 -msgid "Push your changes:" +#: ../../content/administration/odoo_sh/getting_started/create.rst:131 +msgid "Only major versions of Odoo are compatible with Odoo.sh." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:403 -msgid "From an Odoo.sh terminal:" +#: ../../content/administration/odoo_sh/getting_started/create.rst:134 +msgid "Upload the backup" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:415 -msgid "The platform will then create a new build for the branch *feature-1*." +#: ../../content/administration/odoo_sh/getting_started/create.rst:136 +msgid "In your Odoo.sh project, navigate to the :guilabel:`Backups` tab of your :guilabel:`Production` branch, and click :guilabel:`Import Database` to upload the backup you previously downloaded." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/create.rst:-1 +msgid "Importing a database backup on Odoo.sh" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:426 -msgid "Use an external Python library" +#: ../../content/administration/odoo_sh/getting_started/create.rst:142 +msgid "Once the import is complete, you can access the database using the :guilabel:`Connect` button in the branch's :guilabel:`History` tab." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/create.rst:146 +msgid "Importing a backup **overwrites all data** currently in the branch. Consider downloading a manual backup beforehand if you want to preserve the existing data." msgstr "" -#: ../../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**." +#: ../../content/administration/odoo_sh/getting_started/create.rst:150 +msgid "Check outgoing email servers" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:436 -msgid "**PostgreSQL extensions** are not supported on Odoo.sh." +#: ../../content/administration/odoo_sh/getting_started/create.rst:152 +msgid "Odoo.sh provides a default email server. To use it, ensure that **no outgoing mail server is enabled** in your database by enabling :ref:`developer mode ` and navigating to :menuselection:`Settings --> Technical --> Email: Outgoing Mail Servers`" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:437 -msgid "For more information, consult our `FAQ `_." +#: ../../content/administration/odoo_sh/getting_started/create.rst:156 +msgid "After importing your database, all configured outgoing mail servers are **disabled**, and the default Odoo.sh server is used." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/create.rst:160 +msgid "Port **25** is and will remain closed. If connecting to an external SMTP server, use port **465** or **587**." msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/create.rst:164 +msgid "Check scheduled actions" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:444 -msgid "Create a file *requirements.txt* in the root folder of your repository" +#: ../../content/administration/odoo_sh/getting_started/create.rst:166 +msgid "Scheduled actions are **disabled by default** after importing your database. This prevents your newly imported database from performing potentially disruptive operations such as:" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/create.rst:169 +msgid "sending queued emails," msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/create.rst:170 +msgid "triggering mass mailings, or" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/create.rst:171 +msgid "syncing with third-party services (e.g., calendars, cloud storage)." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:459 -msgid "Open the file *models/models.py*." +#: ../../content/administration/odoo_sh/getting_started/create.rst:173 +msgid "If you intend to use this imported database in production, **re-enable** only the scheduled actions you need by enabling :ref:`developer mode ` and going to :menuselection:`Settings --> Technical --> Automation: Scheduled Actions`." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:461 -msgid "Before" +#: ../../content/administration/odoo_sh/getting_started/create.rst:178 +msgid "Register the subscription" msgstr "" -#: ../../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." +#: ../../content/administration/odoo_sh/getting_started/create.rst:180 +msgid "After import, the database is considered a **duplicate** and will be unlinked from your enterprise subscription." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:496 -msgid "Edit the module manifest *__manifest__.py*" +#: ../../content/administration/odoo_sh/getting_started/create.rst:184 +msgid "You are allowed only one active database per subscription." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:510 -msgid "Stage and commit your changes:" +#: ../../content/administration/odoo_sh/getting_started/create.rst:186 +msgid "If you intend to make the imported database your production environment:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:518 -msgid "Then, push your changes:" +#: ../../content/administration/odoo_sh/getting_started/create.rst:188 +msgid "Unlink your previous database from the subscription." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:520 -msgid "In an Odoo.sh terminal:" +#: ../../content/administration/odoo_sh/getting_started/create.rst:189 +msgid "Register the new one." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:526 -msgid "In your computer terminal:" +#: ../../content/administration/odoo_sh/getting_started/create.rst:191 +msgid "Refer to the :doc:`database registration documentation <../../on_premise>` for step-by-step instructions." msgstr "" #: ../../content/administration/odoo_sh/getting_started/online-editor.rst:6 @@ -2643,7 +3170,7 @@ msgid "The online editor allows you to edit the source code of your builds from msgstr "" #: ../../content/administration/odoo_sh/getting_started/online-editor.rst:18 -msgid "You can access the editor of a build through :ref:`the branches tabs `, :ref:`the builds dropdown menu ` or by adding */odoo-sh/editor* to your build domain name (e.g. *https://odoo-addons-master-1.dev.odoo.com/odoo-sh/editor*)." +msgid "You can access the editor of a build through :ref:`the branches tabs `, :ref:`the builds dropdown menu ` or by adding */odoo-sh/editor* to your build domain name (e.g. *https://odoo-addons-master-1.dev.odoo.com/odoo-sh/editor*)." msgstr "" #: ../../content/administration/odoo_sh/getting_started/online-editor.rst:25 @@ -2759,7 +3286,7 @@ msgid "The Git source folder *~/src/user* is not checked out on a branch but rat msgstr "" #: ../../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." +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:148 @@ -2925,6 +3452,11 @@ msgstr "" msgid "Shell/SSH" msgstr "" +#: ../../content/administration/odoo_sh/getting_started/settings.rst:113 +#: ../../content/administration/odoo_sh/getting_started/settings.rst:158 +msgid "Monitoring" +msgstr "" + #: ../../content/administration/odoo_sh/getting_started/settings.rst:177 #: ../../content/administration/odoo_sh/getting_started/status.rst:3 msgid "Status" @@ -2982,12 +3514,8 @@ msgstr "" msgid ":guilabel:`ci/odoo.sh (test_ci)`: testing the token from the Settings page will push a test status on the last commit of your repository" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/settings.rst:241 -msgid "Custom domains" -msgstr "" - #: ../../content/administration/odoo_sh/getting_started/settings.rst:243 -msgid "To configure additional domains please refer to the corresponding branch's :ref:`settings tab `." +msgid "To configure additional domains please refer to the corresponding branch's :ref:`settings tab `." msgstr "" #: ../../content/administration/odoo_sh/getting_started/settings.rst:251 @@ -3106,21 +3634,6 @@ msgstr "" 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:3 -msgid "Introduction to Odoo.sh" -msgstr "" - -#: ../../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 "" - -#: ../../content/administration/on_premise.rst:5 -#: ../../content/administration/upgrade.rst:30 -#: ../../content/administration/upgrade.rst:163 -#: ../../content/administration/upgrade.rst:371 -msgid "On-premise" -msgstr "" - #: ../../content/administration/on_premise.rst:8 msgid "Register a database" msgstr "" diff --git a/locale/sources/finance.pot b/locale/sources/finance.pot index 823451cccf..79a463ef89 100644 --- a/locale/sources/finance.pot +++ b/locale/sources/finance.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo 17.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-16 14:19+0000\n" +"POT-Creation-Date: 2025-11-18 10:55+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -5606,7 +5606,9 @@ msgstr "" #: ../../content/applications/finance/accounting/get_started/cheat_sheet.rst:238 #: ../../content/applications/finance/accounting/get_started/cheat_sheet.rst:252 #: ../../content/applications/finance/accounting/get_started/cheat_sheet.rst:254 -#: ../../content/applications/finance/accounting/taxes.rst:112 +#: ../../content/applications/finance/accounting/taxes.rst:143 +#: ../../content/applications/finance/accounting/taxes.rst:212 +#: ../../content/applications/finance/accounting/taxes.rst:247 msgid "100" msgstr "" @@ -8978,179 +8980,313 @@ msgid "Tax computation" msgstr "" #: ../../content/applications/finance/accounting/taxes.rst:75 -msgid "**Group of Taxes**" +msgid "The :guilabel:`Tax Computation` field determines how the tax amount is computed from the sales price. The following options are available:" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:77 -msgid "The tax is a combination of multiple sub-taxes. You can add as many taxes as you want, in the order you want them to be applied." +#: ../../content/applications/finance/accounting/taxes.rst:78 +msgid ":ref:`Group of Taxes `: a combination of several other taxes" +msgstr "" + +#: ../../content/applications/finance/accounting/taxes.rst:79 +msgid ":ref:`Fixed `: a fixed amount" +msgstr "" + +#: ../../content/applications/finance/accounting/taxes.rst:80 +msgid ":ref:`Percentage of Price `: a percentage of the tax-excluded sales price" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:81 -msgid "Make sure that the tax sequence is correct, as the order in which they are may impact the taxes' amounts computation, especially if one of the taxes :ref:`affects the base of the subsequent ones `." +#: ../../content/applications/finance/accounting/taxes.rst:82 +msgid ":ref:`Percentage of Price Tax Included `: a percentage of the tax-included total" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:85 -msgid "**Fixed**" +#: ../../content/applications/finance/accounting/taxes.rst:84 +msgid ":ref:`Python Code `: a custom user-defined formula" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:87 -msgid "The tax has a fixed amount in the default currency. The amount remains the same, regardless of the sales price." +#: ../../content/applications/finance/accounting/taxes.rst:89 +msgid "Group of taxes" msgstr "" #: ../../content/applications/finance/accounting/taxes.rst:91 -msgid "A product has a sales price of $1000, and we apply a $10 *fixed* tax. We then have:" +msgid "The tax is a combination of multiple sub-taxes. You can add as many taxes as you want, in the order you want them to be applied." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:94 -#: ../../content/applications/finance/accounting/taxes.rst:109 -#: ../../content/applications/finance/accounting/taxes.rst:124 -#: ../../content/applications/finance/accounting/taxes.rst:268 +#: ../../content/applications/finance/accounting/taxes.rst:95 +msgid "Make sure the tax sequence is correct, as the display order determines the application order and may affect tax computation, particularly if a tax :ref:`affects the base of subsequent taxes `." +msgstr "" + +#: ../../content/applications/finance/accounting/taxes.rst:102 +msgid "Fixed" +msgstr "" + +#: ../../content/applications/finance/accounting/taxes.rst:104 +msgid "The tax has a fixed amount in the default currency. The amount remains the same per unit, regardless of the sales price." +msgstr "" + +#: ../../content/applications/finance/accounting/taxes.rst:107 +msgid "The computation is :math:`\\text{tax amount} = \\text{fixed tax amount} \\times \\text{quantity}`." +msgstr "" + +#: ../../content/applications/finance/accounting/taxes.rst:110 +msgid "A product has a sales price of $1000, and we apply a $10 :guilabel:`Fixed` tax. We then have:" +msgstr "" + +#: ../../content/applications/finance/accounting/taxes.rst:113 +#: ../../content/applications/finance/accounting/taxes.rst:140 +#: ../../content/applications/finance/accounting/taxes.rst:156 +#: ../../content/applications/finance/accounting/taxes.rst:189 +#: ../../content/applications/finance/accounting/taxes.rst:209 +#: ../../content/applications/finance/accounting/taxes.rst:244 +#: ../../content/applications/finance/accounting/taxes.rst:380 msgid "Product sales price" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:94 -#: ../../content/applications/finance/accounting/taxes.rst:109 -#: ../../content/applications/finance/accounting/taxes.rst:124 -#: ../../content/applications/finance/accounting/taxes.rst:268 +#: ../../content/applications/finance/accounting/taxes.rst:113 +#: ../../content/applications/finance/accounting/taxes.rst:140 +#: ../../content/applications/finance/accounting/taxes.rst:156 +#: ../../content/applications/finance/accounting/taxes.rst:189 +#: ../../content/applications/finance/accounting/taxes.rst:209 +#: ../../content/applications/finance/accounting/taxes.rst:244 +#: ../../content/applications/finance/accounting/taxes.rst:380 msgid "Price without tax" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:94 -#: ../../content/applications/finance/accounting/taxes.rst:109 -#: ../../content/applications/finance/accounting/taxes.rst:124 -#: ../../content/applications/finance/accounting/taxes.rst:268 +#: ../../content/applications/finance/accounting/taxes.rst:113 +#: ../../content/applications/finance/accounting/taxes.rst:140 +#: ../../content/applications/finance/accounting/taxes.rst:156 +#: ../../content/applications/finance/accounting/taxes.rst:189 +#: ../../content/applications/finance/accounting/taxes.rst:209 +#: ../../content/applications/finance/accounting/taxes.rst:244 +#: ../../content/applications/finance/accounting/taxes.rst:380 #: ../../content/applications/finance/fiscal_localizations/romania.rst:92 msgid "Tax" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:94 -#: ../../content/applications/finance/accounting/taxes.rst:109 -#: ../../content/applications/finance/accounting/taxes.rst:124 -#: ../../content/applications/finance/accounting/taxes.rst:268 +#: ../../content/applications/finance/accounting/taxes.rst:113 +#: ../../content/applications/finance/accounting/taxes.rst:140 +#: ../../content/applications/finance/accounting/taxes.rst:156 +#: ../../content/applications/finance/accounting/taxes.rst:189 +#: ../../content/applications/finance/accounting/taxes.rst:209 +#: ../../content/applications/finance/accounting/taxes.rst:244 +#: ../../content/applications/finance/accounting/taxes.rst:380 #: ../../content/applications/finance/fiscal_localizations/hong_kong.rst:400 msgid "Total" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:97 -#: ../../content/applications/finance/accounting/taxes.rst:97 -#: ../../content/applications/finance/accounting/taxes.rst:112 -#: ../../content/applications/finance/accounting/taxes.rst:112 -#: ../../content/applications/finance/accounting/taxes.rst:127 -#: ../../content/applications/finance/accounting/taxes.rst:127 -#: ../../content/applications/finance/accounting/taxes.rst:271 +#: ../../content/applications/finance/accounting/taxes.rst:116 +#: ../../content/applications/finance/accounting/taxes.rst:116 +#: ../../content/applications/finance/accounting/taxes.rst:143 +#: ../../content/applications/finance/accounting/taxes.rst:143 +#: ../../content/applications/finance/accounting/taxes.rst:159 +#: ../../content/applications/finance/accounting/taxes.rst:192 +#: ../../content/applications/finance/accounting/taxes.rst:192 +#: ../../content/applications/finance/accounting/taxes.rst:212 +#: ../../content/applications/finance/accounting/taxes.rst:247 +#: ../../content/applications/finance/accounting/taxes.rst:247 +#: ../../content/applications/finance/accounting/taxes.rst:383 msgid "1,000" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:97 +#: ../../content/applications/finance/accounting/taxes.rst:116 #: ../../content/applications/finance/fiscal_localizations/france.rst:240 msgid "10" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:97 +#: ../../content/applications/finance/accounting/taxes.rst:116 msgid "1,010.00" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:100 -msgid "**Percentage of price**" +#: ../../content/applications/finance/accounting/taxes.rst:122 +msgid "Percentage of price" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:102 -msgid "The *sales price* is the taxable basis: the tax amount is computed by multiplying the sales price by the tax percentage." +#: ../../content/applications/finance/accounting/taxes.rst:124 +msgid "The tax rate is a percentage of the **tax-excluded** subtotal." +msgstr "" + +#: ../../content/applications/finance/accounting/taxes.rst:126 +#: ../../content/applications/finance/accounting/taxes.rst:176 +msgid "The exact tax computation depends on the :ref:`Included in Price ` field, which determines whether the sales price should be treated as tax-excluded or tax-included:" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:106 -msgid "A product has a sales price of $1000, and we apply a *10% of Price* tax. We then have:" +#: ../../content/applications/finance/accounting/taxes.rst:130 +#: ../../content/applications/finance/accounting/taxes.rst:180 +#: ../../content/applications/finance/accounting/taxes.rst:403 +msgid "Tax-excluded" +msgstr "" + +#: ../../content/applications/finance/accounting/taxes.rst:132 +msgid "If :guilabel:`Included in Price` is disabled, the computation is :math:`\\text{tax amount} = \\text{sales price} \\times \\text{tax rate}`." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:112 +#: ../../content/applications/finance/accounting/taxes.rst:136 +msgid "A product has a sales price of $1000, and we apply a 10% :guilabel:`Percentage of Price` tax that is not :guilabel:`Included in Price`. We then have:" +msgstr "" + +#: ../../content/applications/finance/accounting/taxes.rst:143 +#: ../../content/applications/finance/accounting/taxes.rst:247 msgid "1,100.00" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:115 -msgid "**Percentage of Price Tax Included**" +#: ../../content/applications/finance/accounting/taxes.rst:146 +#: ../../content/applications/finance/accounting/taxes.rst:198 +#: ../../content/applications/finance/accounting/taxes.rst:414 +msgid "Tax-included" +msgstr "" + +#: ../../content/applications/finance/accounting/taxes.rst:148 +msgid "If :guilabel:`Included in Price` is enabled, the computation is :math:`\\text{tax amount} = \\text{sales price} \\times \\frac{\\text{tax rate}}{1 + \\text{tax rate}}`." +msgstr "" + +#: ../../content/applications/finance/accounting/taxes.rst:152 +msgid "A product has a sales price of $1000, and we apply a 10% :guilabel:`Percentage of Price` tax that is :guilabel:`Included in Price`. We then have:" +msgstr "" + +#: ../../content/applications/finance/accounting/taxes.rst:159 +#: ../../content/applications/finance/accounting/taxes.rst:383 +msgid "909.09" +msgstr "" + +#: ../../content/applications/finance/accounting/taxes.rst:159 +#: ../../content/applications/finance/accounting/taxes.rst:383 +msgid "90.91" +msgstr "" + +#: ../../content/applications/finance/accounting/taxes.rst:159 +#: ../../content/applications/finance/accounting/taxes.rst:212 +#: ../../content/applications/finance/accounting/taxes.rst:383 +msgid "1,000.00" +msgstr "" + +#: ../../content/applications/finance/accounting/taxes.rst:165 +msgid "Percentage of price tax included" +msgstr "" + +#: ../../content/applications/finance/accounting/taxes.rst:168 +msgid "This tax computation is rarely used and only useful in countries (e.g., Brazil, Bolivia) that quote tax rates as a percentage of the tax-included total. For the more common need to compute tax amounts from a tax-included price, use the :ref:`Percentage of Price ` tax computation with the :ref:`Included in Price ` option." +msgstr "" + +#: ../../content/applications/finance/accounting/taxes.rst:174 +msgid "The tax rate is a percentage of the **tax-included** total." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:117 -msgid "The **total** is the taxable basis: the tax amount is a percentage of the total." +#: ../../content/applications/finance/accounting/taxes.rst:181 +msgid "If :guilabel:`Included in Price` is disabled, the computation is :math:`\\text{tax amount} = \\text{sales price} \\times \\frac{\\text{tax rate}}{1 - \\text{tax rate}}`." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:120 -msgid "A product has a Sales Price of $1000, and we apply a *10% of Price Tax Included* tax. We then have:" +#: ../../content/applications/finance/accounting/taxes.rst:185 +msgid "A product has a sales price of $1000, and we apply a 10% :guilabel:`Percentage of Price Tax Included` tax that is not :guilabel:`Included in Price`. We then have:" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:127 +#: ../../content/applications/finance/accounting/taxes.rst:192 msgid "111.11" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:127 +#: ../../content/applications/finance/accounting/taxes.rst:192 msgid "1,111.11" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:130 -msgid "**Python code**" +#: ../../content/applications/finance/accounting/taxes.rst:195 +msgid "Note that the real tax rate in terms of the tax-excluded price is :math:`\\frac{111.11}{1000} = 11.111\\%`." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:132 -msgid "A tax defined as **Python code** consists of two snippets of Python code that are executed in a local environment containing data such as the unit price, product or partner. :guilabel:`Python Code` defines the amount of the tax, and :guilabel:`Applicable Code` defines if the tax is to be applied. The formula is found at the bottom of the :guilabel:`Definition` tab." +#: ../../content/applications/finance/accounting/taxes.rst:200 +msgid "If :guilabel:`Included in Price` is enabled, the computation is :math:`\\text{tax amount} = \\text{sales price} \\times \\text{tax rate}`." +msgstr "" + +#: ../../content/applications/finance/accounting/taxes.rst:204 +msgid "A product has a sales price of $1000, and we apply a 10% :guilabel:`Percentage of Price Tax Included` tax that is :guilabel:`Included in Price`. We then have:" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:138 -msgid ":guilabel:`Python Code`: `result = price_unit * 0.10` :guilabel:`Applicable Code`: `result = true`" +#: ../../content/applications/finance/accounting/taxes.rst:212 +msgid "900" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:144 +#: ../../content/applications/finance/accounting/taxes.rst:215 +msgid "Note that the real tax rate in terms of the tax-excluded price is :math:`\\frac{100}{900} = 11.111\\%`." +msgstr "" + +#: ../../content/applications/finance/accounting/taxes.rst:221 +msgid "Python code" +msgstr "" + +#: ../../content/applications/finance/accounting/taxes.rst:224 +msgid "If a tax can be expressed as a multiple of the quantity of the product to which it applies, it can be defined as a :ref:`Fixed ` tax. Doing so is strongly recommended over defining a :guilabel:`Python Code` tax." +msgstr "" + +#: ../../content/applications/finance/accounting/taxes.rst:228 +msgid "A tax defined as :guilabel:`Python Code` consists of two snippets of Python code that are executed in a local environment that can access the unit price, quantity, product, and partner. :guilabel:`Python Code` defines the amount of the tax, and :guilabel:`Applicable Code` defines whether the tax is applied. Enter a formula for each field at the bottom of the :guilabel:`Definition` tab." +msgstr "" + +#: ../../content/applications/finance/accounting/taxes.rst:235 +msgid "A product has a sales price of $1000, and we apply a :guilabel:`Python Code` tax with the following configuration:" +msgstr "" + +#: ../../content/applications/finance/accounting/taxes.rst:238 +msgid ":guilabel:`Python Code`: `result = price_unit * 0.10` and" +msgstr "" + +#: ../../content/applications/finance/accounting/taxes.rst:239 +msgid ":guilabel:`Applicable Code`: `result = True`." +msgstr "" + +#: ../../content/applications/finance/accounting/taxes.rst:241 +msgid "We then have:" +msgstr "" + +#: ../../content/applications/finance/accounting/taxes.rst:253 msgid "Active" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:146 +#: ../../content/applications/finance/accounting/taxes.rst:255 msgid "Only **active** taxes can be added to new documents." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:149 +#: ../../content/applications/finance/accounting/taxes.rst:258 msgid "It is not possible to delete taxes that have already been used. Instead, you can deactivate them to prevent future use." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:153 +#: ../../content/applications/finance/accounting/taxes.rst:262 msgid "This field can be modified from the :ref:`list view `." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:158 +#: ../../content/applications/finance/accounting/taxes.rst:267 msgid "Tax type" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:160 +#: ../../content/applications/finance/accounting/taxes.rst:269 msgid "The :guilabel:`Tax Type` determines the tax application, which also restricts where it is displayed." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:162 +#: ../../content/applications/finance/accounting/taxes.rst:271 msgid "**Sales**: Customer invoices, product customer taxes, etc." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:163 +#: ../../content/applications/finance/accounting/taxes.rst:272 msgid "**Purchase**: Vendor bills, product vendor taxes, etc." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:164 +#: ../../content/applications/finance/accounting/taxes.rst:273 msgid "**None**" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:167 +#: ../../content/applications/finance/accounting/taxes.rst:276 msgid "You can use :guilabel:`None` for taxes that you want to include in a :ref:`Group of Taxes ` but that you do not want to list along with other sales or purchase taxes." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:171 +#: ../../content/applications/finance/accounting/taxes.rst:280 msgid "Tax scope" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:173 +#: ../../content/applications/finance/accounting/taxes.rst:282 msgid "The :guilabel:`Tax Scope` restricts the use of taxes to a type of product, either **goods** or **services**." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:179 +#: ../../content/applications/finance/accounting/taxes.rst:288 msgid "Definition tab" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:181 +#: ../../content/applications/finance/accounting/taxes.rst:290 msgid "Allocate with precision the amount of the taxable basis or percentages of the computed tax to multiple accounts and tax grids." msgstr "" @@ -9158,35 +9294,35 @@ msgstr "" msgid "Allocate tax amounts to the right accounts and tax grids" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:187 +#: ../../content/applications/finance/accounting/taxes.rst:296 msgid "**Based On**:" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:189 +#: ../../content/applications/finance/accounting/taxes.rst:298 msgid ":guilabel:`Base`: the price on the invoice line" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:190 +#: ../../content/applications/finance/accounting/taxes.rst:299 msgid ":guilabel:`% of tax`: a percentage of the computed tax." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:192 +#: ../../content/applications/finance/accounting/taxes.rst:301 msgid "**Account**: if defined, an additional journal item is recorded." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:193 +#: ../../content/applications/finance/accounting/taxes.rst:302 msgid "**Tax Grids**: used to generate :doc:`tax reports ` automatically, according to your country's regulations." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:199 +#: ../../content/applications/finance/accounting/taxes.rst:308 msgid "Advanced options tab" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:204 +#: ../../content/applications/finance/accounting/taxes.rst:313 msgid "Label on invoices" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:206 +#: ../../content/applications/finance/accounting/taxes.rst:315 msgid "The tax label is displayed on each invoice line in the :guilabel:`Taxes` column. This is visible to *front-end* users on exported invoices, in customer portals, etc." msgstr "" @@ -9194,15 +9330,15 @@ msgstr "" msgid "The label on invoices is displayed on each invoice line" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:215 +#: ../../content/applications/finance/accounting/taxes.rst:324 msgid "Tax group" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:217 +#: ../../content/applications/finance/accounting/taxes.rst:326 msgid "Select which **tax group** the tax belongs to. The tax group name is the displayed above the **total** line on exported invoices and in customer portals." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:220 +#: ../../content/applications/finance/accounting/taxes.rst:329 msgid "Tax groups include different iterations of the same tax. This can be useful when you must record the same tax differently according to :doc:`fiscal positions `." msgstr "" @@ -9210,103 +9346,103 @@ msgstr "" msgid "The Tax Group name is different from the Label on Invoices" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:228 +#: ../../content/applications/finance/accounting/taxes.rst:337 msgid "In the example above, the :guilabel:`0% EU S` tax for intra-community customers in Europe records the amount on specific accounts and tax grids. However, it remains a 0% tax to the customer. This is why the label indicates :guilabel:`0% EU S`, and the tax group name above the :guilabel:`Total` line indicates :guilabel:`VAT 0%`." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:234 +#: ../../content/applications/finance/accounting/taxes.rst:343 msgid "Taxes have three different labels, each one having a specific use. Refer to the following table to see where they are displayed." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:238 +#: ../../content/applications/finance/accounting/taxes.rst:347 msgid ":ref:`Tax Name `" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:238 +#: ../../content/applications/finance/accounting/taxes.rst:347 msgid ":ref:`Label on Invoice `" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:238 +#: ../../content/applications/finance/accounting/taxes.rst:347 msgid ":ref:`Tax Group `" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:241 +#: ../../content/applications/finance/accounting/taxes.rst:350 msgid "Backend" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:241 +#: ../../content/applications/finance/accounting/taxes.rst:350 msgid ":guilabel:`Taxes` column on exported invoices" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:241 +#: ../../content/applications/finance/accounting/taxes.rst:350 msgid "Above the :guilabel:`Total` line on exported invoices" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:249 +#: ../../content/applications/finance/accounting/taxes.rst:358 msgid "Include in analytic cost" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:251 +#: ../../content/applications/finance/accounting/taxes.rst:360 msgid "With this option activated, the tax amount is assigned to the same **analytic account** as the invoice line." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:257 +#: ../../content/applications/finance/accounting/taxes.rst:366 msgid "Included in price" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:259 -msgid "With this option activated, the total (including the tax) equals the **sales price**." +#: ../../content/applications/finance/accounting/taxes.rst:368 +msgid "With this option activated, the tax will treat the sales price on which it is applied as a total including the tax amount. The tax computation will split the sales price into a base amount and a tax amount. This makes it suitable for B2C sales in most countries where prices are quoted tax-inclusive." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:261 +#: ../../content/applications/finance/accounting/taxes.rst:373 msgid "`Total = Sales Price = Computed Tax-Excluded price + Tax`" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:264 -msgid "A product has a sales price of $1000, and we apply a *10% of Price* tax, which is *included in the price*. We then have:" +#: ../../content/applications/finance/accounting/taxes.rst:376 +msgid "A product has a sales price of $1000, and we apply a 10% :guilabel:`Percentage of Price` tax with :guilabel:`Included in Price`. We then have:" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:271 -msgid "900.10" +#: ../../content/applications/finance/accounting/taxes.rst:387 +msgid "For a guide on configuring tax-excluded and tax-included prices for B2B and B2C customers, see :doc:`taxes/B2B_B2C`." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:271 -msgid "90.9" +#: ../../content/applications/finance/accounting/taxes.rst:395 +msgid "Affect base of subsequent taxes" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:271 -msgid "1,000.00" +#: ../../content/applications/finance/accounting/taxes.rst:397 +msgid "If this setting is enabled, any subsequent tax applied on the same product line that has :ref:`taxes/base-affected` will be based on a modified sales price. The exact behavior depends on whether the tax with :guilabel:`Affect base of subsequent taxes` is :ref:`taxes/included-in-price` or not." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:275 -msgid "If you need to define prices accurately, both tax-included and tax-excluded, please refer to the following documentation: :doc:`taxes/B2B_B2C`." +#: ../../content/applications/finance/accounting/taxes.rst:404 +msgid "If :guilabel:`Included in Price` is disabled, subsequent taxes with :guilabel:`Base affected by preceding taxes` will be based on a modified sales price equal to the original sales price plus the tax amount." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:279 -msgid "By default, only the :guilabel:`Tax excluded` column is displayed on invoices. To display the :guilabel:`Tax included` column, click the **dropdown toggle** button and check :guilabel:`Tax incl.`." +#: ../../content/applications/finance/accounting/taxes.rst:409 +msgid "A product has a sales price of $1000, and we apply a 10% :guilabel:`Percentage of Price` tax with :guilabel:`Affect base of subsequent taxes`. Any subsequent tax with :guilabel:`Base affected by preceding taxes` will be based on a modified sales price of $1100." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:288 -msgid "Affect base of subsequent taxes" +#: ../../content/applications/finance/accounting/taxes.rst:415 +msgid "If :guilabel:`Included in Price` is enabled, subsequent taxes with :guilabel:`Base affected by preceding taxes` will be based on a modified sales price equal to the original sales price minus the tax amount." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:290 -msgid "With this option, the total tax-included becomes the taxable basis for the other taxes applied to the same product." +#: ../../content/applications/finance/accounting/taxes.rst:420 +msgid "A product has a sales price of $1100, and we apply a 10% :guilabel:`Percentage of Price` tax with :guilabel:`Included in Price` and :guilabel:`Affect base of subsequent taxes`. Any subsequent tax with :guilabel:`Base affected by preceding taxes` will be based on a modified sales price of $1000." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:293 -msgid "You can configure a new :ref:`group of taxes ` to include this tax or add it directly to a product line." +#: ../../content/applications/finance/accounting/taxes.rst:425 +msgid "This setting is considered any time multiple taxes are applied to the same product line, whether via a :ref:`group of taxes ` or multiple taxes added directly to a product line." msgstr "" #: ../../content/applications/finance/accounting/taxes.rst:-1 msgid "The eco-tax is taken into the basis of the 21% VAT tax" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:300 +#: ../../content/applications/finance/accounting/taxes.rst:432 msgid "The order in which you add the taxes on a product line has no effect on how amounts are computed. If you add taxes directly on a product line, only the tax sequence determines the order in which they are applied." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:304 +#: ../../content/applications/finance/accounting/taxes.rst:436 msgid "To reorder the sequence, go to :menuselection:`Accounting --> Configuration --> Taxes`, and drag and drop the lines with the handles next to the tax names." msgstr "" @@ -9314,27 +9450,39 @@ msgstr "" msgid "The taxes' sequence in Odoo determines which tax is applied first" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:311 +#: ../../content/applications/finance/accounting/taxes.rst:445 +msgid "Base affected by preceding taxes" +msgstr "" + +#: ../../content/applications/finance/accounting/taxes.rst:447 +msgid "This setting, which is only visible in :doc:`developer mode <../../general/developer_mode>`, determines whether any previous tax that :ref:`affects the base of subsequent taxes ` will modify the sales price that this tax is based on." +msgstr "" + +#: ../../content/applications/finance/accounting/taxes.rst:452 +msgid "Taxes with :ref:`Included in Price ` always behave as if this setting is enabled." +msgstr "" + +#: ../../content/applications/finance/accounting/taxes.rst:456 msgid "Extra taxes" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:313 +#: ../../content/applications/finance/accounting/taxes.rst:458 msgid "\"Extra taxes\" is a broad term referring to additional taxes beyond the standard or basic taxes imposed by governments. These extra taxes can be **luxury** taxes, **environmental** taxes, **import** or **export duties** taxes, etc." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:318 +#: ../../content/applications/finance/accounting/taxes.rst:463 msgid "The method to compute these taxes varies across different countries. We recommend consulting your country's regulations to understand how to calculate them for your business." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:321 -msgid "To compute an extra tax in Odoo, :ref:`create a tax `, enter a tax name, select a :ref:`Tax Computation `, set an :guilabel:`Amount`, and in the :guilabel:`Advanced Options` tab, check :guilabel:`Affect Base of Subsequent Taxes`. Then, drag and drop the taxes in the :ref:`order they should be computed `." +#: ../../content/applications/finance/accounting/taxes.rst:466 +msgid "To compute an extra tax in Odoo, :ref:`create a tax `, enter a tax name, select a :ref:`Tax Computation `, set an :guilabel:`Amount`, and in the :guilabel:`Advanced Options` tab, enable :guilabel:`Affect Base of Subsequent Taxes`. Then, drag and drop the taxes in the :ref:`order they should be computed `." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:327 +#: ../../content/applications/finance/accounting/taxes.rst:472 msgid "In Belgium, the formula to compute an environmental tax is: `(product price + environmental tax) x sales tax`. Therefore, our environmental tax has to come *before* the sales tax in the computation sequence." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:330 +#: ../../content/applications/finance/accounting/taxes.rst:475 msgid "In our case, we created a 5% environmental tax (Ecotax) and put it *before* the Belgian base tax of 21%." msgstr "" @@ -9342,19 +9490,19 @@ msgstr "" msgid "Environmental tax sequence in Belgium." msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:337 +#: ../../content/applications/finance/accounting/taxes.rst:482 msgid ":doc:`taxes/fiscal_positions`" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:338 +#: ../../content/applications/finance/accounting/taxes.rst:483 msgid ":doc:`taxes/B2B_B2C`" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:339 +#: ../../content/applications/finance/accounting/taxes.rst:484 msgid ":doc:`taxes/taxcloud`" msgstr "" -#: ../../content/applications/finance/accounting/taxes.rst:340 +#: ../../content/applications/finance/accounting/taxes.rst:485 msgid ":doc:`reporting/tax_returns`" msgstr "" @@ -18365,26 +18513,6 @@ msgstr "" msgid ":doc:`../accounting/payments/pay_checks`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/canada.rst:299 -msgid "Receive pre-authorized debits" -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/canada.rst:301 -msgid "Pre-authorized debits are a method for receiving payments from customers, where the customer authorizes the business to withdraw funds from their bank account on a recurring basis. This functionality is commonly used for subscriptions, recurring invoices, and other regular payments." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/canada.rst:305 -msgid "In the Odoo Canadian localization, pre-authorized debits are facilitated through an :doc:`integration with Stripe <../payment_providers/stripe>`." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/canada.rst:309 -msgid ":doc:`Setting up payment providers <../payment_providers>`" -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/canada.rst:310 -msgid "`Stripe's pre-authorized debit payments documentation `_" -msgstr "" - #: ../../content/applications/finance/fiscal_localizations/chile.rst:3 msgid "Chile" msgstr "" diff --git a/locale/sources/general.pot b/locale/sources/general.pot index 36239e0aa7..04b248b9c7 100644 --- a/locale/sources/general.pot +++ b/locale/sources/general.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo 17.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-16 14:19+0000\n" +"POT-Creation-Date: 2025-11-18 10:55+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -3243,7 +3243,7 @@ msgid "Log files for older dates are named using their dates and are compressed. msgstr "" #: ../../content/applications/general/email_communication/faq.rst:321 -msgid "For more information on logs and how to access them via the Odoo.sh dashboard, refer to the :ref:`Odoo.sh logs documentation `." +msgid "For more information on logs and how to access them via the Odoo.sh dashboard, refer to the :ref:`Odoo.sh logs documentation `." msgstr "" #: ../../content/applications/general/email_communication/faq.rst:324 @@ -6158,7 +6158,7 @@ msgid "In the :guilabel:`Update` popup that opens, click :guilabel:`Force Driver msgstr "" #: ../../content/applications/general/iot/iot_advanced/updating_iot.rst:82 -msgid "If you have an :doc:`on-premise ` or :doc:`Odoo.sh ` database, the configured server must be up-to-date to ensure the handlers' code includes the latest fixes and patches." +msgid "If you have an :doc:`on-premise ` or :doc:`Odoo.sh ` database, the configured server must be up-to-date to ensure the handlers' code includes the latest fixes and patches." msgstr "" #: ../../content/applications/general/iot/iot_advanced/updating_iot.rst:87 diff --git a/locale/sources/inventory_and_mrp.pot b/locale/sources/inventory_and_mrp.pot index 63e5843951..839c3a5a65 100644 --- a/locale/sources/inventory_and_mrp.pot +++ b/locale/sources/inventory_and_mrp.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo 17.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-16 14:19+0000\n" +"POT-Creation-Date: 2025-11-18 10:55+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -11701,7 +11701,7 @@ msgid "Sendcloud is a shipping service aggregator that facilitates the integrati msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:10 -msgid "`Sendcloud integration documentation `_" +msgid "`Sendcloud integration documentation `_" msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:14 @@ -11713,23 +11713,23 @@ msgid "Create an account and activate carriers" msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:19 -msgid "To get started, go to `Sendcloud's platform `_ to configure the account and generate the connector credentials. Log in with the Sendcloud account, or create a new one if needed." +msgid "To get started, go to `Sendcloud's platform `_ to configure the account and generate the connector credentials. Log in with the Sendcloud account, or create a new one if needed." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:24 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:25 msgid "For new account creation, Sendcloud will ask for a :abbr:`VAT (Value-Added Tax Identification)` number or :abbr:`EORI (Economic Operators' Registration and Identification)` number. After completing the account setup, activate (or deactivate) the shipping carriers that will be used in the Odoo database." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:30 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:31 msgid "Odoo integration of Sendcloud works on free Sendcloud plans *only* if a bank account is linked, since Sendcloud won't ship for free. To use shipping rules, or individual custom carrier contacts, a paid plan of Sendcloud is **required**." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:37 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:38 #: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/third_party_shipper.rst:183 msgid "Warehouse configuration" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:39 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:40 msgid "Once logged into the Sendcloud account, navigate to :menuselection:`Settings --> Shipping --> Addresses`, and fill in the field for :guilabel:`Warehouse address`." msgstr "" @@ -11737,7 +11737,7 @@ msgstr "" msgid "Adding addresses in the Sendcloud settings." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:46 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:47 msgid "To allow Sendcloud to process returns as well, a :guilabel:`Return Address` is required. Under the :guilabel:`Miscellaneous section`, there is a field called :guilabel:`Address Name (optional)`. The Odoo warehouse name should be entered here, and the characters should be exactly the same." msgstr "" @@ -11777,23 +11777,23 @@ msgstr "" msgid ":guilabel:`Address`: `My Company (San Francisco)`" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:63 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:64 msgid "Notice how the inputs for the :guilabel:`Warehouse` field, for both the Odoo configuration and the Sendcloud configuration, are the exact same." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:67 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:68 msgid "Generate Sendcloud credentials" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:69 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:70 msgid "In the Sendcloud account, navigate to :menuselection:`Settings --> Integrations` in the menu on the right. Next, search for :guilabel:`Odoo Native`. Then, click on :guilabel:`Connect`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:72 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:73 msgid "After clicking on :guilabel:`Connect`, the page redirects to the :guilabel:`Sendcloud API` settings page, where the :guilabel:`Public and Secret Keys` are produced. The next step is to name the :guilabel:`Integration`. The naming convention is as follows: `Odoo CompanyName`, with the user's company name replacing `CompanyName` (e.g. `Odoo StealthyWood`)." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:77 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:78 msgid "Then, check the box next to :guilabel:`Service Points` and select the shipping services for this integration. After saving, the :guilabel:`Public and Secret Keys` are generated." msgstr "" @@ -11801,25 +11801,25 @@ msgstr "" msgid "Configuring the Sendcloud integration and receiving the credentials." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:85 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:86 #: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/starshipit_shipping.rst:90 #: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/ups_credentials.rst:158 msgid "Setup in Odoo" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:87 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:88 msgid "To ensure seamless Sendcloud integration with Odoo, :ref:`install ` and :ref:`link ` the Sendcloud shipping connector to the Sendcloud account. Then, :ref:`configure Odoo fields `, so Sendcloud can accurately pull shipping data to generate labels." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:95 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:96 msgid ":ref:`Enable pickup points on websites `" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:100 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:101 msgid "Install Sendcloud shipping module" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:102 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:103 msgid "After the Sendcloud account is set up and configured, it's time to configure the Odoo database. To get started, go to Odoo's :guilabel:`Apps` module, search for the `Sendcloud Shipping` integration, and install it." msgstr "" @@ -11827,88 +11827,88 @@ msgstr "" msgid "Sendcloud Shipping module in the Odoo Apps module." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:113 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:114 msgid "Sendcloud shipping connector configuration" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:115 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:116 msgid "Once installed, activate the :guilabel:`Sendcloud Shipping` module in :menuselection:`Inventory --> Configuration --> Settings`. The :guilabel:`Sendcloud Connector` setting is found under the :guilabel:`Shipping Connectors` section." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:119 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:120 msgid "After activating the :guilabel:`Sendcloud Connector`, click on the :guilabel:`Sendcloud Shipping Methods` link below the listed connector. Once on the :guilabel:`Shipping Methods` page, click :guilabel:`New`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:124 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:125 #: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/starshipit_shipping.rst:115 msgid ":guilabel:`Shipping Methods` can also be accessed by going to :menuselection:`Inventory --> Configuration --> Delivery --> Shipping Methods`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:127 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:128 msgid "Fill out the following fields in the :guilabel:`New Shipping Method` form:" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:129 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:130 msgid ":guilabel:`Shipping Method`: type `Sendcloud DPD`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:130 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:131 msgid ":guilabel:`Provider`: select :guilabel:`Sendcloud` from the drop-down menu." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:131 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:132 msgid ":guilabel:`Delivery Product`: set the product that was configured for this shipping method or create a new product." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:133 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:134 msgid "In the :guilabel:`SendCloud Configuration` tab, enter the :guilabel:`Sendcloud Public Key`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:134 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:135 msgid "In the :guilabel:`SendCloud Configuration` tab, enter the :guilabel:`Sendcloud Secret Key`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:139 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:140 msgid "Pickup points" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:141 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:142 msgid "Sendcloud's `service point delivery `_ lets customers choose a pickup location (such as a nearby shop or locker) instead of entering a private delivery address." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:146 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:147 msgid "To enable the feature, go to the shipping method form, and in the :guilabel:`SendCloud Configuration` tab, under the :guilabel:`Options` section, enable :guilabel:`Use Sendcloud Locations` feature." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:151 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:152 msgid "Pickup point selection is only available through the **Website** app (the online checkout view). It is not currently possible to select a pickup point manually through the **Sales** app (the internal database view)." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:155 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:156 msgid "For example, if the customer selects a shipping method like *Sendcloud Mondial Relay*, they must choose a pickup point during the checkout process on the website. If no pickup point is selected, the delivery order cannot be validated in Odoo." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:160 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:161 msgid "Load shipping products" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:162 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:163 msgid "After configuring and saving the form, follow these steps to load the shipping products:" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:164 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:165 msgid "In the :guilabel:`SendCloud Configuration` tab of the :guilabel:`New Shipping Method` form, click on the :guilabel:`Load your SendCloud shipping products` link." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:166 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:167 msgid "Select the shipping products the company would like to use for deliveries and returns." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:167 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:168 msgid "Click :guilabel:`Select`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:170 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:171 msgid "Sample Sendcloud shipping products configured in Odoo:" msgstr "" @@ -11932,7 +11932,7 @@ msgstr "" msgid ":guilabel:`Maximum Weight`: `31.50`" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:178 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:179 msgid ":guilabel:`Countries`: `Austria` `Belgium` `Bosnia` `Herzegovina` `Bulgaria` `Croatia` `Czech` `Republic` `Denmark` `Estonia` `Finland` `France` `Germany` `Greece` `Hungary` `Iceland` `Ireland` `Italy` `Latvia` `Liechtenstein` `Lithuania` `Luxembourg` `Monaco` `Netherlands` `Norway` `Poland` `Portugal` `Romania` `Serbia` `Slovakia` `Slovenia` `Spain` `Sweden` `Switzerland`" msgstr "" @@ -11965,64 +11965,64 @@ msgstr "" msgid "Example of shipping products configured in Odoo." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:196 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:197 msgid "Sendcloud does not provide test keys when a company tests the sending of a package in Odoo. This means if a package is created, the configured Sendcloud account will be charged, unless the associated package is canceled within 24 hours of creation." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:200 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:201 msgid "Odoo has a built-in layer of protection against unwanted charges when using test environments. Within a test environment, if a shipping method is used to create labels, then those labels are immediately canceled after the creation — this occurs automatically. The test and production environment settings can be toggled back and forth from their respective smart buttons." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:208 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:209 msgid "Shipping information" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:210 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:211 msgid "To use Sendcloud to generate shipping labels, the following information **must** be filled out accurately and completely in Odoo:" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:213 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:214 msgid "**Customer information**: when creating a quotation, ensure the selected :guilabel:`Customer` has a valid phone number, email address, and shipping address." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:216 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:217 msgid "To verify, select the :guilabel:`Customer` field to open their contact page. Here, add their shipping address in the :guilabel:`Contact` field, along with their :guilabel:`Mobile` number and :guilabel:`Email` address." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:220 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:221 msgid "**Product weight**: ensure all products in an order have a specified :guilabel:`Weight` in the :guilabel:`Inventory` tab of their product form. Refer to the :ref:`Product weight section ` of this article for detailed instructions." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:224 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:225 msgid "**Warehouse address**: ensure the warehouse name and address in Odoo match the :ref:`previously defined warehouse ` in the Sendcloud setup. For details on warehouse configuration in Odoo, refer to the :ref:`warehouse configuration section ` of the third-party shipping documentation." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:231 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:232 msgid "Generate labels with Sendcloud" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:233 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:234 msgid "When creating a quotation in Odoo, add shipping and a :guilabel:`Sendcloud shipping product`. Then, :guilabel:`Validate` the delivery. Shipping label documents are automatically generated in the chatter, which include the following:" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:237 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:238 #: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/starshipit_shipping.rst:205 msgid ":guilabel:`Shipping label(s)` depending on the number of packages." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:238 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:239 msgid ":guilabel:`Return label(s)` if the Sendcloud connector is configured for returns." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:239 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:240 msgid ":guilabel:`Customs document(s)` should the destination country require them." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:241 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:242 msgid "Additionally, the tracking number is now available." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:244 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:245 msgid "When return labels are created, Sendcloud automatically charges the configured Sendcloud account." msgstr "" @@ -12063,7 +12063,7 @@ msgid "In the :guilabel:`Actions` section, set a :guilabel:`Condition` to determ msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:280 -msgid "`Create shipping rules on Sendcloud `_" +msgid "`Create shipping rules on Sendcloud `_" msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping.rst:284 diff --git a/locale/sources/sales.pot b/locale/sources/sales.pot index 9775906cf0..352bfb9be3 100644 --- a/locale/sources/sales.pot +++ b/locale/sources/sales.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo 17.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-16 14:19+0000\n" +"POT-Creation-Date: 2025-11-18 10:55+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -8820,6 +8820,7 @@ msgid "The :guilabel:`Online Payment` feature is not supported." msgstr "" #: ../../content/applications/sales/point_of_sale/self_order.rst:116 +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:89 msgid ":doc:`../../finance/payment_providers`" msgstr "" @@ -15592,7 +15593,7 @@ msgstr "" #: ../../content/applications/sales/sales/send_quotations/create_quotations.rst:326 #: ../../content/applications/sales/sales/send_quotations/get_paid_to_validate.rst:89 -#: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:77 +#: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:85 #: ../../content/applications/sales/sales/send_quotations/optional_products.rst:99 msgid ":doc:`quote_template`" msgstr "" @@ -15608,7 +15609,7 @@ msgid ":doc:`get_signature_to_validate`" msgstr "" #: ../../content/applications/sales/sales/send_quotations/create_quotations.rst:329 -#: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:78 +#: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:86 #: ../../content/applications/sales/sales/send_quotations/quote_template.rst:275 msgid ":doc:`get_paid_to_validate`" msgstr "" @@ -15888,7 +15889,7 @@ msgid "Online signatures for order confirmations" msgstr "" #: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:5 -msgid "The Odoo *Sales* application provides customers with the ability to confirm orders, via an online signature, directly on the sales order. Once the sales order is electronically signed by the customer, the salesperson attached to the sales order is instantly notified that the order is confirmed." +msgid "The Odoo **Sales** application provides customers with the ability to confirm orders, via an online signature, directly on the sales order. Once the sales order is electronically signed by the customer, the salesperson attached to the sales order is instantly notified that the order is confirmed." msgstr "" #: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:11 @@ -15907,11 +15908,11 @@ msgstr "" msgid "The Online Signature feature option in the Settings of the Odoo Sales application." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:24 +#: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:23 msgid "Then, click the :guilabel:`Save` button in the top-left corner." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:27 +#: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:26 msgid "When making a quotation template, the online signature feature is the :guilabel:`Signature` option, located in the :guilabel:`Online confirmation` field of the quotation template form." msgstr "" @@ -15919,7 +15920,7 @@ msgstr "" msgid "The Online confirmation signature option found on every quotation template in Odoo." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:34 +#: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:32 msgid "On standard quotations, the online signature feature is the :guilabel:`Signature` option, located under the :guilabel:`Other Info` tab of the quotation form." msgstr "" @@ -15927,11 +15928,11 @@ msgstr "" msgid "The online signature feature option in the Other Info tab of a quotation form in Odoo." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:42 +#: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:39 msgid "Order confirmations with online signatures" msgstr "" -#: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:44 +#: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:41 msgid "When clients access quotations online through their customer portal, there's a :guilabel:`Sign \\& Pay` button directly on the quotation." msgstr "" @@ -15939,7 +15940,7 @@ msgstr "" msgid "The Sign and Pay button present on online quotations in Odoo Sales." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:51 +#: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:47 msgid "When clicked, a :guilabel:`Validate Order` pop-up window appears. In this pop-up window, the :guilabel:`Full Name` field is auto-populated, based on the contact information in the database." msgstr "" @@ -15947,24 +15948,40 @@ msgstr "" msgid "The Validate Order pop-up window for online signatures in Odoo Sales." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:58 +#: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:53 msgid "Then, customers have the option to enter an online signature with any of the following options: :guilabel:`Auto`, :guilabel:`Draw`, or :guilabel:`Load`." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:61 +#: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:56 msgid ":guilabel:`Auto` lets Odoo automatically generate an online signature based on the information in the :guilabel:`Full Name` field. :guilabel:`Draw` lets the customer use the cursor to create a custom signature directly on the pop-up window. And :guilabel:`Load` lets the customer upload a previously-created signature file from their computer." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:66 +#: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:61 msgid "After the customer has chosen any of the three previously mentioned signature options (:guilabel:`Auto`, :guilabel:`Draw`, or :guilabel:`Load`), they will click the :guilabel:`Accept \\& Sign` button." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:70 +#: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:65 msgid "When :guilabel:`Accept \\& Sign` is clicked, the various payment method options become available for them to choose from (if the *online payment* option applies to this quotation)." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:73 -msgid "Then, when the quotation is paid and confirmed, a delivery order is automatically created (if the Odoo *Inventory* app is installed)." +#: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:68 +msgid "Then, when the quotation is paid and confirmed, a delivery order is automatically created (if the Odoo **Inventory** app is installed)." +msgstr "" + +#: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:72 +msgid "View online signatures in Developer Mode" +msgstr "" + +#: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:74 +msgid "Clients can view the online signature in :ref:`developer mode `." +msgstr "" + +#: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:76 +msgid "To view a online signature from a paid invoice, go to :menuselection:`Sales app --> Orders --> Orders` and select the desired sales order. A new tab, :guilabel:`Customer Signature`, is available. Click the tab to view the electronic signature as well as the :guilabel:`Signed By` and :guilabel:`Signed On` information." +msgstr "" + +#: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:-1 +msgid "The Customer Signature tab on a sales order when in Developer Mode." msgstr "" #: ../../content/applications/sales/sales/send_quotations/optional_products.rst:3 @@ -16955,63 +16972,67 @@ msgstr "" msgid ":guilabel:`Sales Price`: enter the recurring cost of the subscription that the customer will pay per recurrence period." msgstr "" -#: ../../content/applications/sales/subscriptions.rst:185 +#: ../../content/applications/sales/subscriptions.rst:186 +msgid "When creating a subscription for a physical good, selecting the wrong :guilabel:`Invoicing Policy` will lead to errors when creating invoices. Physical products must be set to :guilabel:`Ordered quantities`." +msgstr "" + +#: ../../content/applications/sales/subscriptions.rst:190 msgid "Optionally set up information on the :doc:`Attributes & Variants ` tab if the subscription contains multiple choices for customers (i.e. food delivery, tailored fashion boxes, etc.)." msgstr "" -#: ../../content/applications/sales/subscriptions.rst:189 +#: ../../content/applications/sales/subscriptions.rst:194 msgid "In the :guilabel:`Recurring Prices` tab, clarify the pricing options for the subscription. For each option available, click :guilabel:`Add a price rule` to add a new row." msgstr "" -#: ../../content/applications/sales/subscriptions.rst:193 +#: ../../content/applications/sales/subscriptions.rst:198 msgid "Longer time :guilabel:`Recurring Plan` time periods are typically incentivized with cost savings. Consider dropping the total :guilabel:`Recurring Price` values to offer customers a discount while supporting the business's financial runway." msgstr "" -#: ../../content/applications/sales/subscriptions.rst:197 +#: ../../content/applications/sales/subscriptions.rst:202 msgid "Last, if the subscription is meant to be purchased on the **eCommerce** website, click the :icon:`fa-globe` :menuselection:`Go To Website` smart button and in the product page header, click the gray slider from :guilabel:`Unpublished` to the green :guilabel:`Published` status." msgstr "" -#: ../../content/applications/sales/subscriptions.rst:204 +#: ../../content/applications/sales/subscriptions.rst:209 msgid "Create a subscriptions quotation" msgstr "" -#: ../../content/applications/sales/subscriptions.rst:206 +#: ../../content/applications/sales/subscriptions.rst:211 msgid "Manually create a new customer subscription by navigating to either the :menuselection:`Sales` or :menuselection:`Subscriptions` app dashboards, and then clicking :guilabel:`New`." msgstr "" -#: ../../content/applications/sales/subscriptions.rst:210 +#: ../../content/applications/sales/subscriptions.rst:215 msgid "Products that have been marked as :guilabel:`Recurring` on their product forms, and are also sold on the **eCommerce** website will *automatically* create and confirm subscription quotations in the backend of Odoo." msgstr "" -#: ../../content/applications/sales/subscriptions.rst:215 +#: ../../content/applications/sales/subscriptions.rst:220 msgid "Sales orders with a defined recurring plan automatically become subscriptions." msgstr "" -#: ../../content/applications/sales/subscriptions.rst:217 +#: ../../content/applications/sales/subscriptions.rst:222 msgid "On the quotation form, fill in the necessary fields such as :guilabel:`Customer` and :guilabel:`Recurring Plan`, as well as the :guilabel:`Order Lines` tab." msgstr "" -#: ../../content/applications/sales/subscriptions.rst:220 +#: ../../content/applications/sales/subscriptions.rst:225 msgid "Optionally, specify a:" msgstr "" -#: ../../content/applications/sales/subscriptions.rst:222 +#: ../../content/applications/sales/subscriptions.rst:227 msgid ":doc:`Quotation Template `, if one is readily available to help populate the form fields." msgstr "" -#: ../../content/applications/sales/subscriptions.rst:224 +#: ../../content/applications/sales/subscriptions.rst:229 msgid ":guilabel:`Expiration` date, to indicate when the subscription offer is no longer valid." msgstr "" -#: ../../content/applications/sales/subscriptions.rst:227 +#: ../../content/applications/sales/subscriptions.rst:232 msgid "Expiration dates pair well with :ref:`discounts ` to incentivize faster purchases, since the discount will expire with the quotation if it's not turned into a sales order within the specified date range." msgstr "" -#: ../../content/applications/sales/subscriptions.rst:231 +#: ../../content/applications/sales/subscriptions.rst:236 msgid ":ref:`Pricelist `, if one is available and appropriate to use (i.e., summer sale discount, VIP customer, etc.)." msgstr "" -#: ../../content/applications/sales/subscriptions.rst:233 +#: ../../content/applications/sales/subscriptions.rst:238 msgid ":guilabel:`Payment Terms`, to set a specified time window for when the subscription must be paid. This is not to be confused for when the quotation is *confirmed* and becomes a sales order, to where, payment may then be obtained immediately or within a certain amount of days, weeks, months, etc." msgstr "" @@ -17019,31 +17040,31 @@ msgstr "" msgid "A completed example of a new subscription quotation in Odoo." msgstr "" -#: ../../content/applications/sales/subscriptions.rst:242 +#: ../../content/applications/sales/subscriptions.rst:247 msgid "Define different invoice and delivery addresses by enabling the :doc:`Customer Addresses ` feature." msgstr "" -#: ../../content/applications/sales/subscriptions.rst:248 +#: ../../content/applications/sales/subscriptions.rst:253 msgid "Confirmation" msgstr "" -#: ../../content/applications/sales/subscriptions.rst:250 +#: ../../content/applications/sales/subscriptions.rst:255 msgid "Send the quotation to the customer for confirmation by clicking on :guilabel:`Send By Email`, or confirm it immediately by clicking on :guilabel:`Confirm`." msgstr "" -#: ../../content/applications/sales/subscriptions.rst:254 +#: ../../content/applications/sales/subscriptions.rst:259 msgid "Click on :guilabel:`Preview` to preview the customer portal where the customer can view their quotation, sign and pay it, and communicate with you." msgstr "" -#: ../../content/applications/sales/subscriptions.rst:257 +#: ../../content/applications/sales/subscriptions.rst:262 msgid "If an :guilabel:`Online signature` or :guilabel:`Online payment` is required to confirm the quotation, set the checkboxes next to either (or both) of these labels in the :guilabel:`Other Info` tab, under the ::guilabel:`SALES` section." msgstr "" -#: ../../content/applications/sales/subscriptions.rst:262 +#: ../../content/applications/sales/subscriptions.rst:267 msgid ":doc:`/applications/finance/accounting/payments/online`" msgstr "" -#: ../../content/applications/sales/subscriptions.rst:263 +#: ../../content/applications/sales/subscriptions.rst:268 msgid ":doc:`Payment providers and payment methods `" msgstr "" @@ -17281,7 +17302,7 @@ msgstr "" #: ../../content/applications/sales/subscriptions/automatic_alerts.rst:166 #: ../../content/applications/sales/subscriptions/closing.rst:103 -#: ../../content/applications/sales/subscriptions/renewals.rst:128 +#: ../../content/applications/sales/subscriptions/renewals.rst:96 #: ../../content/applications/sales/subscriptions/reports.rst:403 #: ../../content/applications/sales/subscriptions/scheduled_actions.rst:186 #: ../../content/applications/sales/subscriptions/upselling.rst:107 @@ -17292,6 +17313,134 @@ msgstr "" msgid ":doc:`../../essentials/in_app_purchase`" msgstr "" +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:3 +msgid "Subscriptions and automatic payments" +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:5 +msgid "By default, the **Subscriptions** app will automatically generate quotations and invoices for customers, but it can also support automatic payments. Setting up automatic payments requires additional configuration, including choosing an automatic payment provider and either setting up a customer portal or an **eCommerce** website. Here's an overview of how to get started." +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:11 +msgid "Setting up a payment processor that supports automatic payments" +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:13 +msgid "Setting up automatic recurring payments requires using a payment provider that supports tokenization. Tokenization lets customers save their payment details, such as credit card or banking account information, for automatic billing. The following payment providers support tokenization:" +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:17 +msgid ":doc:`Adyen <../../finance/payment_providers/adyen>`" +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:18 +msgid ":doc:`Authorize.net <../../finance/payment_providers/authorize>`" +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:19 +msgid ":doc:`Flutterwave <../../finance/payment_providers/flutterwave>`" +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:20 +msgid ":doc:`Razorpay <../../finance/payment_providers/razorpay>`" +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:21 +msgid ":doc:`Stripe <../../finance/payment_providers/stripe>`" +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:22 +msgid ":doc:`Xendit <../../finance/payment_providers/xendit>`" +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:24 +msgid "Here are the steps to setting up automatic payments." +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:26 +msgid "Choose a payment provider that supports tokenization." +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:27 +msgid "Follow the provider's own setup guide to create an account and begin configuring their API credentials in Odoo." +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:29 +msgid ":ref:`Enable ` the payment provider." +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:30 +msgid ":ref:`Configure the payment methods ` for the chosen payment provider." +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:32 +msgid ":ref:`Configure the tokenization ` for the chosen payment provider." +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:36 +msgid "How customers can set up automatic payments" +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:38 +msgid "Once these steps are complete, payment providers will be able to create tokens with customers' saved payment details during the checkout process. Saved payment details can then be used for future online or recurring subscription charges. Customers will also be able to log into their :doc:`customer portal <../../general/users/portal>` and enter their payment information there." +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:43 +msgid "Some payment providers will automatically save customers' payment information as part of the checkout process. Others will give them the option to save their information for future payments. If customers choose not to save their payment information, they will not be able to make automatic payments." +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:49 +msgid "Building an **eCommerce** website requires the :doc:`Website <../../websites/website>` app." +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:52 +msgid "What happens if an automatic payment fails?" +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:54 +msgid "When an automatic payment fails, the sales order is updated with:" +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:56 +msgid "a :guilabel:`Payment Failure` tag" +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:57 +msgid "the :guilabel:`Contract in exception` checkbox ticked (in the :guilabel:`Subscription` section of the :guilabel:`Other Info` tab)." +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:60 +msgid "Being marked :guilabel:`Contract in exception` prevents scheduled actions from running, which keeps the system from accidentally double-charging the customer if the automatic payment actually went through. Because the status of the payment failed to register with the system, users must manually check if the payment has been made before automatic payments and other scheduled actions can resume." +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:65 +msgid "To do this, navigate to :menuselection:`Subscriptions app --> Subscriptions --> Quotations`. Click into the desired subscription, then check the Chatter to see if the payment was made." +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:68 +msgid "If the payment *was not* made, first enter :doc:`developer mode <../../general/developer_mode>`. Then, click the :guilabel:`Other Info` tab, and untick the checkbox next to :guilabel:`Contract in exception`. Reload the sales order and confirm that the :guilabel:`Payment Failure` tag is gone." +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:72 +msgid "If the payment *was* made, a new invoice must be made and posted manually. This automatically updates the next invoice date of the subscription. Once the invoice is created, enter :doc:`developer mode <../../general/developer_mode>` and navigate to the new sales order. Click the :guilabel:`Other Info` tab, and untick the checkbox next to :guilabel:`Contract in exception`. Reload the sales order and confirm that the :guilabel:`Payment Failure` tag is gone." +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:-1 +msgid "The contract in exception option selected with the payment failure tag shown." +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:81 +msgid "The :guilabel:`Contract in exception` option selected with the :guilabel:`Payment Failure` tag shown." +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:84 +msgid "In both cases, once the :guilabel:`Contract in exception` checkbox is no longer ticked, Odoo handles renewals automatically again. If the subscription remains in :guilabel:`Payment Failure`, it is ignored by Odoo until the sales order is closed." +msgstr "" + +#: ../../content/applications/sales/subscriptions/automatic_payments.rst:90 +msgid ":doc:`../../general/users/portal`" +msgstr "" + #: ../../content/applications/sales/subscriptions/closing.rst:3 msgid "Close subscriptions" msgstr "" @@ -17574,38 +17723,6 @@ msgstr "" msgid "When clicked, Odoo reveals an :guilabel:`MRR Analysis` page, detailing the monthly recurring revenue related to this specific subscription." msgstr "" -#: ../../content/applications/sales/subscriptions/renewals.rst:96 -msgid "On rare occasions, automatic payment can fail, which results in a *Payment Failure* tag on the top-right of the sales order, if there is an error in the payment method." -msgstr "" - -#: ../../content/applications/sales/subscriptions/renewals.rst:99 -msgid "This is done to prevent the system from charging the customer again the next time a scheduled action is run. Because the status of the payment is unknown, Odoo requests a manual operation to check if the payment has been made, before the payment can be used again." -msgstr "" - -#: ../../content/applications/sales/subscriptions/renewals.rst:103 -msgid "To do this, navigate to :menuselection:`Subscriptions app --> Subscriptions --> Quotations`. Click into the desired subscription, then check the *Chatter* to see if the payment was made." -msgstr "" - -#: ../../content/applications/sales/subscriptions/renewals.rst:106 -msgid "If the payment was **not** made, first enter :doc:`debug mode <../../general/developer_mode>`. Then, click the :guilabel:`Other Info` tab, and untick the checkbox next to :guilabel:`Contract in exception`. Reload the sales order, and the :guilabel:`Payment Failure` tag is gone." -msgstr "" - -#: ../../content/applications/sales/subscriptions/renewals.rst:110 -msgid "If the payment **was** made, a new invoice must be made and posted manually. This automatically updates the next invoice date of the subscription. Once created, enter :doc:`debug mode <../../general/developer_mode>`, and navigate to the new sales order. Click the :guilabel:`Other Info` tab, and untick the checkbox next to :guilabel:`Contract in exception`. Reload the sales order, and the :guilabel:`Payment Failure` tag is gone." -msgstr "" - -#: ../../content/applications/sales/subscriptions/renewals.rst:0 -msgid "The \"contract in exception\" option selected with the \"payment failure\" tag shown." -msgstr "" - -#: ../../content/applications/sales/subscriptions/renewals.rst:120 -msgid "The :guilabel:`contract in exception`` option selected with the :guilabel:`payment failure` tag shown." -msgstr "" - -#: ../../content/applications/sales/subscriptions/renewals.rst:123 -msgid "In both cases, once the :guilabel:`Contract in exception` option is no longer selected, Odoo handles renewals automatically again. If the subscription remains in *payment failure*, it is skipped by Odoo until the sales order is closed." -msgstr "" - #: ../../content/applications/sales/subscriptions/reports.rst:3 msgid "Subscription reports" msgstr "" diff --git a/locale/sources/websites.pot b/locale/sources/websites.pot index 33fcfee1a6..b8559e160a 100644 --- a/locale/sources/websites.pot +++ b/locale/sources/websites.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo 17.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-16 14:19+0000\n" +"POT-Creation-Date: 2025-11-18 10:55+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -5135,7 +5135,7 @@ msgid "Mapping a domain name to an Odoo.sh branch" msgstr "" #: ../../content/applications/websites/website/configuration/domain_names.rst:366 -msgid ":ref:`Odoo.sh branches: settings tab `" +msgid ":ref:`Odoo.sh branches: settings tab `" msgstr "" #: ../../content/applications/websites/website/configuration/domain_names.rst:371