From 2d1290202e6e55efc1623fdb88a67649e8a8dc6d Mon Sep 17 00:00:00 2001 From: psugne Date: Tue, 15 Oct 2024 12:37:18 +0300 Subject: [PATCH] [17.0][MIG] mail_improved_tracking_value: Migration to 17.0 https://hive.versada.eu/work_packages/24274 --- mail_improved_tracking_value/README.rst | 3 +- mail_improved_tracking_value/__manifest__.py | 4 +- .../models/mail_message.py | 2 +- .../models/mail_tracking_value.py | 25 ++++----- mail_improved_tracking_value/pyproject.toml | 3 ++ .../tests/test_improved_tracking_value.py | 52 +++++++++---------- .../views/mail_tracking_value.xml | 4 +- 7 files changed, 45 insertions(+), 48 deletions(-) create mode 100644 mail_improved_tracking_value/pyproject.toml diff --git a/mail_improved_tracking_value/README.rst b/mail_improved_tracking_value/README.rst index 1d07764bbf..8ca1d9fb73 100644 --- a/mail_improved_tracking_value/README.rst +++ b/mail_improved_tracking_value/README.rst @@ -11,7 +11,7 @@ value changes on predefined fields. It adds support for many2many and one2many fields, which are not handled well by default. It also implements a new view (little bit more user friendly than the -existing one) to watch for changes +existing one) to watch for changes Installation ============ @@ -60,6 +60,7 @@ Contributors ------------ * Thierry Ducrest +* Ugnė Sinkevičienė Maintainer ---------- diff --git a/mail_improved_tracking_value/__manifest__.py b/mail_improved_tracking_value/__manifest__.py index 5b34184cab..7e7b803472 100644 --- a/mail_improved_tracking_value/__manifest__.py +++ b/mail_improved_tracking_value/__manifest__.py @@ -3,13 +3,13 @@ { "name": "Improved tracking value change", - "version": "16.0.1.0.0", + "version": "17.0.1.0.0", "summary": "Improves tracking changed values for certain type of fields." "Adds a user-friendly view to consult them.", "author": "Camptocamp, Odoo Community Association (OCA)", "license": "AGPL-3", "category": "Tools", "website": "https://github.com/OCA/social", - "depends": ["base", "mail"], + "depends": ["mail"], "data": ["views/mail_tracking_value.xml"], } diff --git a/mail_improved_tracking_value/models/mail_message.py b/mail_improved_tracking_value/models/mail_message.py index 581541007d..57001d6785 100644 --- a/mail_improved_tracking_value/models/mail_message.py +++ b/mail_improved_tracking_value/models/mail_message.py @@ -6,7 +6,7 @@ class MailMessage(models.Model): @api.model def name_get(self): - res = super(MailMessage, self).name_get() + res = super().name_get() params = self.env.context.get("params") if params: model = params.get("model") diff --git a/mail_improved_tracking_value/models/mail_tracking_value.py b/mail_improved_tracking_value/models/mail_tracking_value.py index e065310580..daffd3678e 100644 --- a/mail_improved_tracking_value/models/mail_tracking_value.py +++ b/mail_improved_tracking_value/models/mail_tracking_value.py @@ -7,7 +7,6 @@ class MailTrackingValue(models.Model): - _inherit = "mail.tracking.value" new_value_formatted = fields.Char( @@ -25,33 +24,31 @@ class MailTrackingValue(models.Model): "new_value_float", "new_value_text", "new_value_datetime", - "new_value_monetary", "old_value_char", "old_value_integer", "old_value_float", "old_value_text", "old_value_datetime", - "old_value_monetary", ) def _compute_formatted_value(self): """Sets the value formatted field used in the view""" for record in self: - if record.field_type in ("many2many", "one2many", "char"): + if record.field_id.ttype in ("many2many", "one2many", "char"): record.new_value_formatted = record.new_value_char record.old_value_formatted = record.old_value_char - elif record.field_type == "integer": + elif record.field_id.ttype == "integer": record.new_value_formatted = str(record.new_value_integer) record.old_value_formatted = str(record.old_value_integer) - elif record.field_type == "float": + elif record.field_id.ttype == "float": + record.new_value_formatted = str(record.new_value_float) + record.old_value_formatted = str(record.old_value_float) + elif record.field_id.ttype == "monetary": record.new_value_formatted = str(record.new_value_float) record.old_value_formatted = str(record.old_value_float) - elif record.field_type == "monetary": - record.new_value_formatted = str(record.new_value_monetary) - record.old_value_formatted = str(record.old_value_monetary) - elif record.field_type == "datetime": + elif record.field_id.ttype == "datetime": record.new_value_formatted = str(record.new_value_datetime) record.old_value_formatted = str(record.old_value_datetime) - elif record.field_type == "text": + elif record.field_id.ttype == "text": record.new_value_formatted = record.new_value_text record.old_value_formatted = record.old_value_text @@ -76,8 +73,8 @@ def get_values(source, prefix): names = "" json_ids = json.dumps([]) return { - "{}_value_char".format(prefix): names, - "{}_value_text".format(prefix): json_ids, + f"{prefix}_value_char": names, + f"{prefix}_value_text": json_ids, } field = self.env["ir.model.fields"]._get(model_name, col_name) @@ -86,8 +83,6 @@ def get_values(source, prefix): values = { "field": field.id, - "field_desc": col_info["string"], - "field_type": col_info["type"], } values.update(get_values(initial_value, "old")) values.update(get_values(new_value, "new")) diff --git a/mail_improved_tracking_value/pyproject.toml b/mail_improved_tracking_value/pyproject.toml new file mode 100644 index 0000000000..4231d0cccb --- /dev/null +++ b/mail_improved_tracking_value/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/mail_improved_tracking_value/tests/test_improved_tracking_value.py b/mail_improved_tracking_value/tests/test_improved_tracking_value.py index 652c127b39..85c829b429 100644 --- a/mail_improved_tracking_value/tests/test_improved_tracking_value.py +++ b/mail_improved_tracking_value/tests/test_improved_tracking_value.py @@ -33,7 +33,7 @@ def test_change_one2many(self): self.assertEqual(tracking["new_value_text"], json.dumps([self.dr.id])) def test_change_one2many_empty(self): - """Test tracking one2many changes emtpy""" + """Test tracking one2many changes empty""" tracking = self.model.create_tracking_values( self.mr, None, @@ -75,11 +75,9 @@ def test_char_tracking_value(self): r = self.model.create( { "mail_message_id": self.msg.id, - "field_type": "char", "old_value_char": "weakness", "new_value_char": "strength", - "field": self.env["ir.model.fields"]._get("res.partner", "name").id, - "field_desc": "desc", + "field_id": self.env["ir.model.fields"]._get("res.partner", "name").id, } ) self.assertEqual(r.old_value_formatted, "weakness") @@ -89,11 +87,11 @@ def test_many2many_tracking_value(self): r = self.model.create( { "mail_message_id": self.msg.id, - "field_type": "many2many", "old_value_char": "123", "new_value_char": "456", - "field": self.env["ir.model.fields"]._get("res.partner", "name").id, - "field_desc": "desc", + "field_id": self.env["ir.model.fields"] + ._get("res.partner", "category_id") + .id, } ) self.assertEqual(r.old_value_formatted, "123") @@ -103,11 +101,11 @@ def test_one2many_tracking_value(self): r = self.model.create( { "mail_message_id": self.msg.id, - "field_type": "one2many", "old_value_char": "123", "new_value_char": "456", - "field": self.env["ir.model.fields"]._get("res.partner", "name").id, - "field_desc": "desc", + "field_id": self.env["ir.model.fields"] + ._get("res.partner", "child_ids") + .id, } ) self.assertEqual(r.old_value_formatted, "123") @@ -117,11 +115,11 @@ def test_integer_tracking_value(self): r = self.model.create( { "mail_message_id": self.msg.id, - "field_type": "integer", "old_value_integer": 1, "new_value_integer": 3, - "field": self.env["ir.model.fields"]._get("res.partner", "name").id, - "field_desc": "desc", + "field_id": self.env["ir.model.fields"] + ._get("res.partner", "supplier_rank") + .id, } ) self.assertEqual(r.old_value_formatted, str(1)) @@ -131,11 +129,11 @@ def test_float_tracking_value(self): r = self.model.create( { "mail_message_id": self.msg.id, - "field_type": "float", "old_value_float": 1.1, "new_value_float": 3.14159, - "field": self.env["ir.model.fields"]._get("res.partner", "name").id, - "field_desc": "desc", + "field_id": self.env["ir.model.fields"] + ._get("res.partner", "credit_limit") + .id, } ) self.assertEqual(r.old_value_formatted, str(1.1)) @@ -145,11 +143,11 @@ def test_monetary_tracking_value(self): r = self.model.create( { "mail_message_id": self.msg.id, - "field_type": "monetary", - "old_value_monetary": 3.45, - "new_value_monetary": 5.45, - "field": self.env["ir.model.fields"]._get("res.partner", "name").id, - "field_desc": "desc", + "old_value_float": 3.45, + "new_value_float": 5.45, + "field_id": self.env["ir.model.fields"] + ._get("res.partner", "credit") + .id, } ) self.assertEqual(r.old_value_formatted, str(3.45)) @@ -159,11 +157,11 @@ def test_datetime_tracking_value(self): r = self.model.create( { "mail_message_id": self.msg.id, - "field_type": "datetime", "old_value_datetime": "2018-01-01", "new_value_datetime": "2018-01-04", - "field": self.env["ir.model.fields"]._get("res.partner", "name").id, - "field_desc": "desc", + "field_id": self.env["ir.model.fields"] + ._get("res.partner", "create_date") + .id, } ) self.assertEqual(r.old_value_formatted, "2018-01-01 00:00:00") @@ -173,11 +171,11 @@ def test_text_tracking_value(self): r = self.model.create( { "mail_message_id": self.msg.id, - "field_type": "text", "old_value_text": "previous", "new_value_text": "next", - "field": self.env["ir.model.fields"]._get("res.partner", "name").id, - "field_desc": "desc", + "field_id": self.env["ir.model.fields"] + ._get("discuss.channel", "note") + .id, } ) self.assertEqual(r.old_value_formatted, "previous") diff --git a/mail_improved_tracking_value/views/mail_tracking_value.xml b/mail_improved_tracking_value/views/mail_tracking_value.xml index a8003bf442..5849c220d7 100644 --- a/mail_improved_tracking_value/views/mail_tracking_value.xml +++ b/mail_improved_tracking_value/views/mail_tracking_value.xml @@ -13,7 +13,7 @@ > - + @@ -31,7 +31,7 @@ - +