summaryrefslogtreecommitdiff
path: root/addons/website_mass_mailing
diff options
context:
space:
mode:
authorThibault Delavallée <tde@odoo.com>2019-07-17 10:58:39 +0000
committerThibault Delavallée <tde@odoo.com>2019-07-17 15:50:33 +0000
commit772e1c0cc4e75cec971d2b4e1c820eb54872dc93 (patch)
tree30126a9fa9acabb9f75ab1d0665428180b9cc444 /addons/website_mass_mailing
parent2896aad34e797b6ca65a8efe3c5d71f31500a9a2 (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__.py3
-rw-r--r--addons/website_mass_mailing/controllers/main.py18
-rw-r--r--addons/website_mass_mailing/models/__init__.py3
-rw-r--r--addons/website_mass_mailing/models/mailing_list.py14
-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.js2
-rw-r--r--addons/website_mass_mailing/views/mailing_list_views.xml26
-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>