- We change the method to hook on (it wasn't correctly overriden anyway)
to ensure the list is resynced even if no recipients are left. For
example: we create a dynamic list with a domain expecting it to sync in
the first mass_mailing. It wouldn't sync as Odoo dismisses the mailing
considering no recipients are left thus it wouldn't get into the
`send_mail` method.
- Adds is_synced field to track whether a dynamic list has unsynced
changes or not so the user is aware that the definitive number of
contacts is yet to be determined.
- It fixes an issue that made impossible deleting a res.partner filter
when a list had use it to filter contacts.
- It also shows only the filters available for the user (shared and
belonging to self).
* [FIX+IMP] mass_mailing_list_dynamic: tests, icons, filters...
* Brand new icon
* Added feature of loading an existing filter as criteria
* Tests as SavepointCase for optimizing times
* Tests in post-install for avoiding errors on res.partner not null constraints
when several modules added them.
* Updated documentation.
* Fix mock in test for not commiting test data.
* [FIX] mass_mailing_list_dynamic: Wasn't able to create contacts in fully synced lists
Syncing context was being set in the wrong object. Added to test too.
* [FIX] mass_mailing_list_dynamic: Allow to write back vals from res.partner
Module mass_mailing_partner writes back certain values from partner to
mass_mailing_contact. Module should allow that write operation.
Before, on the backend if you check the `opt_out` checkbox and saving on a `mailing.contact`, the entire row (`mailing.contact.subscription`) would be unlinked. Combined with `mass_mailing_list_dynamic` this means the contact would just be re-subscribed over and over.
After, check `opt_out` will fill `unsubscription_date` and the row will stay. Tests in `mass_mailing_list_dynamic` pass.
- In DB which use large amounts of records and intesive use of
mass_mailings, not optimized compute records lead to a drastical
decrease of performance
* [FIX+IMP] mass_mailing_list_dynamic: tests, icons, filters...
* Brand new icon
* Added feature of loading an existing filter as criteria
* Tests as SavepointCase for optimizing times
* Tests in post-install for avoiding errors on res.partner not null constraints
when several modules added them.
* Updated documentation.
* Fix mock in test for not commiting test data.
* [FIX] mass_mailing_list_dynamic: Wasn't able to create contacts in fully synced lists
Syncing context was being set in the wrong object. Added to test too.
* [FIX] mass_mailing_list_dynamic: Allow to write back vals from res.partner
Module mass_mailing_partner writes back certain values from partner to
mass_mailing_contact. Module should allow that write operation.
Without this patch, users without access to reading and editing mass mailing contact records are now unable to change a partner's name or email. They'd recieve an exception such as:
AccessError: Sorry, you are not allowed to access this document. Only users with the following access level are currently allowed to do that:
- Mass Mailing/User
(Document model: mail.mass_mailing.contact)
Restrictive ACLs shouldn't restrict normal user operation nor DB consistency, so using sudo mode now and testing behavior.