diff --git a/addons/base_automation/tests/__init__.py b/addons/base_automation/tests/__init__.py index 92a8a4959d90b23f0187506402257af20eb59dc6..a6533bd6153bddbdc2e7ff09137518d5583e6a12 100644 --- a/addons/base_automation/tests/__init__.py +++ b/addons/base_automation/tests/__init__.py @@ -1,3 +1,5 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. + from . import test_automation +from . import test_mail_composer diff --git a/addons/base_automation/tests/test_mail_composer.py b/addons/base_automation/tests/test_mail_composer.py new file mode 100644 index 0000000000000000000000000000000000000000..2609466facdc362f8e2bd6e5af5f6b859e1109b8 --- /dev/null +++ b/addons/base_automation/tests/test_mail_composer.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo.tests.common import tagged, HttpCase + + +@tagged('-at_install', 'post_install', 'mail_composer') +class TestMailFullComposer(HttpCase): + + def test_full_composer_tour(self): + self.env['mail.template'].create({ + 'name': 'Test template', # name hardcoded for test + 'partner_to': '${object.id}', + 'lang': '${object.lang}', + 'auto_delete': True, + 'model_id': self.ref('base.model_res_partner'), + }) + test_user = self.env['res.users'].create({ + 'email': 'testuser@testuser.com', + 'groups_id': [ + (6, 0, [self.ref('base.group_user'), self.ref('base.group_partner_manager')]), + ], + 'name': 'Test User', + 'login': 'testuser', + 'password': 'testuser', + }) + + automated_action = self.env['base.automation'].create({ + 'name': 'Test', + 'active': True, + 'trigger': 'on_change', + 'on_change_field_ids': (4, self.ref('mail.field_mail_compose_message__template_id'),), + 'state': 'code', + 'model_id': self.env.ref('mail.model_mail_compose_message').id, + }) + + self.start_tour("/web#id=%d&model=res.partner" % test_user.partner_id, 'mail/static/tests/tours/mail_full_composer_test_tour.js', login='testuser') + + automated_action.unlink() diff --git a/addons/mail/tests/test_mail_full_composer.py b/addons/mail/tests/test_mail_full_composer.py index 35dea3ae581e6b401f61cac1cbaabae0445723c3..e14e04288ead281053701312760d64a9ba020654 100644 --- a/addons/mail/tests/test_mail_full_composer.py +++ b/addons/mail/tests/test_mail_full_composer.py @@ -4,7 +4,7 @@ from odoo.tests.common import tagged, HttpCase -@tagged('-at_install', 'post_install') +@tagged('-at_install', 'post_install', 'mail_composer') class TestMailFullComposer(HttpCase): def test_full_composer_tour(self): diff --git a/addons/mail/wizard/mail_compose_message.py b/addons/mail/wizard/mail_compose_message.py index 327cad2bc8b805f4b0958a8377675cbf1191d2c4..cfca50912579e37a7d745445f3de02b0f3d77f33 100644 --- a/addons/mail/wizard/mail_compose_message.py +++ b/addons/mail/wizard/mail_compose_message.py @@ -77,6 +77,10 @@ class MailComposer(models.TransientModel): if result.get('composition_mode') == 'comment' and (set(fields) & set(['model', 'res_id', 'partner_ids', 'record_name', 'subject'])): result.update(self.get_record_data(result)) + # when being in new mode, create_uid is not granted -> ACLs issue may arise + if 'create_uid' in fields and 'create_uid' not in result: + result['create_uid'] = self.env.uid + filtered_result = dict((fname, result[fname]) for fname in result if fname in fields) return filtered_result