Éditeur en ligne¶
Vue d’ensemble¶
L’éditeur en ligne vous permet d’éditer le code source de vos builds depuis un navigateur web. Il vous permet également d’ouvrir des terminaux, des consoles Python, des consoles Shell Odoo et des Notebooks.
Vous pouvez accédez à l’éditeur d’un build via les onglets Branches, le menu déroulant des builds ou en ajoutant /odoo-sh/editor au nom de domaine de votre build (par ex. https://odoo-addons-master-1.dev.odoo.com/odoo-sh/editor).
Éditer le code source¶
Le répertoire de travail est constitué des dossiers suivants :
.
├── home
│ └── odoo
│ ├── src
│ │ ├── odoo Odoo Community source code
│ │ │ └── odoo-bin Odoo server executable
│ │ ├── enterprise Odoo Enterprise source code
│ │ ├── themes Odoo Themes source code
│ │ └── user Your repository branch source code
│ ├── data
│ │ ├── filestore database attachments, as well as the files of binary fields
│ │ └── sessions visitors and users sessions
│ └── logs
│ ├── install.log Database installation logs
│ ├── odoo.log Running server logs
│ ├── update.log Database updates logs
│ └── pip.log Python packages installation logs
Vous pouvez éditer le code source (fichiers sous /src) dans les builds de développement et de simulation.
Note
Vos modifications ne seront pas propagées dans un nouveau build, vous devez les commiter dans votre code source si vous voulez qu’elles persistent.
Pour les builds de production, le code source est en lecture seule, car effectuer des changements locaux sur un serveur de production n’est pas une bonne pratique.
Le code source de votre dépôt Github se trouve sous /src/user,
Le code source d’Odoo se trouve sous
/src/odoo (odoo/odoo),
/src/enterprise (odoo/enterprise),
/src/themes (odoo/design-themes).
Pour ouvrir un fichier dans l’éditeur, il suffit de double-cliquer dessus dans le panneau du navigateur de fichiers à gauche.
Vous pouvez commencer à effectuer vos changements. Vous pouvez sauvegarder vos changements en allant au menu
ou en utilisant le raccourci Ctrl+S.Si vous sauvegardez un fichier Python qui se trouve dans le chemin des modules complémentaires de votre serveur Odoo, Odoo le détectera et rechargera automatiquement pour que vos changement soient reflétés immédiatement sans avoir à redémarrer le serveur manuellement.
Cependant, si le changement concerne une donnée stockée dans la base de données, telle que le libellé d’un champ ou une vue, vous devez mettre à jour le module correspondant pour appliquer le changement. Vous pouvez mettre à jour le module du fichier actuellement ouvert en utilisant le menu
. Notez que le fichier considéré comme actuellement ouvert est le fichier ciblé dans l’éditeur de texte, et non le fichier mis en évidence dans le navigateur de fichiers.Vous pouvez également ouvrir un terminal et exécuter la commande :
$ odoo-bin -u <comma-separated module names> --stop-after-init
Commiter & pousser vos changements¶
Vous avez la possibilité de commiter et de pousser vos changements vers votre dépôt Github.
Ouvrez un terminal (
),Changez le répertoire en ~/src/user en utilisant
cd ~/src/user
,Phasez vos changements en utilisant
git add
,Commitez vos changements en utilisant
git commit
,Poussez vos changements en utilisant
git push https HEAD:<branch>
.
Dans cette dernière commande,
https est le nom de votre dépôt distant Github HTTPS (par ex. https://github.com/username/repository.git),
HEAD est la référence de la dernière révision que vous avez commitée,
<branch> doit être remplacé par le nom de la branche vers laquelle vous souhaitez pousser les changements, très probablement la branche actuelle si vous travaillez dans un build de développement.
Note
Le SSH distant Github n’est pas utilisé, car votre clé privée SSH n’est pas hébergée dans vos conteneurs de build (pour des raisons évidentes de sécurité), ni transmise via un Agent SSH (puisque vous accédez à cet éditeur via un navigateur web) et vous ne pouvez donc pas vous authentifier auprès de Github en utilisant un SSH. Vous devez utilise le HTTPS distant de votre dépôt Github pour pousser vos changements, qui est automatiquement nommé https dans vos dépôts Git distants. Vous serez invité à saisir votre nom d’utilisateur et mot de passe Github. Si vous avez activé l’authentification à deux facteurs sur Github, vous pouvez créer un jeton d’accès personnel et l’utiliser comme mot de passe. Il suffit d’accorder l’autorisation d’accéder au repo
.
Note
Le dossier source Git ~/src/user n’est pas extrait sur une branche, mais plutôt sur une révision détachée, puisque les builds travaillent sur des révisions spécifiques plutôt que sur des branches. En d’autres termes, cela signifie que vous pouvez avoir plusieurs builds sur la même branche, mais sur des révisions différentes.
Une fois que vos changements sont poussés, en fonction du comportement de poussée de votre branche, un nouveau build peut être créé. Vous pouvez continuer à travailler dans l’éditeur à partir duquel vous avez poussé, car il aura la même révision que le nouveau build créé, mais assurez-vous toujours de travailler dans un éditeur d’un build qui utilise la dernière révision de votre branche.
Consoles¶
Vous pouvez ouvrir des consoles Python, qui sont des shells interactifs IPython. L’un des aspects les plus intéressants de l’utilisation d’une console Python plutôt que d’un shell IPython dans un terminal est la richesse des possibilités d’affichage. Grâce à cela, vous pouvez afficher des objets en HTML.
Vous pouvez par exemple afficher les cellules d’un fichier CSV en utilisant pandas.
Vous pouvez également ouvrir une console Shell Odoo pour faire tout ce que vous voulez avec le dépôt Odoo et les méthodes de modèle de votre base de données. Vous pouvez également directement lire ou écrire sur vos enregistrements.
Avertissement
Dans une Console Odoo, les transactions sont automatiquement commitées. Cela signifie, par exemple, que les changements apportés aux enregistrement sont effectivement appliqués dans la base de données. Si vous changez le nom d’un utilisateur, le nom de l’utilisateur est également changé dans votre base de données. Vous devez donc utilise les consoles Odoo avec précaution sur vos bases de données de production.
Vous pouvez utiliser env pour invoquer des modèles de votre registre de bases de données, par ex. env['res.users']
.
env['res.users'].search_read([], ['name', 'email', 'login'])
[{'id': 2,
'login': 'admin',
'name': 'Administrator',
'email': 'admin@example.com'}]
La classe Pretty
vous permet d’afficher facilement des listes et des dicts d’une manière attrayante, en utilisant l”affichage riche susmentionné.
Vous pouvez également utiliser pandas pour afficher des graphiques.