Les vues : Suivre les changements de valeur du champ
Comme Odoo est un système multi-utilisateurs où différents utilisateurs peuvent accéder au même enregistrement, il est utile de suivre les changements apportés aux champs par les utilisateurs individuels pour identifier qui a fait ce changement particulier et quand il a été fait. Dans Odoo, nous pouvons suivre les valeurs des champs, et chaque fois que la valeur d’un champ change, elle est enregistrée dans Chatter.
Dans cet exemple, je vais suivre le champ ‘Age’ dans le modèle de mon étudiant. Pour cela, j’ajoute le paramètre tracking=True à mon champ age.
Ici, j’ai ajouté tracking=True au champ âge. Une fois les modifications effectuées, mettez le module à jour. Actuellement, le champ âge contient ici la valeur 23 ; je la modifie en 24 et j’enregistre l’enregistrement.
Après avoir sauvegardé l’enregistrement, la modification apportée est enregistrée dans Chatter.
De même, nous pouvons suivre les modifications apportées à n’importe quel champ.
Nous allons maintenant voir comment ajouter des fonctionnalités d’activité de planification à Chatter.
Pour cela, nous devons hériter du modèle mail.activity.mixin dans notre modèle personnalisé.
Modifiez le fichier python comme indiqué ci-dessous.
Et dans le fichier XML, ajoutez le champ activity_ids.
Mettez à jour le module et voyez les changements.
Nous pouvons maintenant voir que le bouton Planifier une activité a été ajouté au chat pour planifier des activités directement à partir du chat.
De même, nous pouvons ajouter le chat à n’importe quelle vue de formulaire pour une communication et une traçabilité efficaces.
Activité : suivre les modifications dans des champs
Dans cet exercice, nous allons ajouter le suivi (tracking) aux champs spécifiques du modèle HospitalPatient
du fichier patient.py
, en utilisant l’attribut tracking=True
. Les champs concernés sont : name
, age
, notes
, gender
, et is_child
.
- Ouvrez le fichier
patient.py
qui définit le modèleHospitalPatient
. - Ajoutez l’importation du module
fields
dans la liste des importations en haut du fichier :
from odoo import models, fields
- Dans la classe
HospitalPatient
, modifiez les définitions des champs concernés en ajoutanttracking=True
comme suit :
class HospitalPatient(models.Model):
_name = 'hospital.patient'
_description = "Patient Records"
_inherit = 'mail.thread'
name = fields.Char(string='Name', required=True, tracking=True)
age = fields.Integer(string='Age', tracking=True)
notes = fields.Text(string='Notes', tracking=True)
gender = fields.Selection([('male', 'Male'), ('female', 'Female')], string='Gender', tracking=True)
is_child = fields.Boolean(string='Is Child ?', tracking=True)
# Autres champs et méthodes du modèle...
- Enregistrez vos modifications dans le fichier
patient.py
. - Redémarrez votre serveur Odoo pour appliquer les modifications.
Maintenant, les champs name
, age
, notes
, gender
, et is_child
du modèle HospitalPatient
seront suivis individuellement. Chaque fois que vous modifiez la valeur d’un de ces champs, la modification sera enregistrée dans l’historique des modifications du modèle. Vous pourrez voir les modifications apportées aux champs dans l’interface utilisateur d’Odoo en accédant à l’enregistrement du patient et en consultant l’onglet « Historique des modifications » ou l’onglet « Champs modifiés ».
Assurez-vous que le modèle HospitalPatient
est correctement chargé dans votre application Odoo et que vous disposez des droits d’accès appropriés pour afficher et utiliser la fonctionnalité de suivi des champs.