Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions mail_composer_cc_bcc/tests/test_mail_cc_bcc.py
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,42 @@ def test_template_cc_bcc(self):
expecting = self.partner_cc2 + self.partner_bcc
self.assertEqual(composer.partner_bcc_ids, expecting)

def test_template_cc_overlapping_partner_ids(self):
"""A partner who is both the resolved 'To' and listed in the
template's Cc must end up only in partner_ids, not
duplicated into partner_cc_ids.
"""
self.test_record.email = "test-overlap@example.com"
tmpl_model = self.env["ir.model"].search([("model", "=", "res.partner")])
vals = {
"name": "Overlapping Cc Template",
"model_id": tmpl_model.id,
"subject": "Overlap",
"body_html": "<p>Hello</p>",
"email_cc": ", ".join(
tools.formataddr((p.name or "False", p.email or "False"))
for p in (self.partner_cc + self.test_record)
),
}
overlap_tmpl = self.env["mail.template"].create(vals)

form = self.open_mail_composer_form()
composer = form.save()
form = Form(composer)
form.template_id = overlap_tmpl
composer = form.save()

self.assertEqual(
composer.partner_ids,
self.test_record,
"The To recipient must still be resolved normally",
)
self.assertEqual(
composer.partner_cc_ids,
self.partner_cc,
"The To recipient must not also be duplicated into Cc",
)

def _set_parent_partner(self, parent, childs):
# Ensure assign works even when other modules are installed
# e.g. account: expect single record
Expand Down
2 changes: 2 additions & 0 deletions mail_composer_cc_bcc/wizards/mail_compose_message.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,8 @@ def _compute_partner_cc_bcc_ids(self):
elif not composer.template_id:
composer.partner_cc_ids = self.env.company.default_partner_cc_ids
composer.partner_bcc_ids = self.env.company.default_partner_bcc_ids
composer.partner_cc_ids -= composer.partner_ids
composer.partner_bcc_ids -= composer.partner_ids

@api.depends(
"composition_mode", "model", "parent_id", "res_domain", "res_ids", "template_id"
Expand Down
Loading