Skip to content

Commit 5cb0531

Browse files
committed
[FIX][MIG] mail: missing fields renames
1 parent a296456 commit 5cb0531

File tree

5 files changed

+52
-0
lines changed

5 files changed

+52
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
from . import base
22
from . import account
3+
from . import mail
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from . import models
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from . import base
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
from odoo.addons.base.models.ir_model import IrModelFields
2+
from odoo.addons.mail.models.models import BaseModel
3+
from odoo.addons.mail.models.ir_model_fields import IrModelField as IrModelFieldMail
4+
from odoo.tools import groupby
5+
6+
# TODO: delete this as there is a solution from PR: https://github.com/odoo/odoo/pull/172881
7+
8+
9+
def _mail_track_get_field_sequence(self, field):
10+
if isinstance(field, IrModelFields):
11+
sequence = getattr(
12+
field, 'tracking',
13+
getattr(field, 'track_sequence', 100)
14+
)
15+
else:
16+
sequence = getattr(
17+
self._fields[field], 'tracking',
18+
getattr(self._fields[field], 'track_sequence', 100)
19+
)
20+
if sequence is True:
21+
sequence = 100
22+
return sequence
23+
24+
25+
def unlink(self):
26+
tracked = self.filtered('tracking')
27+
if tracked:
28+
tracking_values = self.env['mail.tracking.value'].search(
29+
[('field_id', 'in', tracked.ids)]
30+
)
31+
field_to_trackings = groupby(tracking_values, lambda track: track.field_id)
32+
for field, trackings in field_to_trackings:
33+
self.env['mail.tracking.value'].concat(*trackings).write({
34+
'field_info': {
35+
'desc': field.field_description,
36+
'name': field.name,
37+
'sequence': self.env[field.model_id.model]._mail_track_get_field_sequence(field),
38+
'type': field.ttype,
39+
}
40+
})
41+
return super(IrModelFieldMail, self).unlink()
42+
43+
44+
_mail_track_get_field_sequence._original_method = BaseModel._mail_track_get_field_sequence
45+
BaseModel._mail_track_get_field_sequence = _mail_track_get_field_sequence
46+
47+
unlink._original_method = IrModelFieldMail.unlink
48+
IrModelFieldMail.unlink = unlink

openupgrade_scripts/scripts/mail/17.0.1.15/pre-migration.py

+1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
"field",
2020
"field_id",
2121
),
22+
("mail.tracking.value", "mail_tracking_value", "field", "field_id"),
2223
]
2324

2425

0 commit comments

Comments
 (0)