diff options
| author | Thibault Delavallée <tde@odoo.com> | 2019-07-17 10:58:39 +0000 |
|---|---|---|
| committer | Thibault Delavallée <tde@odoo.com> | 2019-07-17 15:50:33 +0000 |
| commit | 772e1c0cc4e75cec971d2b4e1c820eb54872dc93 (patch) | |
| tree | 30126a9fa9acabb9f75ab1d0665428180b9cc444 /addons/website_mass_mailing | |
| parent | 2896aad34e797b6ca65a8efe3c5d71f31500a9a2 (diff) | |
[REF] mass_mailing: rename mail.mass_mailing.{.contact{_rel}, list{.merge}} models
PURPOSE
Mass mailing is currently a bit messy. As SMS will be added as a way to notify
people in mass through SMS let us take this opportunity to somehow clean this
application: organization, light code cleaning, model renaming.
SPECIFICATIONS
Rename mail.mass_mailing.list and mail.mass_mailing.list to mailing.list
and mailing.list.merge. Rename mail.mass_mailing.contact to mailing.contact.
Rename mail.mailing_list.list_contact_rel to mailing.contact.subscription.
Rationale :
* those new names are easier to understand: mailing.list and mailing.contact
are less mail-related, especially taking into account that SMS will allow
to be less mail-oriented;
* those names are easier to read / find / understand;
* align wizard and sub-models naming with the main naming;
* have a mailing as first part of namespacing;
MIGRATION
mail.mass_mailing.list model -> mailing.list
mail.mass_mailing.list.merge model -> mailing.list.merge
mail.mass_mailing.contact model -> mailing.contact
mail.mass_mailing.list_contact_rel model -> mailing.contact.subscription
mail_mass_mailing_contact_list_rel table -> mailing_contact_list_rel (specific
case of a decorated m2m)
fields updated (no column change)
* mailing.list: subscription_contact_ids -> subscription_ids
LINKS
Task ID 2037906
Preparing task ID 1997464 (SMS addition in mass mailing)
PR #34938
Diffstat (limited to 'addons/website_mass_mailing')
| -rw-r--r-- | addons/website_mass_mailing/__manifest__.py | 3 | ||||
| -rw-r--r-- | addons/website_mass_mailing/controllers/main.py | 18 | ||||
| -rw-r--r-- | addons/website_mass_mailing/models/__init__.py | 3 | ||||
| -rw-r--r-- | addons/website_mass_mailing/models/mailing_list.py | 14 | ||||
| -rw-r--r-- | addons/website_mass_mailing/models/website_mass_mailing.py (renamed from addons/website_mass_mailing/models/mass_mailing_list.py) | 12 | ||||
| -rw-r--r-- | addons/website_mass_mailing/static/src/js/website_mass_mailing.editor.js | 2 | ||||
| -rw-r--r-- | addons/website_mass_mailing/views/mailing_list_views.xml | 26 | ||||
| -rw-r--r-- | addons/website_mass_mailing/views/website_mass_mailing_views.xml (renamed from addons/website_mass_mailing/views/mass_mailing_view.xml) | 24 |
8 files changed, 55 insertions, 47 deletions
diff --git a/addons/website_mass_mailing/__manifest__.py b/addons/website_mass_mailing/__manifest__.py index 11d24b6d541..11c494b5673 100644 --- a/addons/website_mass_mailing/__manifest__.py +++ b/addons/website_mass_mailing/__manifest__.py @@ -15,7 +15,8 @@ On a simple click, your visitors can subscribe to mailing lists managed in the E 'security/ir.model.access.csv', 'views/website_mass_mailing_templates.xml', 'views/snippets_templates.xml', - 'views/mass_mailing_view.xml', + 'views/mailing_list_views.xml', + 'views/website_mass_mailing_views.xml', ], 'qweb': [ 'static/src/xml/*.xml', diff --git a/addons/website_mass_mailing/controllers/main.py b/addons/website_mass_mailing/controllers/main.py index fc49d23d83b..dc34504426c 100644 --- a/addons/website_mass_mailing/controllers/main.py +++ b/addons/website_mass_mailing/controllers/main.py @@ -18,29 +18,29 @@ class MassMailController(MassMailController): is_subscriber = False if email: - contacts_count = request.env['mail.mass_mailing.list_contact_rel'].sudo().search_count([('list_id', 'in', [int(list_id)]), ('contact_id.email', '=', email), ('opt_out', '=', False)]) + contacts_count = request.env['mailing.contact.subscription'].sudo().search_count([('list_id', 'in', [int(list_id)]), ('contact_id.email', '=', email), ('opt_out', '=', False)]) is_subscriber = contacts_count > 0 return {'is_subscriber': is_subscriber, 'email': email} @route('/website_mass_mailing/subscribe', type='json', website=True, auth="public") def subscribe(self, list_id, email, **post): - List_contact_rel = request.env['mail.mass_mailing.list_contact_rel'].sudo() - Contacts = request.env['mail.mass_mailing.contact'].sudo() + ContactSubscription = request.env['mailing.contact.subscription'].sudo() + Contacts = request.env['mailing.contact'].sudo() name, email = Contacts.get_name_email(email) - list_contact_rel = List_contact_rel.search([('list_id', '=', int(list_id)), ('contact_id.email', '=', email)], limit=1) - if not list_contact_rel: + subscription = ContactSubscription.search([('list_id', '=', int(list_id)), ('contact_id.email', '=', email)], limit=1) + if not subscription: # inline add_to_list as we've already called half of it contact_id = Contacts.search([('email', '=', email)], limit=1) if not contact_id: contact_id = Contacts.create({'name': name, 'email': email}) - List_contact_rel.create({'contact_id': contact_id.id, 'list_id': int(list_id)}) - elif list_contact_rel.opt_out: - list_contact_rel.opt_out = False + ContactSubscription.create({'contact_id': contact_id.id, 'list_id': int(list_id)}) + elif subscription.opt_out: + subscription.opt_out = False # add email to session request.session['mass_mailing_email'] = email - mass_mailing_list = request.env['mail.mass_mailing.list'].sudo().browse(list_id) + mass_mailing_list = request.env['mailing.list'].sudo().browse(list_id) return {'toast_content': mass_mailing_list.toast_content} @route(['/website_mass_mailing/get_content'], type='json', website=True, auth="public") diff --git a/addons/website_mass_mailing/models/__init__.py b/addons/website_mass_mailing/models/__init__.py index ecf18af5dd6..e8ef8b35d78 100644 --- a/addons/website_mass_mailing/models/__init__.py +++ b/addons/website_mass_mailing/models/__init__.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. -from . import mass_mailing_list +from . import mailing_list +from . import website_mass_mailing diff --git a/addons/website_mass_mailing/models/mailing_list.py b/addons/website_mass_mailing/models/mailing_list.py new file mode 100644 index 00000000000..0857563a814 --- /dev/null +++ b/addons/website_mass_mailing/models/mailing_list.py @@ -0,0 +1,14 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import fields, models + + +class MailingList(models.Model): + _inherit = 'mailing.list' + + def _default_toast_content(self): + return '<p>Thanks for subscribing!</p>' + + website_popup_ids = fields.One2many('website.mass_mailing.popup', 'mailing_list_id', string="Website Popups") + toast_content = fields.Html(default=_default_toast_content, translate=True) diff --git a/addons/website_mass_mailing/models/mass_mailing_list.py b/addons/website_mass_mailing/models/website_mass_mailing.py index a10344ecddb..fdad7c16bc2 100644 --- a/addons/website_mass_mailing/models/mass_mailing_list.py +++ b/addons/website_mass_mailing/models/website_mass_mailing.py @@ -4,16 +4,6 @@ from odoo import fields, models -class MassMailingList(models.Model): - _inherit = 'mail.mass_mailing.list' - - def _default_toast_content(self): - return '<p>Thanks for subscribing!</p>' - - website_popup_ids = fields.One2many('website.mass_mailing.popup', 'mailing_list_id', string="Website Popups") - toast_content = fields.Html(default=_default_toast_content, translate=True) - - class MassMailingPopup(models.Model): _name = 'website.mass_mailing.popup' _description = "Mailing list popup" @@ -21,6 +11,6 @@ class MassMailingPopup(models.Model): def _default_popup_content(self): return self.env['ir.ui.view'].render_template('website_mass_mailing.s_newsletter_block') - mailing_list_id = fields.Many2one('mail.mass_mailing.list') + mailing_list_id = fields.Many2one('mailing.list') website_id = fields.Many2one('website') popup_content = fields.Html(string="Website Popup Content", default=_default_popup_content, translate=True, sanitize=False) diff --git a/addons/website_mass_mailing/static/src/js/website_mass_mailing.editor.js b/addons/website_mass_mailing/static/src/js/website_mass_mailing.editor.js index 01ee423b6bd..526c7e35fec 100644 --- a/addons/website_mass_mailing/static/src/js/website_mass_mailing.editor.js +++ b/addons/website_mass_mailing/static/src/js/website_mass_mailing.editor.js @@ -30,7 +30,7 @@ options.registry.mailing_list_subscribe = options.Class.extend({ 'select': _t("Newsletter"), 'init': function (field, dialog) { return rpc.query({ - model: 'mail.mass_mailing.list', + model: 'mailing.list', method: 'name_search', args: ['', [['is_public', '=', true]]], context: self.options.recordInfo.context, diff --git a/addons/website_mass_mailing/views/mailing_list_views.xml b/addons/website_mass_mailing/views/mailing_list_views.xml new file mode 100644 index 00000000000..e5144cf63a6 --- /dev/null +++ b/addons/website_mass_mailing/views/mailing_list_views.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + <record id="mailing_list_view_form" model="ir.ui.view"> + <field name="name">mailing.list.view.form.inherit.website</field> + <field name="model">mailing.list</field> + <field name="inherit_id" ref="mass_mailing.mailing_list_view_form"/> + <field name="arch" type="xml"> + <xpath expr="//sheet" position="inside"> + <notebook> + <page string="Website popups"> + <field name="website_popup_ids"> + <tree> + <field name="website_id"/> + </tree> + </field> + </page> + </notebook> + </xpath> + <xpath expr="//div[hasclass('oe_title')]" position="after"> + <group> + <field name="toast_content"/> + </group> + </xpath> + </field> + </record> +</odoo> diff --git a/addons/website_mass_mailing/views/mass_mailing_view.xml b/addons/website_mass_mailing/views/website_mass_mailing_views.xml index abfc03f8a8a..5c9a34ac6c3 100644 --- a/addons/website_mass_mailing/views/mass_mailing_view.xml +++ b/addons/website_mass_mailing/views/website_mass_mailing_views.xml @@ -1,29 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> - <record id="view_mail_mass_mailing_list_form" model="ir.ui.view"> - <field name="name">mail.mass_mailing.list.form</field> - <field name="model">mail.mass_mailing.list</field> - <field name="inherit_id" ref="mass_mailing.view_mail_mass_mailing_list_form"/> - <field name="arch" type="xml"> - <xpath expr="//sheet" position="inside"> - <notebook> - <page string="Website popups"> - <field name="website_popup_ids"> - <tree> - <field name="website_id"/> - </tree> - </field> - </page> - </notebook> - </xpath> - <xpath expr="//div[hasclass('oe_title')]" position="after"> - <group> - <field name="toast_content"/> - </group> - </xpath> - </field> - </record> - <record id="view_mail_mass_mailing_popup_form" model="ir.ui.view"> <field name="name">website.mass_mailing.popup.form</field> <field name="model">website.mass_mailing.popup</field> |
