Skip to content

Commit d9365a2

Browse files
committed
[IMP] tracking_manager: add field type html support
1 parent bde9391 commit d9365a2

File tree

4 files changed

+51
-0
lines changed

4 files changed

+51
-0
lines changed

tracking_manager/models/__init__.py

+1
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@
22
from . import ir_model
33
from . import ir_model_fields
44
from . import models
5+
from . import mail_tracking_value
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
from odoo import api, models
2+
from odoo.tools import html2plaintext
3+
4+
5+
class MailTracking(models.Model):
6+
_inherit = "mail.tracking.value"
7+
8+
@api.model
9+
def _create_tracking_values(
10+
self, initial_value, new_value, col_name, col_info, record
11+
):
12+
try:
13+
return super()._create_tracking_values(
14+
initial_value, new_value, col_name, col_info, record
15+
)
16+
except NotImplementedError:
17+
if col_info["type"] == "html":
18+
field = self.env["ir.model.fields"]._get(record._name, col_name)
19+
values = {"field_id": field.id}
20+
values.update(
21+
{
22+
"old_value_char": html2plaintext(initial_value) or "",
23+
"new_value_char": html2plaintext(new_value) or "",
24+
}
25+
)
26+
return values
27+
raise

tracking_manager/tests/__init__.py

+1
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
from . import test_tracking_manager
2+
from . import test_mail_tracking_value
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
from odoo.tests.common import TransactionCase
2+
3+
4+
class TestMailTracking(TransactionCase):
5+
@classmethod
6+
def setUpClass(cls):
7+
super().setUpClass()
8+
cls.MailTracking = cls.env["mail.tracking.value"]
9+
10+
def test_create_tracking_values_html(self):
11+
initial_value = "<p>Initial Value</p>"
12+
new_value = "<p>New Value</p>"
13+
col_name = "comment"
14+
col_info = {"type": "html"}
15+
record = self.env["res.partner"].create({"name": "Test Partner"})
16+
17+
values = self.MailTracking._create_tracking_values(
18+
initial_value, new_value, col_name, col_info, record
19+
)
20+
21+
self.assertEqual(values["old_value_char"], "Initial Value")
22+
self.assertEqual(values["new_value_char"], "New Value")

0 commit comments

Comments
 (0)