mirror of https://github.com/OCA/social.git
[FIX] mass_mailing_list_dynamic: Reversible dynamic list
parent
fb76420bff
commit
3edb0ec21c
|
@ -21,6 +21,7 @@ To create a dynamic mailing list, you need to:
|
||||||
#. Go to *Mass Mailing > Mailings > Mailing Lists* and create one.
|
#. Go to *Mass Mailing > Mailings > Mailing Lists* and create one.
|
||||||
#. Check the *Dynamic* box.
|
#. Check the *Dynamic* box.
|
||||||
#. Choose a *Sync method*:
|
#. Choose a *Sync method*:
|
||||||
|
|
||||||
- Leave empty to use as a manual mailing list, the normal behavior.
|
- Leave empty to use as a manual mailing list, the normal behavior.
|
||||||
- *Only add new records* to make sure no records disappear from the list
|
- *Only add new records* to make sure no records disappear from the list
|
||||||
when partners stop matching the *Synchronization critera*.
|
when partners stop matching the *Synchronization critera*.
|
||||||
|
@ -47,9 +48,6 @@ Usage
|
||||||
#. Before sending the mass mailing, the list will be synced for having latest
|
#. Before sending the mass mailing, the list will be synced for having latest
|
||||||
changes.
|
changes.
|
||||||
|
|
||||||
Usage
|
|
||||||
=====
|
|
||||||
|
|
||||||
When you hit the *Sync now* button or send a mass mailing to this list, its
|
When you hit the *Sync now* button or send a mass mailing to this list, its
|
||||||
contacts will be automatically updated.
|
contacts will be automatically updated.
|
||||||
|
|
||||||
|
@ -90,6 +88,7 @@ Contributors
|
||||||
* `Tecnativa <https://www.tecnativa.com>`_:
|
* `Tecnativa <https://www.tecnativa.com>`_:
|
||||||
* Jairo Llopis <jairo.llopis@tecnativa.com>
|
* Jairo Llopis <jairo.llopis@tecnativa.com>
|
||||||
* Pedro M. Baeza <pedro.baeza@tecnativa.com>
|
* Pedro M. Baeza <pedro.baeza@tecnativa.com>
|
||||||
|
* David Vidal <david.vidal@tecnativa.com>
|
||||||
|
|
||||||
Do not contact contributors directly about support or help with technical issues.
|
Do not contact contributors directly about support or help with technical issues.
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Copyright 2017 Tecnativa - Jairo Llopis
|
# Copyright 2017 Tecnativa - Jairo Llopis
|
||||||
|
# Copyright 2018 Tecnativa - David Vidal
|
||||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
||||||
{
|
{
|
||||||
"name": "Dynamic Mass Mailing Lists",
|
"name": "Dynamic Mass Mailing Lists",
|
||||||
"summary": "Mass mailing lists that get autopopulated",
|
"summary": "Mass mailing lists that get autopopulated",
|
||||||
"version": "10.0.1.1.0",
|
"version": "10.0.1.1.1",
|
||||||
"category": "Marketing",
|
"category": "Marketing",
|
||||||
"website": "https://github.com/OCA/social",
|
"website": "https://github.com/OCA/social",
|
||||||
"author": "Tecnativa, Odoo Community Association (OCA)",
|
"author": "Tecnativa, Odoo Community Association (OCA)",
|
||||||
|
|
|
@ -13,7 +13,8 @@ class MassMailingContact(models.Model):
|
||||||
def _check_no_manual_edits_on_fully_synced_lists(self):
|
def _check_no_manual_edits_on_fully_synced_lists(self):
|
||||||
if self.env.context.get("syncing"):
|
if self.env.context.get("syncing"):
|
||||||
return
|
return
|
||||||
if any(one.list_id.sync_method == "full" for one in self):
|
if any((one.list_id.dynamic and
|
||||||
|
one.list_id.sync_method == "full") for one in self):
|
||||||
raise ValidationError(
|
raise ValidationError(
|
||||||
_("Cannot edit manually contacts in a fully "
|
_("Cannot edit manually contacts in a fully "
|
||||||
"synchronized list. Change its sync method or execute "
|
"synchronized list. Change its sync method or execute "
|
||||||
|
|
|
@ -78,6 +78,15 @@ class DynamicListCase(common.SavepointCase):
|
||||||
contact1.email = "other@example.com"
|
contact1.email = "other@example.com"
|
||||||
with self.assertRaises(ValidationError):
|
with self.assertRaises(ValidationError):
|
||||||
contact1.partner_id = self.partners[0]
|
contact1.partner_id = self.partners[0]
|
||||||
|
# Unset dynamic list
|
||||||
|
self.list.dynamic = False
|
||||||
|
# Now the contact is created without exception
|
||||||
|
Contact.create({
|
||||||
|
"list_id": self.list.id,
|
||||||
|
"email": "test@example.com",
|
||||||
|
})
|
||||||
|
# Contacts can now be changed
|
||||||
|
contact1.name = "other"
|
||||||
|
|
||||||
def test_sync_when_sending_mail(self):
|
def test_sync_when_sending_mail(self):
|
||||||
"""Check that list in synced when sending a mass mailing."""
|
"""Check that list in synced when sending a mass mailing."""
|
||||||
|
|
Loading…
Reference in New Issue