Pour implémenter la fonctionnalité de suivi des enregistrements (Chatter) dans Odoo, on utilise deux mixins fondamentaux : mail.thread et mail.activity.mixin. Ces composants permettent d'ajouter automatiquement les fonctionnalités de messagerie et de suivi d'activités directement dans la vue formulaire de votre modèle personnalisé.
Voici la procédure détaillée pour intégrer cette fonctionnalité :
1. Héritage des mixins dans votre modèle
Dans la définition de votre modèle Python, héritez des mixins nécessaires :
from odoo import models, fields
class ModulePersonnalise(models.Model):
_name = 'module.personnalise'
_inherit = ['mail.thread', 'mail.activity.mixin']
designation = fields.Char(string='Désignation', required=True, track_visibility='onchange')
description = fields.Text(string='Description', track_visibility='always')
2. Intégration du Chatter dans la vue XML
La vue formulaire doit contenir les éléments nécessaires à l'affichage du panneau de discussion. Ces champs sont indispensables pour le bon fonctionnement :
<record id="vue_module_personnalise_form" model="ir.ui.view">
<field name="name">module.personnalise.formulaire</field>
<field name="model">module.personnalise</field>
<field name="arch" type="xml">
<form string="Module Personnalisé">
<sheet>
<!-- Définition des champs -->
<group>
<field name="designation"/>
<field name="description"/>
</group>
</sheet>
<!-- Section Chatter -->
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers"/>
<field name="activity_ids" widget="mail_activity"/>
<field name="message_ids" widget="mail_thread"/>
</div>
</form>
</field>
</record>
3. Configuration du suivi des modifications
L'attribut track_visibility permet d'enregistrer automatiquement les modifications apportées aux champs sélectionnés dans l'historique du Chatter :
designation = fields.Char(string='Désignation', required=True, track_visibility='onchange')
Les valeurs possibles pour cet attribut sont :
'onchange': suivi lors de la modification du champ'always': suivi à chaque sauvegarde'off': pas de suivi (par défaut)
Une fois ces deux étapes accomplies, le panneau de discussion s'affichera automatiquement dans vos formulaires personnalisés. Vous pourrez alors suivre les conversations, gérer les activités et visualiser l'historique des modifications.
- Déclaration de la dépendance au module
mail: Dans le fichier__manifest__.py, il est impératif de déclarer le modulemailcomme dépendance :
{
'name': 'Mon Module Personnalisé',
'version': '1.0',
'depends': ['base', 'mail'],
'data': [
# Vos fichiers de données XML
],
'installable': True,
'application': True,
}
- Redémarrage du service et mise à jour du module : Après toute modification du fichier manifeste, redémarrez le serveur Odoo et mettez à jour votre module via la ligne de commande :
./odoo-bin -u nom_du_module
Vous pouvez également effectuer cette mise à jour depuis l'interface graphique d'Odoo via le menu Applications.
- Points importants à respecter : Veillez à ce que le nom du modèle déclaré dans
_inheritcorresponde exactement au modèle défini dans votre vue XML. Toute discordance empêchera l'affichage du Chatter.