odooodoo-13odoo-14odoo-15odoo-16

How can I add a chatter for many2many fields (tags) in Odoo 16?


I want to add chatter for Tags. But odoo does not support tracking of many2many fields. What should i do?

Any Suggestions.

I tried to put tracking=true on tag_ids field but it does not work.

I am stuck here. Please give your suggestions.


Solution

  • You can override the _track_mail function to track x2many fields.

    Check the code just after # Many2many tracking comment in the project module

    Example:

    if len(changes) > len(tracking_value_ids):
        for changed_field in changes:
            if tracked_fields[changed_field]['type'] in ['one2many', 'many2many']:
                field = self.env['ir.model.fields']._get(self._name, changed_field)
                vals = {
                    'field': field.id,
                    'field_desc': field.field_description,
                    'field_type': field.ttype,
                    'tracking_sequence': field.tracking,
                    'old_value_char': ', '.join(initial_values[changed_field].mapped('name')),
                    'new_value_char': ', '.join(self[changed_field].mapped('name')),
                }
                tracking_value_ids.append(Command.create(vals))