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.


Les bases de python:

### 1. Installation de Python

Avant de commencer, assurez-vous d'avoir Python installé sur votre machine. Vous pouvez le télécharger depuis [python.org](https://www.python.org/downloads/).

### 2. Syntaxe de base

Python utilise une syntaxe claire et lisible. Voici un exemple simple :

```python

print("Bonjour, le monde !")

```

### 3. Variables

Les variables sont utilisées pour stocker des données. Vous n'avez pas besoin de déclarer le type de la variable.

```python

nom = "Alice"

age = 30

print(nom, age)

```

### 4. Types de données

Python a plusieurs types de données intégrés :

  • **Entiers** : `int`
  • **Flottants** : `float`
  • **Chaînes de caractères** : `str`
  • **Booléens** : `bool`

Exemple :

```python

entier = 10

flottant = 10.5

chaine = "Bonjour"

booleen = True

print(entier, flottant, chaine, booleen)

```

### 5. Opérateurs

Python prend en charge les opérateurs arithmétiques, de comparaison et logiques.

```python

a = 5

b = 3

# Opérateurs arithmétiques

somme = a + b

produit = a * b

# Opérateurs de comparaison

est_egal = (a == b)

# Opérateurs logiques

et_logique = (a > 2 and b < 5)

print(somme, produit, est_egal, et_logique)

```

### 6. Structures de contrôle

#### a. Conditions

Les instructions `if`, `elif` et `else` permettent de contrôler le flux du programme.

```python

age = 18

if age < 18:

print("Mineur")

elif age == 18:

print("Vous avez 18 ans")

else:

print("Majeur")

```

#### b. Boucles

Les boucles `for` et `while` permettent de répéter des actions.

```python

# Boucle for

for i in range(5):

print(i)

# Boucle while

compteur = 0

while compteur < 5:

print(compteur)

compteur += 1

```

### 7. Fonctions

Les fonctions permettent de regrouper du code réutilisable.

```python

def saluer(nom):

return f"Bonjour, {nom} !"

message = saluer("Alice")

print(message)

```

### 8. Listes

Les listes sont des collections d'éléments.

```python

fruits = ["pomme", "banane", "cerise"]

print(fruits[0]) # Accéder au premier élément

# Ajouter un élément

fruits.append("orange")

print(fruits)

```

### 9. Dictionnaires

Les dictionnaires stockent des paires clé-valeur.

```python

personne = {

"nom": "Alice",

"age": 30

}

print(personne["nom"]) # Accéder à la valeur par la clé

```

### 10. Modules

Vous pouvez importer des modules pour utiliser des fonctionnalités supplémentaires.

```python

import math

racine = math.sqrt(16)

print(racine)

```

### Conclusion

Voilà un aperçu des bases de Python. Avec ces concepts, vous pouvez commencer à écrire vos propres programmes. N'hésitez pas à expérimenter et à explorer davantage les fonctionnalités de Python ! Si vous avez des questions ou besoin d'exemples supplémentaires, n'hésitez pas à demander.



print("Hello")