-
- Downloads
[IMP] mail, mass_mailing : apply blacklist, opt_out per mailing list
Purpose ======= - Apply the blacklist implementation to Improve mailing subscription to be more compliant with the European GDPR law. Keep a list of people who does not want to receive promotional emails (or mass mailing in general) anymore. - Allows the recipient to update himself his mailing preferences Specifications =========== This commit is regrouping some main changes on mass mailing. Apply Blacklist for following models through blacklist.mixin : - crm.lead - res.partner - mail.mass_mailing.contact - mail.channel.partner - Opt_out per mailing list instead of per mailing contact. - Replace opt_out by blacklist in crm.lead + res.partner models - Added 'ignored' state for mass_mailing. Ignored = blacklisted, opted-out Ignored email are not included into final statistics to avoid confusion. - Unsubscribe(d) pages migrated from website_mass_mailing to mass_mailing module as thoses pages should work without having the website module installed Detailed implementation =================== Mass-mailing : - A blacklisted email is notified by the ban icon next to the email field. (at the left of the email field for display purpose) - Renaming the '_get_blacklist' method that was actually searching opt_out list into 'get_opt_out_list' - Opt out per mailing list : Add opt_out + related fields (for display and ergonomy reasons) on the relational model - Display relational model tree view instead of mass_mailing.contact tree view when clicking on mass_mailing_list in kanban view -> In order to be align between contact_nbr displayed in kanban tile and the content of the tree view -> mass_mailing contact is accesible via the user icon in this tree view - Remove custom filters 'filter_contact_subscription' and 'filter_contact_unsubscription' as opt_out is not on mass_mailing.contact model anymore - Add 'is_public' to mailing list The name of this mailing list can be seen (or not) by recipient in the unsubscription page If the mailing lists used in the mass mailing are not public, the user in only informed that he has been unsubscribed. If the mailing lists are public, the user is informed that he has been unsubscribed from the mailing lists and he has the choice to modify his subscription to all the public mailing list he is or was subscribed to. - Unsubscription Page : - mass_mailing_contact : Opt_out per mailing list, done by email and not by id, as multiple contact can have the same email The recipient can add/remove himself to/from the blacklist The recipient can send a feedback about why he unsubscribed - crm.lead + res.partner : Once the recipient unsubscribe, he is automatically blacklisted The recipient can 'Come back' and remove himself from the blacklist if he changes his mind - Show blacklist button parameter added in config : The idea is to enable/disable the fact that the recipient can add himself to the blacklist by showing or not the 'blacklist me' button Only applies for mass_mailing.contact. The recipient, once blacklisted, can always, no matter the value of this parameter, 'come back' and unblacklist himself crm.lead + res.partner : - Replace opt_out by blacklist in crm.lead + res.partner models. As when a res.partner or crm.lead unsubcribe, we assume that the recipient does not want to receive mass mailing anymore, at all, even if we adds him to a mailing list afterwards. He is then blacklisted to avoid this. With this behaviour, if a new lead is created with the same email address, he won't be able to receive mail in mass_mode. But he will still be able to receive '1 to 1' direct email. Task ID 33224 Closes #25966
Showing
- addons/crm/models/crm_lead.py 2 additions, 4 deletionsaddons/crm/models/crm_lead.py
- addons/crm/views/crm_lead_views.xml 11 additions, 6 deletionsaddons/crm/views/crm_lead_views.xml
- addons/delivery/views/partner_view.xml 1 addition, 1 deletionaddons/delivery/views/partner_view.xml
- addons/mail/__manifest__.py 1 addition, 0 deletionsaddons/mail/__manifest__.py
- addons/mail/models/mail_channel.py 6 additions, 2 deletionsaddons/mail/models/mail_channel.py
- addons/mail/models/res_partner.py 1 addition, 4 deletionsaddons/mail/models/res_partner.py
- addons/mail/views/mail_channel_partner_views.xml 22 additions, 0 deletionsaddons/mail/views/mail_channel_partner_views.xml
- addons/mail/views/res_partner_views.xml 9 additions, 1 deletionaddons/mail/views/res_partner_views.xml
- addons/mail/wizard/mail_compose_message.py 5 additions, 6 deletionsaddons/mail/wizard/mail_compose_message.py
- addons/mass_mailing/__manifest__.py 1 addition, 0 deletionsaddons/mass_mailing/__manifest__.py
- addons/mass_mailing/controllers/main.py 99 additions, 12 deletionsaddons/mass_mailing/controllers/main.py
- addons/mass_mailing/data/mass_mailing_demo.xml 0 additions, 1 deletionaddons/mass_mailing/data/mass_mailing_demo.xml
- addons/mass_mailing/models/mass_mailing.py 100 additions, 44 deletionsaddons/mass_mailing/models/mass_mailing.py
- addons/mass_mailing/models/mass_mailing_stats.py 8 additions, 3 deletionsaddons/mass_mailing/models/mass_mailing_stats.py
- addons/mass_mailing/models/res_config_settings.py 3 additions, 0 deletionsaddons/mass_mailing/models/res_config_settings.py
- addons/mass_mailing/security/ir.model.access.csv 1 addition, 0 deletionsaddons/mass_mailing/security/ir.model.access.csv
- addons/mass_mailing/static/src/js/unsubscribe.js 192 additions, 0 deletionsaddons/mass_mailing/static/src/js/unsubscribe.js
- addons/mass_mailing/static/src/scss/mass_mailing.scss 4 additions, 0 deletionsaddons/mass_mailing/static/src/scss/mass_mailing.scss
- addons/mass_mailing/tests/__init__.py 4 additions, 0 deletionsaddons/mass_mailing/tests/__init__.py
- addons/mass_mailing/tests/test_blacklist_access_rights.py 142 additions, 0 deletionsaddons/mass_mailing/tests/test_blacklist_access_rights.py
Loading
Please register or sign in to comment