From 3337ffa6c72a2dd016f063bf543adda521718f17 Mon Sep 17 00:00:00 2001 From: "Tom Aarab (toaa)" Date: Fri, 9 Dec 2022 10:38:52 +0000 Subject: [PATCH] [IMP] odoo.sh: Python libraries and packages Added a note on packages and extensions support closes odoo/documentation#3184 Taskid: 2836438 X-original-commit: b1f92ba879096347435084a984817ac7148a7eac Signed-off-by: Aarab Tom (toaa) --- .../odoo_sh/getting_started/first_module.rst | 79 +++++++++++-------- 1 file changed, 47 insertions(+), 32 deletions(-) diff --git a/content/administration/odoo_sh/getting_started/first_module.rst b/content/administration/odoo_sh/getting_started/first_module.rst index 848c2ddcf..1df62e458 100644 --- a/content/administration/odoo_sh/getting_started/first_module.rst +++ b/content/administration/odoo_sh/getting_started/first_module.rst @@ -1,14 +1,14 @@ - -================================== +================= Your first module -================================== +================= Overview ======== This chapter helps you to create your first Odoo module and deploy it in your Odoo.sh project. -This tutorial requires :ref:`you created a project on Odoo.sh `, and you know your Github repository's URL. +This tutorial requires :ref:`you created a project on Odoo.sh `, and +you know your Github repository's URL. Basic use of Git and Github is explained. @@ -95,8 +95,8 @@ Or, from your computer, if you have an :ref:`installation of Odoo ` in which you replace every occurrences of -*my_module* to the name of your choice. +you can also :download:`download this module structure template ` in +which you replace every occurrences of *my_module* to the name of your choice. The below structure will be generated: @@ -121,9 +121,9 @@ The below structure will be generated: .. Warning:: - 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. + 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. Uncomment the content of the files: @@ -180,8 +180,8 @@ The above command is explained in the section ` 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. +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. Or, from your computer terminal: @@ -217,7 +217,8 @@ Once the database ready, you can access it by clicking the *Connect* button. :align: center 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. +you will directly see it amongst the database apps. Otherwise, it will be available in the apps to +install. You can then play around with your module, create new records and test your features and buttons. @@ -232,7 +233,8 @@ you can test it with the production data using a staging branch. You can either: -* Make your development branch a staging branch, by drag and dropping it onto the *staging* section title. +* Make your development branch a staging branch, by drag and dropping it onto the *staging* section + title. .. image:: first_module/firstmodule-test-devtostaging.png :align: center @@ -244,8 +246,8 @@ You can either: You can also use the :code:`git merge` command to merge your branches. -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. +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. .. image:: first_module/firstmodule-test-mergedinstaging.png :align: center @@ -257,11 +259,13 @@ Once the database ready, you can access it using the *Connect* button. Install your module ------------------- -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. +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. -Your module may not appear directly in your apps to install either, you need to update your apps list first: +Your module may not appear directly in your apps to install either, you need to update your apps +list first: * Activate the :ref:`developer mode ` * in the apps menu, click the *Update Apps List* button, @@ -307,14 +311,16 @@ you have to install it manually as explained in the Add a change ============ -This section explains how to add a change in your module by adding a new field in a model and deploy it. +This section explains how to add a change in your module by adding a new field in a model and deploy +it. From the Odoo.sh editor, * browse to your module folder *~/src/user/my_module*, * then, open the file *models/models.py*. Or, from your computer, - * use the file browser of your choice to browse to your module folder *~/src/odoo-addons/my_module*, + * use the file browser of your choice to browse to your module folder + *~/src/odoo-addons/my_module*, * then, open the file *models/models.py* using the editor of your choice, such as *Atom*, *Sublime Text*, *PyCharm*, *vim*, ... @@ -350,8 +356,8 @@ and modify a view stored in database. In order to be applied in existing databases, such as your production database, these changes requires the module to be updated. -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. +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. Open the module manifest *__manifest__.py*. @@ -367,7 +373,8 @@ with 'version': '0.2', -The platform will detect the change of version and trigger the update of the module upon the new revision deployment. +The platform will detect the change of version and trigger the update of the module upon the new +revision deployment. Browse to your Git folder. @@ -414,10 +421,10 @@ The platform will then create a new build for the branch *feature-1*. .. image:: first_module/firstmodule-test-addachange-build.png :align: center -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. +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. Use an external Python library ============================== @@ -425,10 +432,18 @@ Use an external Python library 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. +.. note:: + - 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**. + - **PostgreSQL extensions** are not supported on Odoo.sh. + - For more information, consult our `FAQ `_. + The platform will use this file to automatically install the Python libraries your project needs. -The feature is explained in this section by using the `Unidecode library `_ in -your module. +The feature is explained in this section by using the `Unidecode library +`_ in your module. Create a file *requirements.txt* in the root folder of your repository @@ -442,8 +457,8 @@ Add unidecode -Then use the library in your module, for instance to remove accents from characters in the name field of your -model. +Then use the library in your module, for instance to remove accents from characters in the name +field of your model. Open the file *models/models.py*.