diff --git a/addons/mass_mailing/__manifest__.py b/addons/mass_mailing/__manifest__.py index b9ec211e7d0..9580bce45b9 100644 --- a/addons/mass_mailing/__manifest__.py +++ b/addons/mass_mailing/__manifest__.py @@ -36,16 +36,17 @@ 'wizard/mailing_list_merge_views.xml', 'wizard/mailing_mailing_test_views.xml', 'wizard/mailing_mailing_schedule_date_views.xml', + 'report/mailing_trace_report_views.xml', 'views/mailing_filter_views.xml', - 'views/mailing_mailing_views_menus.xml', 'views/mailing_trace_views.xml', 'views/link_tracker_views.xml', 'views/mailing_contact_views.xml', + 'views/mailing_contact_subscription_views.xml', 'views/mailing_list_views.xml', 'views/mailing_mailing_views.xml', 'views/res_config_settings_views.xml', 'views/utm_campaign_views.xml', - 'report/mailing_trace_report_views.xml', + 'views/mailing_menus.xml', 'views/assets.xml', 'views/mass_mailing_templates_portal.xml', 'views/themes_templates.xml', diff --git a/addons/mass_mailing/models/__init__.py b/addons/mass_mailing/models/__init__.py index 62a584ceda8..3ad476609b3 100644 --- a/addons/mass_mailing/models/__init__.py +++ b/addons/mass_mailing/models/__init__.py @@ -3,6 +3,7 @@ from . import ir_model from . import link_tracker +from . import mailing_contact_subscription from . import mailing_contact from . import mailing_list from . import mailing_trace diff --git a/addons/mass_mailing/models/mailing_contact.py b/addons/mass_mailing/models/mailing_contact.py index 717019aa886..1fa42ad9135 100644 --- a/addons/mass_mailing/models/mailing_contact.py +++ b/addons/mass_mailing/models/mailing_contact.py @@ -6,49 +6,6 @@ from odoo.exceptions import UserError from odoo.osv import expression -class MassMailingContactListRel(models.Model): - """ Intermediate model between mass mailing list and mass mailing contact - Indicates if a contact is opted out for a particular list - """ - _name = 'mailing.contact.subscription' - _description = 'Mass Mailing Subscription Information' - _table = 'mailing_contact_list_rel' - _rec_name = 'contact_id' - _order = 'list_id DESC, contact_id DESC' - - contact_id = fields.Many2one('mailing.contact', string='Contact', ondelete='cascade', required=True) - list_id = fields.Many2one('mailing.list', string='Mailing List', ondelete='cascade', required=True) - opt_out = fields.Boolean( - string='Opt Out', - default=False, - help='The contact has chosen not to receive mails anymore from this list') - unsubscription_date = fields.Datetime(string='Unsubscription Date') - message_bounce = fields.Integer(related='contact_id.message_bounce', store=False, readonly=False) - is_blacklisted = fields.Boolean(related='contact_id.is_blacklisted', store=False, readonly=False) - - _sql_constraints = [ - ('unique_contact_list', 'unique (contact_id, list_id)', - 'A mailing contact cannot subscribe to the same mailing list multiple times.') - ] - - @api.model_create_multi - def create(self, vals_list): - now = fields.Datetime.now() - for vals in vals_list: - if 'opt_out' in vals and 'unsubscription_date' not in vals: - vals['unsubscription_date'] = now if vals['opt_out'] else False - if vals.get('unsubscription_date'): - vals['opt_out'] = True - return super().create(vals_list) - - def write(self, vals): - if 'opt_out' in vals and 'unsubscription_date' not in vals: - vals['unsubscription_date'] = fields.Datetime.now() if vals['opt_out'] else False - if vals.get('unsubscription_date'): - vals['opt_out'] = True - return super(MassMailingContactListRel, self).write(vals) - - class MassMailingContact(models.Model): """Model of a contact. This model is different from the partner model because it holds only some basic information: name, email. The purpose is to diff --git a/addons/mass_mailing/models/mailing_contact_subscription.py b/addons/mass_mailing/models/mailing_contact_subscription.py new file mode 100644 index 00000000000..c20c504587b --- /dev/null +++ b/addons/mass_mailing/models/mailing_contact_subscription.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, fields, models + + +class MassMailingContactListRel(models.Model): + """ Intermediate model between mass mailing list and mass mailing contact + Indicates if a contact is opted out for a particular list + """ + _name = 'mailing.contact.subscription' + _description = 'Mass Mailing Subscription Information' + _table = 'mailing_contact_list_rel' + _rec_name = 'contact_id' + _order = 'list_id DESC, contact_id DESC' + + contact_id = fields.Many2one('mailing.contact', string='Contact', ondelete='cascade', required=True) + list_id = fields.Many2one('mailing.list', string='Mailing List', ondelete='cascade', required=True) + opt_out = fields.Boolean( + string='Opt Out', + default=False, + help='The contact has chosen not to receive mails anymore from this list') + unsubscription_date = fields.Datetime(string='Unsubscription Date') + message_bounce = fields.Integer(related='contact_id.message_bounce', store=False, readonly=False) + is_blacklisted = fields.Boolean(related='contact_id.is_blacklisted', store=False, readonly=False) + + _sql_constraints = [ + ('unique_contact_list', 'unique (contact_id, list_id)', + 'A mailing contact cannot subscribe to the same mailing list multiple times.') + ] + + @api.model_create_multi + def create(self, vals_list): + now = fields.Datetime.now() + for vals in vals_list: + if 'opt_out' in vals and 'unsubscription_date' not in vals: + vals['unsubscription_date'] = now if vals['opt_out'] else False + if vals.get('unsubscription_date'): + vals['opt_out'] = True + return super().create(vals_list) + + def write(self, vals): + if 'opt_out' in vals and 'unsubscription_date' not in vals: + vals['unsubscription_date'] = fields.Datetime.now() if vals['opt_out'] else False + if vals.get('unsubscription_date'): + vals['opt_out'] = True + return super(MassMailingContactListRel, self).write(vals) diff --git a/addons/mass_mailing/report/mailing_trace_report_views.xml b/addons/mass_mailing/report/mailing_trace_report_views.xml index 464c9f09327..01b94169f32 100644 --- a/addons/mass_mailing/report/mailing_trace_report_views.xml +++ b/addons/mass_mailing/report/mailing_trace_report_views.xml @@ -95,8 +95,4 @@

- - diff --git a/addons/mass_mailing/views/link_tracker_views.xml b/addons/mass_mailing/views/link_tracker_views.xml index 615b4c27f24..ef227f04f75 100644 --- a/addons/mass_mailing/views/link_tracker_views.xml +++ b/addons/mass_mailing/views/link_tracker_views.xml @@ -78,12 +78,4 @@ - - - - diff --git a/addons/mass_mailing/views/mailing_contact_subscription_views.xml b/addons/mass_mailing/views/mailing_contact_subscription_views.xml new file mode 100644 index 00000000000..d59e92300f4 --- /dev/null +++ b/addons/mass_mailing/views/mailing_contact_subscription_views.xml @@ -0,0 +1,53 @@ + + + + mailing.contact.subscription.view.form + mailing.contact.subscription + 10 + +
+ + + + + + +
+
+
+ + + mailing.contact.subscription.view.tree + mailing.contact.subscription + + + + + + + + + + + + + mailing.contact.subscription.view.search + mailing.contact.subscription + + + + + + + + +
diff --git a/addons/mass_mailing/views/mailing_contact_views.xml b/addons/mass_mailing/views/mailing_contact_views.xml index 30a491b311d..a8ce9c32af7 100644 --- a/addons/mass_mailing/views/mailing_contact_views.xml +++ b/addons/mass_mailing/views/mailing_contact_views.xml @@ -1,58 +1,6 @@ - - - mailing.contact.subscription.view.form - mailing.contact.subscription - 10 - -
- - - - - - -
-
-
- - - mailing.contact.subscription.view.tree - mailing.contact.subscription - - - - - - - - - - - - - mailing.contact.subscription.view.search - mailing.contact.subscription - - - - - - - - - - + mailing.contact.view.search mailing.contact @@ -241,8 +189,4 @@

- -
diff --git a/addons/mass_mailing/views/mailing_list_views.xml b/addons/mass_mailing/views/mailing_list_views.xml index db3b5c34528..22de8850c81 100644 --- a/addons/mass_mailing/views/mailing_list_views.xml +++ b/addons/mass_mailing/views/mailing_list_views.xml @@ -293,8 +293,4 @@

- - diff --git a/addons/mass_mailing/views/mailing_mailing_views.xml b/addons/mass_mailing/views/mailing_mailing_views.xml index 7e8745fb0e2..8a755956fc3 100644 --- a/addons/mass_mailing/views/mailing_mailing_views.xml +++ b/addons/mass_mailing/views/mailing_mailing_views.xml @@ -718,10 +718,4 @@ mailing.mailing form - - - diff --git a/addons/mass_mailing/views/mailing_mailing_views_menus.xml b/addons/mass_mailing/views/mailing_mailing_views_menus.xml deleted file mode 100644 index db7aa2b7dc8..00000000000 --- a/addons/mass_mailing/views/mailing_mailing_views_menus.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/addons/mass_mailing/views/mailing_menus.xml b/addons/mass_mailing/views/mailing_menus.xml new file mode 100644 index 00000000000..20f92317129 --- /dev/null +++ b/addons/mass_mailing/views/mailing_menus.xml @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/addons/mass_mailing/views/mailing_trace_views.xml b/addons/mass_mailing/views/mailing_trace_views.xml index ec50f179d98..29de31fffc2 100644 --- a/addons/mass_mailing/views/mailing_trace_views.xml +++ b/addons/mass_mailing/views/mailing_trace_views.xml @@ -140,10 +140,4 @@

- - - diff --git a/addons/mass_mailing/views/res_config_settings_views.xml b/addons/mass_mailing/views/res_config_settings_views.xml index d3b8715b288..0ef06f24ac0 100644 --- a/addons/mass_mailing/views/res_config_settings_views.xml +++ b/addons/mass_mailing/views/res_config_settings_views.xml @@ -78,7 +78,4 @@ inline {'module' : 'mass_mailing', 'bin_size': False} - - diff --git a/addons/mass_mailing/views/utm_campaign_views.xml b/addons/mass_mailing/views/utm_campaign_views.xml index 8b01bc0f94f..b93eb906b05 100644 --- a/addons/mass_mailing/views/utm_campaign_views.xml +++ b/addons/mass_mailing/views/utm_campaign_views.xml @@ -111,20 +111,4 @@ [('is_auto_campaign', '=', False)] - - - - - - diff --git a/addons/mass_mailing_sms/__manifest__.py b/addons/mass_mailing_sms/__manifest__.py index 8346e4c4d77..80fbd96f4cf 100644 --- a/addons/mass_mailing_sms/__manifest__.py +++ b/addons/mass_mailing_sms/__manifest__.py @@ -15,15 +15,14 @@ 'data': [ 'data/utm_data.xml', 'security/ir.model.access.csv', - 'views/mailing_sms_menus.xml', + 'report/mailing_trace_report_views.xml', 'views/mailing_list_views.xml', 'views/mailing_contact_views.xml', 'views/mailing_trace_views.xml', 'views/mailing_mailing_views.xml', - 'views/link_tracker_views.xml', 'views/mass_mailing_sms_templates_portal.xml', 'views/utm_campaign_views.xml', - 'report/mailing_trace_report_views.xml', + 'views/mailing_sms_menus.xml', 'wizard/sms_composer_views.xml', 'wizard/mailing_sms_test_views.xml', ], diff --git a/addons/mass_mailing_sms/report/mailing_trace_report_views.xml b/addons/mass_mailing_sms/report/mailing_trace_report_views.xml index 4a84bd7df6e..430aedd4246 100644 --- a/addons/mass_mailing_sms/report/mailing_trace_report_views.xml +++ b/addons/mass_mailing_sms/report/mailing_trace_report_views.xml @@ -83,9 +83,4 @@ - - - - - diff --git a/addons/mass_mailing_sms/views/link_tracker_views.xml b/addons/mass_mailing_sms/views/link_tracker_views.xml deleted file mode 100644 index 30ab3459e02..00000000000 --- a/addons/mass_mailing_sms/views/link_tracker_views.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - diff --git a/addons/mass_mailing_sms/views/mailing_contact_views.xml b/addons/mass_mailing_sms/views/mailing_contact_views.xml index 0d6c1acf46b..012722dae27 100644 --- a/addons/mass_mailing_sms/views/mailing_contact_views.xml +++ b/addons/mass_mailing_sms/views/mailing_contact_views.xml @@ -91,10 +91,4 @@

- - - - - - diff --git a/addons/mass_mailing_sms/views/mailing_list_views.xml b/addons/mass_mailing_sms/views/mailing_list_views.xml index 16ccdf0ccad..a469d9a899f 100644 --- a/addons/mass_mailing_sms/views/mailing_list_views.xml +++ b/addons/mass_mailing_sms/views/mailing_list_views.xml @@ -42,9 +42,4 @@

- - - - - diff --git a/addons/mass_mailing_sms/views/mailing_mailing_views.xml b/addons/mass_mailing_sms/views/mailing_mailing_views.xml index 14decacb220..6d336dcd25e 100644 --- a/addons/mass_mailing_sms/views/mailing_mailing_views.xml +++ b/addons/mass_mailing_sms/views/mailing_mailing_views.xml @@ -281,9 +281,4 @@ - - - - - diff --git a/addons/mass_mailing_sms/views/mailing_sms_menus.xml b/addons/mass_mailing_sms/views/mailing_sms_menus.xml index b60d678c5b5..c60a4ebf881 100644 --- a/addons/mass_mailing_sms/views/mailing_sms_menus.xml +++ b/addons/mass_mailing_sms/views/mailing_sms_menus.xml @@ -10,6 +10,7 @@ @@ -23,19 +24,30 @@ - + + + + @@ -55,7 +67,7 @@ groups="mass_mailing.group_mass_mailing_user"/> - -