Passa al contenuto
Menu
È necessario essere registrati per interagire con la community.
La domanda è stata contrassegnata
3 Risposte
5814 Visualizzazioni

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

any idea ?

Avatar
Abbandona
Risposta migliore

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
Abbandona

It works !!

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

Risposta migliore

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

Avatar
Abbandona
Autore Risposta migliore

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

Avatar
Abbandona

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.

Post correlati Risposte Visualizzazioni Attività
1
lug 25
2162
2
lug 25
7666
2
lug 25
4092
2
lug 25
3836
2
giu 25
2444