[IMP] rma: automatic notification subtypes

TT28344
This commit is contained in:
david
2021-03-01 13:15:26 +01:00
parent 6cc7b006b7
commit a05cdcf1ce
3 changed files with 29 additions and 2 deletions

View File

@@ -7,6 +7,12 @@
<field name="default" eval="False" />
<field name="description">RMA in draft state</field>
</record>
<record id="mt_rma_notification" model="mail.message.subtype">
<field name="name">RMA Notificatoin</field>
<field name="res_model">rma</field>
<field name="default" eval="False" />
<field name="description">RMA automatic customer notifications</field>
</record>
<!-- rma_team-related subtypes for messaging / Chatter -->
<record id="mt_rma_team_rma_draft" model="mail.message.subtype">
<field name="name">Draft RMA</field>
@@ -16,6 +22,14 @@
<field name="parent_id" eval="ref('rma.mt_rma_draft')" />
<field name="relation_field">team_id</field>
</record>
<record id="mt_rma_team_rma_notification" model="mail.message.subtype">
<field name="name">RMA Notification</field>
<field name="sequence">20</field>
<field name="res_model">rma.team</field>
<field name="default" eval="True" />
<field name="parent_id" eval="ref('rma.mt_rma_notification')" />
<field name="relation_field">team_id</field>
</record>
<!--RMA email template -->
<record id="mail_template_rma_notification" model="mail.template">
<field name="name">RMA Notification</field>

View File

@@ -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.

View File

@@ -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)