Normes de codage à suivre :

1) Structure des modules :

  • Chaque module doit avoir un nom clair et descriptif, cela aide les autres développeurs à comprendre la fonctionnalité contenue par module simplement en regardant son nom.
  • Organisez les fichiers et répertoires du module conformément aux directives de structure du module Odoo. Suivre une approche commune aide les autres à naviguer dans les répertoires et permet de gagner beaucoup de temps. Utilisez donc une structure de répertoires cohérente pour les modèles, les vues, les règles de sécurité, les fichiers de données et les ressources statiques.
  • Vous pouvez créer un nouveau module avec tous les répertoires avec la commande scaffold.
  • Accédez au chemin où se trouve votre répertoire odoo et entrez la commande suivante :   ./odoo/odoo-bin scaffold my_module

2) Normes de codage Python :

Voici quelques conseils généraux que vous pouvez utiliser lors du développement d’un code en Python.

  • Utilisez quatre espaces pour l'indentation au lieu des tabulations et une longueur de ligne maximale de 80 à 85 pour une bonne lisibilité.
  • Utilisez des noms descriptifs et significatifs pour les variables, les fonctions et les classes.
  • Utilisez des commentaires pour expliquer le but du code, les algorithmes et la logique complexe. Documentez votre code à l'aide de docstrings pour fournir des explications claires sur les paramètres et les valeurs de retour des fonctions et des méthodes.
  • Conservez un objet dans un fichier Python.
  • Ajouter README.rst serait préférable pour rappeler les fonctionnalités du module dans le futur.
  • Ajoutez un texte d'aide si nécessaire.
  • Fournissez des journaux à des fins de débogage.
  • Essayez d'hériter et de faire un super-call autant que possible. Remplacer la méthode peut perturber le comportement naturel d'une méthode.
  • Suivez la convention de dénomination des méthodes conformément aux directives d'odoo, comme le champ de calcul pour field_a doit être def _compute_field_a ou calculate_field_a.
  • Utilisez une boucle for ou une méthode filtrée lorsqu'une méthode attend plusieurs enregistrements, sinon utilisez self.ensure_one() si la méthode attend un seul enregistrement à chaque fois.
  • Utilisez les fonctionnalités de traduction d'Odoo pour les chaînes destinées aux utilisateurs. Utilisez la fonction _(...)​ pour créer des chaînes traduisibles dans le code Python et les modèles XML.
  • Si vous souhaitez ajouter une certaine logique à la création et à la mise à jour des enregistrements, utilisez la méthode inverse.
  • Utilisez la compréhension de liste au lieu d’un bloc de boucle for.
  • Utilisez le modèle abstrait dans le parent, si plusieurs objets partagent des champs communs, cela permet de réduire la charge dans la base de données.

3) Normes de codage XML :

Voici quelques conseils généraux que vous pouvez utiliser lors du développement d’un code en XML.

  • Affichez toujours le champ requis dans une arborescence, une vue de formulaire et une vue de recherche, et fournissez le filtre pour les champs importants dans la logique métier. À utiliser en option si les champs de l'arborescence sont trop nombreux.
  • Utilisez des ID descriptifs et significatifs qui reflètent l’objectif ou la fonctionnalité de la vue.
  • Ajoutez toujours des droits d'accès si nécessaire pour des raisons de sécurité.
  • Utilisez des widgets Odoo pour les champs (par exemple, sélection, many2one, many2many)​ pour les types de champs appropriés afin de garantir un comportement et une expérience utilisateur cohérents.
  • Incluez des commentaires pour expliquer l'objectif ou fournir des informations supplémentaires sur des éléments ou un bloc XML spécifiques.
  • Utilisez les fonctionnalités de localisation d'Odoo pour prendre en charge les applications multilingues. Enveloppez les textes traduisibles avec la balise <data>​et utilisez l'attribut data-translate​ pour la traduction automatique pour une meilleure expérience utilisateur.