summaryrefslogtreecommitdiff
path: root/addons/website_mass_mailing/controllers
diff options
context:
space:
mode:
authorKishan Gajjar <kig@odoo.com>2019-02-05 06:55:25 +0000
committerqsm-odoo <qsm@odoo.com>2019-06-25 09:20:35 +0000
commit34c4b3ad8a23988ecdd8112156ea13da518a2e90 (patch)
tree201c2047661b6cf4f58771da45abba6f9d3857bb /addons/website_mass_mailing/controllers
parent2ad49ec93e39ae5d59ccc17884408870e1c86c5e (diff)
[IMP] website_mass_mailing, *: improve newsletter snippets
* website, mass_mailing, web_editor This commit adds various improvements in newsletter snippets as follow: - Improves UI for newsletter popup. - We only had one popup for all websites. Now, we can have a different popup for each website. - The popup was not appearing on mobile/tablet devices. Now, in mobile/tablet devices, the popup appears automatically after 5secs. - Added the ability to customize the whole editor popup like any editable area (background colors, etc). - User needed to enable popup snippet from the settings. We removed that setting so now popup snippet will always be available. - Added new snippet "Newsletter block". - Display notification after successful subscription the same way for all newsletter snippets. Closes https://github.com/odoo/odoo/pull/29353 task-1903256 closes odoo/odoo#29353 Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com> Co-authored-by: qsm-odoo <qsm@odoo.com>
Diffstat (limited to 'addons/website_mass_mailing/controllers')
-rw-r--r--addons/website_mass_mailing/controllers/main.py29
1 files changed, 25 insertions, 4 deletions
diff --git a/addons/website_mass_mailing/controllers/main.py b/addons/website_mass_mailing/controllers/main.py
index 3676ae26741..fc49d23d83b 100644
--- a/addons/website_mass_mailing/controllers/main.py
+++ b/addons/website_mass_mailing/controllers/main.py
@@ -2,6 +2,7 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo.http import route, request
+from odoo.osv import expression
from odoo.addons.mass_mailing.controllers.main import MassMailController
@@ -39,12 +40,32 @@ class MassMailController(MassMailController):
list_contact_rel.opt_out = False
# add email to session
request.session['mass_mailing_email'] = email
- return True
+ mass_mailing_list = request.env['mail.mass_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")
def get_mass_mailing_content(self, newsletter_id, **post):
+ PopupModel = request.env['website.mass_mailing.popup'].sudo()
data = self.is_subscriber(newsletter_id, **post)
- mass_mailing_list = request.env['mail.mass_mailing.list'].sudo().browse(int(newsletter_id))
- data['content'] = mass_mailing_list.popup_content,
- data['redirect_url'] = mass_mailing_list.popup_redirect_url
+ domain = expression.AND([request.website.website_domain(), [('mailing_list_id', '=', newsletter_id)]])
+ mass_mailing_popup = PopupModel.search(domain, limit=1)
+ if mass_mailing_popup:
+ data['popup_content'] = mass_mailing_popup.popup_content
+ else:
+ data.update(PopupModel.default_get(['popup_content']))
return data
+
+ @route(['/website_mass_mailing/set_content'], type='json', website=True, auth="user")
+ def set_mass_mailing_content(self, newsletter_id, content, **post):
+ PopupModel = request.env['website.mass_mailing.popup']
+ domain = expression.AND([request.website.website_domain(), [('mailing_list_id', '=', newsletter_id)]])
+ mass_mailing_popup = PopupModel.search(domain, limit=1)
+ if mass_mailing_popup:
+ mass_mailing_popup.write({'popup_content': content})
+ else:
+ PopupModel.create({
+ 'mailing_list_id': newsletter_id,
+ 'popup_content': content,
+ 'website_id': request.website.id,
+ })
+ return True