diff --git a/addons/mail/models/mail_tracking_value.py b/addons/mail/models/mail_tracking_value.py index ce1dcfc9d72..60c9f4799c1 100644 --- a/addons/mail/models/mail_tracking_value.py +++ b/addons/mail/models/mail_tracking_value.py @@ -38,8 +38,10 @@ class MailTracking(models.Model): @api.depends('mail_message_id', 'field_id') def _compute_field_groups(self): for tracking in self: - model = self.env[tracking.field_id.model] - field = model._fields.get(tracking.field_id.name) + field = None + if tracking.field_id: + model = self.env[tracking.field_id.model] + field = model._fields.get(tracking.field_id.name) tracking.field_groups = field.groups if field else 'base.group_system' @api.model diff --git a/addons/test_mail/tests/test_message_track.py b/addons/test_mail/tests/test_message_track.py index ba4a96aba29..f766f96ee5c 100644 --- a/addons/test_mail/tests/test_message_track.py +++ b/addons/test_mail/tests/test_message_track.py @@ -793,6 +793,10 @@ class TestTrackingInternals(MailCommon): trackings = main_track.message_ids.sudo().tracking_value_ids self.assertEqual(len(trackings), 3) + # check groups, as it depends on model + for tracking, exp_groups in zip(trackings, ['base.group_user', 'base.group_system', 'base.group_system']): + self.assertEqual(tracking.field_groups, exp_groups) + # check formatting, as it fetches info on model formatted = trackings._tracking_value_format() self.assertEqual(