From a05cdcf1ce41c0b9356bf99786b35aac7be05c80 Mon Sep 17 00:00:00 2001 From: david Date: Mon, 1 Mar 2021 13:15:26 +0100 Subject: [PATCH] [IMP] rma: automatic notification subtypes TT28344 --- rma/data/mail_data.xml | 14 ++++++++++++++ rma/models/rma.py | 16 ++++++++++++++-- rma/tests/test_rma.py | 1 + 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/rma/data/mail_data.xml b/rma/data/mail_data.xml index 3a0c32c2..175d4436 100644 --- a/rma/data/mail_data.xml +++ b/rma/data/mail_data.xml @@ -7,6 +7,12 @@ RMA in draft state + + RMA Notificatoin + rma + + RMA automatic customer notifications + Draft RMA @@ -16,6 +22,14 @@ team_id + + RMA Notification + 20 + rma.team + + + team_id + RMA Notification diff --git a/rma/models/rma.py b/rma/models/rma.py index 554c8a90..d61911b8 100644 --- a/rma/models/rma.py +++ b/rma/models/rma.py @@ -503,7 +503,9 @@ class Rma(models.Model): for rma in self.filtered(lambda p: p.company_id.send_rma_confirmation): rma_template_id = rma.company_id.rma_mail_confirmation_template_id.id rma.with_context( - force_send=True, mark_rma_as_sent=True + force_send=True, + mark_rma_as_sent=True, + default_subtype_id=self.env.ref("rma.mt_rma_notification").id, ).message_post_with_template(rma_template_id) # Action methods @@ -514,6 +516,7 @@ class Rma(models.Model): form = self.env.ref("mail.email_compose_message_wizard_form", False) ctx = { "default_model": "rma", + "default_subtype_id": self.env.ref("rma.mt_rma_notification").id, "default_res_id": self.ids[0], "default_use_template": bool(template), "default_template_id": template and template.id or False, @@ -1110,11 +1113,20 @@ class Rma(models.Model): # Mail business methods def _creation_subtype(self): - if self.state in ("draft", "confirmed"): + if self.state in ("draft"): return self.env.ref("rma.mt_rma_draft") else: return super()._creation_subtype() + def _track_subtype(self, init_values): + self.ensure_one() + if "state" in init_values: + if self.state == "draft": + return self.env.ref("rma.mt_rma_draft") + elif self.state == "confirmed": + return self.env.ref("rma.mt_rma_notification") + return super()._track_subtype(init_values) + def message_new(self, msg_dict, custom_values=None): """Extract the needed values from an incoming rma emails data-set to be used to create an RMA. diff --git a/rma/tests/test_rma.py b/rma/tests/test_rma.py index 27cb010f..767fabee 100644 --- a/rma/tests/test_rma.py +++ b/rma/tests/test_rma.py @@ -673,3 +673,4 @@ class TestRma(SavepointCase): ) self.assertTrue(rma.name in mail.subject) self.assertTrue(rma.name in mail.body) + self.assertEqual(self.env.ref("rma.mt_rma_notification"), mail.subtype_id)