* [FIX] mass_mailing_partner: Fix and optimize batch writes
Before this patch, all customizations done per contact in a batch write, except the last one, were ignored. It also was enforcing to write on some fields that were already fine, triggering their constraints unnecesarily, and causing unwanted side effects such as when combined with `mail_tracking_mass_mailing` and `mass_mailing_list_dynamic` in a fully synced list.
After this patch, customized writes are written one by one, and they only get the really needed customizations.
* !fixup [FIX] mass_mailing_partner: Fix and optimize batch writes
* !fixup [FIX] mass_mailing_partner: Fix and optimize batch writes
* !fixup [FIX] mass_mailing_partner: Fix and optimize batch writes
- 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.