Développer un module de progiciel
Ajouter à un progiciel sans toucher à son standard, sur l'exemple d'Odoo : anatomie d'un module, dépendances, extension d'un modèle et d'un écran, champ calculé, droits d'accès et survie à une montée de version.
- 23 cartes
- 5 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
- Mises en situation
- Comprendre
Quelques cartes du deck
Module de progiciel : de quoi s'agit-il ?
Voir la réponse
Dossier autonome qui regroupe un manifeste, des modèles, des vues, des droits et des données, et qu'on installe ou retire sans toucher au reste de l'application.
Tout Odoo est fait de modules, y compris les ventes ou la facturation. Ajouter une fonction, c'est écrire un module de plus, empilé sur les autres.
Que fait ce code ?
```python
class SaleOrder(models.Model):
_inherit = 'sale.order'
return_date = fields.Date()`- Il ajoute
return_dateau modèle existantsale.order, dans sa table - Il crée un nouveau modèle distinct, copie de
sale.order, avec sa table - Il remplace le modèle
sale.orderpar une classe qui n'a que ce champ - Il modifie le fichier du module
salepour y inscrire le champ ajouté
Voir la réponse
Il ajoute
return_dateau modèle existantsale.order, dans sa tableAvec
_inheritseul, on complète le modèle existant. Avec un_namedifférent en plus, on obtiendrait une copie dans une nouvelle table. Le fichier desalen'est jamais touché.- Il ajoute
Dans le manifeste, la clé … liste les modules à installer avant le nôtre, et la clé … liste les fichiers de vues, de droits et de données chargés à l'installation.
Voir la réponse
Dans le manifeste, la clé depends liste les modules à installer avant le nôtre, et la clé data liste les fichiers de vues, de droits et de données chargés à l'installation.
Odoo installe les dépendances d'abord, puis charge les fichiers de
datadans l'ordre de la liste : les droits et groupes avant les vues qui s'en servent.Manifeste d'un module : de quoi s'agit-il ?
Voir la réponse
Fichier
__manifest__.pyqui décrit le module : son nom, sa version, les modules dont il dépend et la liste des fichiers de données et de vues à charger.Sans lui, Odoo ignore le dossier. Un fichier qui cite un modèle ou une vue d'un autre module n'est sûr de les trouver que si ce module figure dans
depends: sinon, l'installation peut échouer.Le module de prêt est installé, mais les vendeurs obtiennent « Accès refusé » sur le nouveau modèle de prêt, alors que l'administrateur technique y accède. Que fait-on ?
- Mettre tous les vendeurs dans le groupe des administrateurs techniques pour qu'ils y accèdent
- Rendre obligatoire le champ de l'emprunteur dans le modèle de prêt puis mettre le module à jour
- Ajouter
'sale'à la listedependsdu manifeste, puis réinstaller entièrement le module - Ajouter dans
ir.model.access.csvune ligne qui donne au groupe des vendeurs ses droits sur le modèle
Voir la réponse
Ajouter dans
ir.model.access.csvune ligne qui donne au groupe des vendeurs ses droits sur le modèleUn modèle neuf n'est ouvert qu'aux groupes qu'une ligne de ce fichier nomme : ici, seuls les administrateurs en ont une. Faire des vendeurs des administrateurs ouvrirait bien plus que le prêt : on donne le strict nécessaire.