diff options
| author | Kishan Gajjar <kig@odoo.com> | 2019-02-05 06:55:25 +0000 |
|---|---|---|
| committer | qsm-odoo <qsm@odoo.com> | 2019-06-25 09:20:35 +0000 |
| commit | 34c4b3ad8a23988ecdd8112156ea13da518a2e90 (patch) | |
| tree | 201c2047661b6cf4f58771da45abba6f9d3857bb /addons/website_mass_mailing/controllers/main.py | |
| parent | 2ad49ec93e39ae5d59ccc17884408870e1c86c5e (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/main.py')
| -rw-r--r-- | addons/website_mass_mailing/controllers/main.py | 29 |
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 |
