diff --git a/docs/divers/devops/odoo/devmodule.md b/docs/divers/devops/odoo/devmodule.md index 2d85bead..8138d20a 100644 --- a/docs/divers/devops/odoo/devmodule.md +++ b/docs/divers/devops/odoo/devmodule.md @@ -1,5 +1,83 @@ # Créer son module pour Odoo +## Configurer l'environnement de déploiement + +Il nous faut ajouter certaines librairies python au projet. + +Pour cela nous allons: +- ajouter un fichier `requirements.txt` au dossier `etc` +- ajouter un script `entrypoint.sh` qui sera lancé par le compose + +### Fichier `etc/requirements.txt` + +??? note "requirements.txt" + ``` + astor + python-stdnum>=1.18 + requests_oauthlib + factur-x + unicodecsv + ``` + +### Fichier `entrypoint.sh` + +??? note "entrypoint.sh" + ``` + #!/bin/bash + + set -e + + # set the postgres database host, port, user and password according to the environment + # and pass them as arguments to the odoo process if not present in the config file + : ${HOST:=${DB_PORT_5432_TCP_ADDR:='db'}} + : ${PORT:=${DB_PORT_5432_TCP_PORT:=5432}} + : ${USER:=${DB_ENV_POSTGRES_USER:=${POSTGRES_USER:='odoo'}}} + : ${PASSWORD:=${DB_ENV_POSTGRES_PASSWORD:=${POSTGRES_PASSWORD:='odoo'}}} + + # install python packages + pip3 install pip --upgrade + pip3 install -r /etc/odoo/requirements.txt + + # sed -i 's|raise werkzeug.exceptions.BadRequest(msg)|self.jsonrequest = {}|g' /usr/lib/python3/dist-packages/odoo/http.py + + DB_ARGS=() + function check_config() { + param="$1" + value="$2" + if grep -q -E "^\s*\b${param}\b\s*=" "$ODOO_RC" ; then + value=$(grep -E "^\s*\b${param}\b\s*=" "$ODOO_RC" |cut -d " " -f3|sed 's/["\n\r]//g') + fi; + DB_ARGS+=("--${param}") + DB_ARGS+=("${value}") + } + check_config "db_host" "$HOST" + check_config "db_port" "$PORT" + check_config "db_user" "$USER" + check_config "db_password" "$PASSWORD" + + case "$1" in + -- | odoo) + shift + if [[ "$1" == "scaffold" ]] ; then + exec odoo "$@" + else + wait-for-psql.py ${DB_ARGS[@]} --timeout=30 + exec odoo "$@" "${DB_ARGS[@]}" + fi + ;; + -*) + wait-for-psql.py ${DB_ARGS[@]} --timeout=30 + exec odoo "$@" "${DB_ARGS[@]}" + ;; + *) + exec "$@" + esac + + exit 1 + ``` + + + ## Créer un script d'installation automatisée Ce script python va permettre d'automatiser l'installation des modules de base