mirror of https://github.com/OCA/social.git
[IMP+FIX] mass_mailing_partner: Add partner_name in error constrain message + Add test related to write with multi-partner + Add sudo() to prevent user without mailing access try to merge contacts
parent
157ee5d0de
commit
0ad5deb7ee
|
@ -6,7 +6,7 @@
|
|||
|
||||
{
|
||||
"name": "Link partners with mass-mailing",
|
||||
"version": "13.0.1.0.3",
|
||||
"version": "13.0.1.0.6",
|
||||
"author": "Tecnativa, " "Odoo Community Association (OCA)",
|
||||
"website": "https://github.com/OCA/social",
|
||||
"license": "AGPL-3",
|
||||
|
|
|
@ -29,7 +29,8 @@ class MailingContact(models.Model):
|
|||
)
|
||||
if contact.list_ids & other_contact.mapped("list_ids"):
|
||||
raise ValidationError(
|
||||
_("Partner already exists in one of " "these mailing lists")
|
||||
_("Partner already exists in one of these mailing lists")
|
||||
+ ": %s" % contact.partner_id.display_name
|
||||
)
|
||||
|
||||
@api.onchange("partner_id")
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
# Copyright 2015 Pedro M. Baeza <pedro.baeza@tecnativa.com>
|
||||
# Copyright 2015 Antonio Espinosa <antonio.espinosa@tecnativa.com>
|
||||
# Copyright 2015 Tecnativa - Pedro M. Baeza
|
||||
# Copyright 2015 Tecnativa - Antonio Espinosa
|
||||
# Copyright 2015 Javier Iniesta <javieria@antiun.com>
|
||||
# Copyright 2020 Tecnativa - Manuel Calero
|
||||
# Copyright 2021 Tecnativa - Víctor Martínez
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from odoo.exceptions import ValidationError
|
||||
|
@ -42,3 +43,19 @@ class ResPartnerCase(base.BaseCase):
|
|||
self.check_mailing_contact_partner(contact)
|
||||
with self.assertRaises(ValidationError):
|
||||
self.partner.write({"email": False})
|
||||
|
||||
def test_write_res_partner_multi(self):
|
||||
self.assertEqual(len(self.partner.category_id.ids), 2)
|
||||
partner2 = self.partner.copy({"name": "Partner test 2"})
|
||||
self.partner.write({"category_id": [(4, self.category_3.id)]})
|
||||
self.assertEqual(len(self.partner.category_id.ids), 3)
|
||||
self.assertEqual(len(partner2.category_id.ids), 2)
|
||||
for partner in [self.partner, partner2]:
|
||||
self.create_mailing_contact(
|
||||
{"partner_id": partner.id, "list_ids": [[6, 0, [self.mailing_list.id]]]}
|
||||
)
|
||||
self.env["res.partner"].search(
|
||||
[("id", "in", (self.partner.id, partner2.id))]
|
||||
).write({"category_id": [(4, self.category_3.id)]})
|
||||
self.assertEqual(len(self.partner.category_id.ids), 3)
|
||||
self.assertEqual(len(partner2.category_id.ids), 3)
|
||||
|
|
|
@ -9,8 +9,10 @@ class BasePartnerMergeAutomaticWizard(models.TransientModel):
|
|||
|
||||
def _merge(self, partner_ids, dst_partner=None, extra_checks=True):
|
||||
if dst_partner:
|
||||
contacts = self.env["mailing.contact"].search(
|
||||
[("partner_id", "in", partner_ids)]
|
||||
contacts = (
|
||||
self.env["mailing.contact"]
|
||||
.sudo()
|
||||
.search([("partner_id", "in", partner_ids)])
|
||||
)
|
||||
if contacts:
|
||||
contacts = contacts.sorted(
|
||||
|
|
Loading…
Reference in New Issue