Continuons dans l'exemple de la gestion d'association et imaginons que l'objet "Membre" nécessite l'ajout d'un nouveau champ.
Le besoin serait de pouvoir saisir et stocker ce nouveau champ "niveau de pratique" (champ numérique - valeur de 1 à 5) pour chaque adhérent.
Pour cela, il faut procéder en 2 étapes :
- ajout de ce champ dans la table "res.partner" (un membre est en fait un héritage de l'objet "partenaire")
- ajout de ce champ dans le formulaire de saisie/visu d'un membre
Etape 1 : ajout du champ dans la base
Pour cela, il faut donner à l'administrateur le droit "caractéristiques techniques" pour avoir des fonctionnalités étendues :
Il faut aller ensuite dans le menu " P { margin-bottom: 0.21cm;configurationtechnicalstructure de la base de données" et sélectionner "créer un champ" puis remplir le formulaire ci-dessous avant de "enregistrer" :
Etape 2 : ajout du champ dans le formulaire de saisie des membres
Il faut aller dans le menu " P { margin-bottom: 0.21cm; }configurationtechnicalinterface utilisateurvue" puis rechercher le formulaire " P { margin-bottom: 0.21cm; } res.partner.form"
ajouter la ligne <field name="x_niveau"/> dans la section <group>
En allant sur le formulaire de saisie/visu d'un membre, on peut voir que le champ a été ajouté .
2 Impacts techniques :
- 1 colonne a été ajoutée à la table "res_partner" :
- Dans la table " P { margin-bottom: 0.21cm; } ir_ui_view", la ligne associée à la vue "res.partner.form" a été modifiée (description xml mise à jour)
... et tout ceci sans arrêt/relance ni de la BD, ni du serveur d'appli, ni de déconnexion/reconnexion de la session utilisateur dans le navigateur web !!
NB : Cette façon de faire fonctionne mais n'est pas recommandée car les modifications seront écrasées en cas de mise à jour du module "standard" par l'éditeur et/ou la communauté.
Il faut plutôt utiliser la capacité d'héritage de OpenERP ... Nous verrons cela ultérieurement !!