Installer un module Odoo "à la main" avec JustOdooIt
=
[TOC]
:::danger
Ce tutoriel correspond à la procédure mise en place dans la SCOP Elabore, et nécessite un minimum de compréhension du fonctionnement de la suite JustOdooIt. Si le fichier `compose.yml` ne vous dit rien, contactez les experts JustOdooIt pour plus d'informations.
:::
---
## Contexte
Installer sur une instance Odoo d'un module qui n'est pas proposé par défaut dans l'image Docker de Odoo.
Il y a plusieurs scénario d'installation selon les/les modules à disposition, et si une intégration avec Git est souhaitée :
1. répertoire du **module seul**, intégrer **sans Git**
2. répertoire du **module seul**, à intégrer **via Git**
3. répertoire d'un **ensemble de modules**, à intégrer **sans Git**
4. répertoire d'un **ensemble de modules**, à intégrer **via Git**
---
## Scénario 1 : Répertoire du module SEUL à intégrer SANS Git
1. récupérer le module : il s'agit d'un répertoire au nom du module, contenant son code.
:::warning
**Point d'attention :** vérifier bien dans le fichier `__manifest__.py` que la version du module correspond bien à la version de votre instance Odoo. Dans le cas contraire, celui-ci ne s'affichera pas sur la vue d'installation des modules.
:::
2. Envoyer le module sur le serveur, à l'emplacement `/srv/datastore/data/{SERVICE_ODOO}/var/lib/odoo/addons/{VERSION}/`, avec :
* {SERVICE_ODOO} : nom du charm en cours d'execution. Il s'agit du mot sur la première ligne du bloc de config correspondant dans le fichier `/opt/apps/myc-deploy/compose.yml`.
* {VERSION} : la version du Odoo (ex: `12.0`, `14.0`)
Commande de copie SSH (scp) depuis un PC:
```
scp -r mon_module/ root@monserveur.org:/srv/datastore/data/{SERVICE_ODOO}/var/lib/odoo/addons/{VERSION}/.
```
---
## Scénario 2 : Répertoire du module SEUL à intégrer AVEC Git
1. récupérer l'adresse https du répertoire git du module (`{ADRESSE_HTTPS_GIT}` plus loin)
2. Sur le serveur, aller à l'emplacement `/srv/datastore/data/{SERVICE_ODOO}/var/lib/odoo/addons/{VERSION}/`, avec :
* {SERVICE_ODOO} : nom du charm en cours d'execution. Il s'agit du mot sur la première ligne du bloc de config correspondant dans le fichier `/opt/apps/myc-deploy/compose.yml`.
* {VERSION} : la version du Odoo (ex: `12.0`, `14.0`)
```
cd /srv/datastore/data/{SERVICE_ODOO}/var/lib/odoo/addons/{VERSION}/.
```
3. Importer le module :
```
git clone {ADRESSE_HTTPS_GIT}
```
---
## Scénario 3 : Répertoire d'un ENSEMBLE DE MODULES à intégrer SANS Git
1. récupérer le répertoire parent des modules
:::warning
**Point d'attention :** vérifiez bien dans le fichier `__manifest__.py` des modules que la version correspond bien à la version de votre instance Odoo. Dans le cas contraire, celui-ci ne s'affichera pas sur la vue d'installation des modules.
:::
2. Envoyez votre répertoire parent sur votre serveur, à l'emplacement `/root/{SERVICE_ODOO}/.`, avec :
* {SERVICE_ODOO} : nom de votre charm en cours d'execution. Il s'agit du mot sur la première ligne du bloc de config correspondant dans votre fichier `compose.yml`.
Commande de copie SSH (scp) depuis un PC:
```
scp -r {NOM_REPERTOIRE} root@monserveur.org:/{SERVICE_ODOO}/.
```
3. Modifier le fichier `/opt/apps/myc-deploy/compose.yml` pour prendre en compte le nouveau répertoire : ajouter pour le paramètre `addons-path` le chemin `/opt/odoo/auto/dev/{NOM_REPERTOIRE}`, ce qui donne la ligne :
```
- "--addons-path=/opt/odoo/auto/dev/{NOM_REPERTOIRE},/opt/odoo/auto/addons"
```
---
## Scénario 4 : Répertoire d'un ENSEMBLE DE MODULES à intégrer AVEC Git
1. récupérer l'adresse https du répertoire git parent des module (`{ADRESSE_HTTPS_GIT}` plus loin)
2. Sur le serveur, aller à l'emplacement `/root/{SERVICE_ODOO}/.`, avec :
* {SERVICE_ODOO} : nom de votre charm en cours d'execution. Il s'agit du mot sur la première ligne du bloc de config correspondant dans votre fichier `compose.yml`.
```
cd /root/{SERVICE_ODOO}
```
3. Importer le répertoire de modules :
```
git clone {ADRESSE_HTTPS_GIT}
```
4. Modifier le fichier `/opt/apps/myc-deploy/compose.yml` pour prendre en compte le nouveau répertoire : ajouter pour le paramètre `addons-path` le chemin `/opt/odoo/auto/dev/{NOM_REPERTOIRE}`, ce qui donne la ligne :
```
- "--addons-path=/opt/odoo/auto/dev/{NOM_REPERTOIRE},/opt/odoo/auto/addons"
```
---
## Relancez le service Odoo
Relancez le script compose pour intégrer le nouveau module dans Odoo :
```
compose --debug up
```
---
## Installer le module dans Odoo
1. Se connecter à Odoo
2. Activer le mode Développeur
3. Aller dans l'onglet "**Applications**"
4. Cliquer sur "**Mettre à jour la liste des Applications**"
5. Trouver et installez le ou les modules.
:::success
**Félicitations**, le module est maintenant installé et opérationnel ! Bonne continuation !
:::