[FIX] tracking_manager: m2m data was tracked as None->None

pull/3062/head
Christopher Rogos 2024-10-09 13:56:40 +00:00
parent ff178e180e
commit 36410c75a8
3 changed files with 6 additions and 34 deletions

View File

@ -2,4 +2,3 @@ from . import mail_thread
from . import ir_model from . import ir_model
from . import ir_model_fields from . import ir_model_fields
from . import models from . import models
from . import mail_tracking_value

View File

@ -1,27 +0,0 @@
# Copyright 2023 Akretion (https://www.akretion.com).
# @author Sébastien BEAU <sebastien.beau@akretion.com>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import models
from ..tools import format_m2m
class MailTrackingValue(models.Model):
_inherit = "mail.tracking.value"
def _create_tracking_values(
self,
initial_value,
new_value,
col_name,
col_info,
record,
):
if col_info["type"] == "many2many":
col_info["type"] = "text"
initial_value = format_m2m(initial_value)
new_value = format_m2m(new_value)
return super()._create_tracking_values(
initial_value, new_value, col_name, col_info, record
)

View File

@ -79,8 +79,8 @@ class TestTrackingManager(TransactionCase):
self.assertEqual(len(self.messages), 1) self.assertEqual(len(self.messages), 1)
tracking = self.messages.tracking_value_ids[0] tracking = self.messages.tracking_value_ids[0]
self.assertEqual(len(tracking), 1) self.assertEqual(len(tracking), 1)
self.assertEqual(tracking.old_value_text, "FOO") self.assertEqual(tracking.old_value_char, "FOO")
self.assertEqual(tracking.new_value_text, "FOO; BAR") self.assertEqual(tracking.new_value_char, "FOO, BAR")
def test_m2m_delete_line(self): def test_m2m_delete_line(self):
self.partner.write( self.partner.write(
@ -89,8 +89,8 @@ class TestTrackingManager(TransactionCase):
self.assertEqual(len(self.messages), 1) self.assertEqual(len(self.messages), 1)
tracking = self.messages.tracking_value_ids tracking = self.messages.tracking_value_ids
self.assertEqual(len(tracking), 1) self.assertEqual(len(tracking), 1)
self.assertEqual(tracking.old_value_text, "FOO") self.assertEqual(tracking.old_value_char, "FOO")
self.assertEqual(tracking.new_value_text, "") self.assertEqual(tracking.new_value_char, "")
def test_m2m_multi_line(self): def test_m2m_multi_line(self):
self.partner.write( self.partner.write(
@ -110,8 +110,8 @@ class TestTrackingManager(TransactionCase):
self.assertEqual(len(self.messages), 1) self.assertEqual(len(self.messages), 1)
tracking = self.messages.tracking_value_ids tracking = self.messages.tracking_value_ids
self.assertEqual(len(tracking), 1) self.assertEqual(len(tracking), 1)
self.assertEqual(tracking.old_value_text, "FOO") self.assertEqual(tracking.old_value_char, "FOO")
self.assertEqual(tracking.new_value_text, "BAR; TOOH") self.assertEqual(tracking.new_value_char, "BAR, TOOH")
def test_o2m_create_indirectly(self): def test_o2m_create_indirectly(self):
self.partner.write({"user_ids": [(Command.CREATE, 0, {"login": "1234567890"})]}) self.partner.write({"user_ids": [(Command.CREATE, 0, {"login": "1234567890"})]})