diff --git a/addons/test_mail/__manifest__.py b/addons/test_mail/__manifest__.py
index 52282f6746d..51d9cc7fe42 100644
--- a/addons/test_mail/__manifest__.py
+++ b/addons/test_mail/__manifest__.py
@@ -15,6 +15,8 @@ tests independently to functional aspects of other models. """,
],
'demo': [
'data/demo.xml',
+ 'data/subtype_demo.xml',
+ 'data/template_demo.xml',
],
'installable': True,
'application': False,
diff --git a/addons/test_mail/data/subtype_demo.xml b/addons/test_mail/data/subtype_demo.xml
new file mode 100644
index 00000000000..20a486aace8
--- /dev/null
+++ b/addons/test_mail/data/subtype_demo.xml
@@ -0,0 +1,28 @@
+
+
+
+
+ Umbrella Changed Subtype
+ Umbrella Changed
+ mail.test.full
+
+
+
+
+
+ Umbrella Default Subtype
+ mail.test
+
+
+
+
+
+ Umbrella Child Full Subtype
+ mail.test
+
+ umbrella_id
+
+
+
+
+
diff --git a/addons/test_mail/data/template_demo.xml b/addons/test_mail/data/template_demo.xml
new file mode 100644
index 00000000000..35bdbedd7a2
--- /dev/null
+++ b/addons/test_mail/data/template_demo.xml
@@ -0,0 +1,24 @@
+
+
+
+ Mail Test Full: Tracking Template
+ Test Template
+ ${object.customer_id.id | safe}
+ Hello ${object.name}
+
+
+
+
+
+ Mail Test: Template
+ Post on ${object.name}
+ ${object.customer_id.id}
+ Adding stuff on ${object.name}
+
+
+
+
+
+ datetime has been updated to
+
+
diff --git a/addons/test_mail/models/test_mail_models.py b/addons/test_mail/models/test_mail_models.py
index ec3e712fe38..4c1fd408ddf 100644
--- a/addons/test_mail/models/test_mail_models.py
+++ b/addons/test_mail/models/test_mail_models.py
@@ -62,13 +62,13 @@ class MailTestFull(models.Model):
if 'customer_id' in changes and record.mail_template:
res['customer_id'] = (record.mail_template, {'composition_mode': 'mass_mail'})
elif 'datetime' in changes:
- res['datetime'] = ('mail.track_template', {'composition_mode': 'mass_mail'})
+ res['datetime'] = ('test_mail.mail_test_full_tracking_view', {'composition_mode': 'mass_mail'})
return res
def _track_subtype(self, init_values):
self.ensure_one()
if 'umbrella_id' in init_values and self.umbrella_id:
- return 'mail.track_subtype_umbrella'
+ return 'test_mail.st_mail_test_full_umbrella_upd'
return super(MailTestFull, self)._track_subtype(init_values)
@@ -82,6 +82,7 @@ class MailTestAlias(models.Model):
name = fields.Char()
description = fields.Text()
+ customer_id = fields.Many2one('res.partner', 'Customer')
alias_id = fields.Many2one(
'mail.alias', 'Alias',
delegate=True)
diff --git a/addons/test_mail/tests/test_mail_followers.py b/addons/test_mail/tests/test_mail_followers.py
index 9e3c55ee0a9..a59ef9cea3c 100644
--- a/addons/test_mail/tests/test_mail_followers.py
+++ b/addons/test_mail/tests/test_mail_followers.py
@@ -123,6 +123,10 @@ class AdvancedFollowersTest(common.BaseFunctionalTest):
})
Subtype = cls.env['mail.message.subtype']
+
+ # clean demo data to avoid interferences
+ Subtype.search([('res_model', 'in', ['mail.test', 'mail.test.track'])]).unlink()
+
cls.sub_nodef = Subtype.create({'name': 'Sub NoDefault', 'default': False, 'res_model': 'mail.test'})
cls.sub_umb1 = Subtype.create({'name': 'Sub Umbrella1', 'default': False, 'res_model': 'mail.test.track'})
cls.sub_umb2 = Subtype.create({'name': 'Sub Umbrella2', 'default': False, 'res_model': 'mail.test.track'})
@@ -187,7 +191,7 @@ class AdvancedFollowersTest(common.BaseFunctionalTest):
'umbrella_id': umbrella.id,
})
- all_defaults = self.env['mail.message.subtype'].search([('default', '=', True), '|', ('res_model', '=', 'mail.test.full'), ('res_model', '=', False)])
+ all_defaults = self.env['mail.message.subtype'].search([('default', '=', True), '|', ('res_model', '=', 'mail.test.track'), ('res_model', '=', False)])
external_defaults = all_defaults.filtered(lambda subtype: not subtype.internal)
self.assertEqual(sub1.message_partner_ids, self.user_portal.partner_id | self.user_employee.partner_id)
diff --git a/addons/test_mail/tests/test_message_track.py b/addons/test_mail/tests/test_message_track.py
index e66286fd406..ab8da10bd8d 100644
--- a/addons/test_mail/tests/test_message_track.py
+++ b/addons/test_mail/tests/test_message_track.py
@@ -26,17 +26,6 @@ class TestTracking(common.BaseFunctionalTest, common.MockEmails):
def setUp(self):
super(TestTracking, self).setUp()
- self.track_subtype_umbrella = self.env['mail.message.subtype'].create({
- 'name': 'Umbrella',
- 'description': 'Umbrella Changed',
- })
- self.env['ir.model.data'].create({
- 'name': 'track_subtype_umbrella',
- 'model': 'mail.message.subtype',
- 'module': 'mail',
- 'res_id': self.track_subtype_umbrella.id
- })
-
record = self.env['mail.test.full'].sudo(self.user_employee).with_context(self._quick_create_ctx).create({
'name': 'Test',
})
@@ -78,10 +67,10 @@ class TestTracking(common.BaseFunctionalTest, common.MockEmails):
""" Update some tracked fields linked to some subtype -> message with onchange + always tracked values """
self.record.message_subscribe(
partner_ids=[self.user_admin.partner_id.id],
- subtype_ids=[self.track_subtype_umbrella.id]
+ subtype_ids=[self.env.ref('test_mail.st_mail_test_full_umbrella_upd').id]
)
- umbrella = self.env['mail.test'].create({'name': 'Umbrella'})
+ umbrella = self.env['mail.test'].with_context(mail_create_nosubscribe=True).create({'name': 'Umbrella'})
self.record.write({
'name': 'Test2',
'email_from': 'noone@example.com',
@@ -89,7 +78,7 @@ class TestTracking(common.BaseFunctionalTest, common.MockEmails):
})
# one new message containing tracking; subtype linked to tracking
self.assertEqual(len(self.record.message_ids), 1)
- self.assertEqual(self.record.message_ids.subtype_id, self.track_subtype_umbrella)
+ self.assertEqual(self.record.message_ids.subtype_id, self.env.ref('test_mail.st_mail_test_full_umbrella_upd'))
# no specific recipients except those following umbrella
self.assertEqual(self.record.message_ids.partner_ids, self.env['res.partner'])
@@ -104,13 +93,7 @@ class TestTracking(common.BaseFunctionalTest, common.MockEmails):
def test_message_track_template(self):
""" Update some tracked fields linked to some template -> message with onchange + always tracked values """
- mail_template = self.env['mail.template'].create({
- 'model_id': self.env.ref('test_mail.model_mail_test_full').id,
- 'body_html': '
Hello ${object.name}
',
- 'subject': 'Test Template',
- 'partner_to': '${object.customer_id.id | safe}',
- })
- self.record.write({'mail_template': mail_template.id})
+ self.record.write({'mail_template': self.env.ref('test_mail.mail_test_full_tracking_tpl').id})
self.assertEqual(self.record.message_ids, self.env['mail.message'])
self.record.write({