Zum Inhalt springen
Menü
Sie müssen registriert sein, um mit der Community zu interagieren.
Diese Frage wurde gekennzeichnet
3 Antworten
5921 Ansichten

I've added  track_visibility='onchange' on my fields and it doesn't work.

any idea ?

Avatar
Verwerfen
Beste Antwort

Hi

By default, One2many fields changes won't update on chatter.


To display tracking of the One2many field in chatter, please refer to the code below.


class A(models.Model):
_name = "A.A"
_inherit = ['mail.thread', 'mail.activity.mixin']

name = fields.Char("Name")
b_lines = fields.One2many('B.B', 'a_id')


class B(models.Model):
_name = "B.B"
_inherit = ['mail.thread', 'mail.activity.mixin']

a_id = fields.Many2one('A.A')
name = fields.Char("Name",tracking=True)
#To Show tracking in chatter Add tracking=True

def write(self, vals):
super().write(vals)
if set(vals) & set(self._get_tracked_fields(vals)):
self._track_changes(self.a_id)

def _track_changes(self, field_to_track):
if self.message_ids:
message_id = field_to_track.message_post(
body=f'{self._description}: {self.display_name}').id
trackings = self.env['mail.tracking.value'].sudo().search(
[('mail_message_id', '=', self.message_ids[0].id)])
for tracking in trackings:
tracking.copy({'mail_message_id': message_id})


Hope it helps,

KIran K

Avatar
Verwerfen

It works !!

But you forgot to return the super() of the write method.

Beste Antwort

Hi, 
Please try with "tracking=True"  instead of track_visibility .
Hope it will help you.
Thanks

Avatar
Verwerfen
Autor Beste Antwort

Thank you Malay for your answer, but still the same problem

Avatar
Verwerfen

HI,

Try to inherit "mail.thread" Model in your line model. Try to add _inherit = ['mail.thread'] line after your model description.

Just like this:

class YourCustomModel(models.Model):
_name = 'your.custom.model.name'
_inherit = ['mail.thread']
_description = 'Your Custom Model'

Hope it will help you.

Verknüpfte Beiträge Antworten Ansichten Aktivität
1
Juli 25
2338
2
Juli 25
7827
2
Juli 25
4219
2
Juli 25
4005
2
Juni 25
2598