diff --git a/addons/mass_mailing/models/mass_mailing.py b/addons/mass_mailing/models/mass_mailing.py index 82fb55adaf7..3c7480abfb2 100644 --- a/addons/mass_mailing/models/mass_mailing.py +++ b/addons/mass_mailing/models/mass_mailing.py @@ -131,6 +131,10 @@ class MassMailingList(models.Model): if archive: (src_lists - self).write({'active': False}) + @api.multi + def close_dialog(self): + return {'type': 'ir.actions.act_window_close'} + class MassMailingContact(models.Model): """Model of a contact. This model is different from the partner model @@ -387,10 +391,10 @@ class MassMailing(models.Model): state = fields.Selection([('draft', 'Draft'), ('in_queue', 'In Queue'), ('sending', 'Sending'), ('done', 'Sent')], string='Status', required=True, copy=False, default='draft') color = fields.Integer(string='Color Index') + user_id = fields.Many2one('res.users', string='Mailing Manager', default=lambda self: self.env.user) # mailing options reply_to_mode = fields.Selection( - [('thread', 'Followers of leads/applicants'), ('email', 'Specified Email Address')], - string='Reply-To Mode', required=True) + [('thread', 'Recipient Followers'), ('email', 'Specified Email Address')], string='Reply-To Mode', required=True) reply_to = fields.Char(string='Reply To', help='Preferred Reply-To Address', default=lambda self: self.env['mail.message']._get_default_from()) # recipients @@ -514,13 +518,20 @@ class MassMailing(models.Model): @api.onchange('mailing_model_id', 'contact_list_ids') def _onchange_model_and_list(self): - if self.mailing_model_name == 'mail.mass_mailing.list': - if self.contact_list_ids: - self.mailing_domain = "[('list_ids', 'in', [%s]), ('opt_out', '=', False)]" % (','.join(str(id) for id in self.contact_list_ids.ids),) - else: - self.mailing_domain = "[(0, '=', 1)]" - elif self.mailing_model_name and 'opt_out' in self.env[self.mailing_model_name]._fields and not self.mailing_domain: - self.mailing_domain = "[('opt_out', '=', False)]" + str_tuples = "" + if self.mailing_model_name: + if self.mailing_model_name == 'mail.mass_mailing.list': + if self.contact_list_ids: + str_tuples += "('list_ids', 'in', {}),".format(','.join(str(id) for id in self.contact_list_ids.ids)) + else: + str_tuples += "(0, '=', 1)," + elif self.mailing_model_name == 'res.partner': + str_tuples += "('customer', '=', True)," + elif 'opt_out' in self.env[self.mailing_model_name]._fields and not self.mailing_domain: + str_tuples += "('opt_out', '=', False)," + else: + str_tuples += "(0, '=', 1)," + self.mailing_domain = "[{}]".format(str_tuples) self.body_html = "on_change_model_and_list" #------------------------------------------------------ diff --git a/addons/mass_mailing/static/src/js/mass_mailing.js b/addons/mass_mailing/static/src/js/mass_mailing.js index 75a52a940f1..e611d9dbe26 100644 --- a/addons/mass_mailing/static/src/js/mass_mailing.js +++ b/addons/mass_mailing/static/src/js/mass_mailing.js @@ -16,6 +16,9 @@ KanbanRecord.include({ _openRecord: function () { if (this.modelName === 'mail.mass_mailing.campaign') { this.$('.oe_mailings').click(); + } else if (this.modelName === 'mail.mass_mailing.list' && + this.$('.o_mailing_list_kanban_boxes a')) { + this.$('.o_mailing_list_kanban_boxes a').first().click(); } else { this._super.apply(this, arguments); } diff --git a/addons/mass_mailing/static/src/less/mass_mailing.ui.less b/addons/mass_mailing/static/src/less/mass_mailing.ui.less index 31125d1456c..1c6d5b1557a 100644 --- a/addons/mass_mailing/static/src/less/mass_mailing.ui.less +++ b/addons/mass_mailing/static/src/less/mass_mailing.ui.less @@ -1,11 +1,22 @@ +.o_form_view .o_form_sheet .o_notebook .tab-content .tab-pane .o_mail_body { + // cancel padding of form_sheet + margin-top: -@odoo-sheet-cancel-tpadding; + margin-left: -@odoo-sheet-cancel-hpadding; + margin-right: -@odoo-sheet-cancel-hpadding; + margin-bottom: -@odoo-sheet-cancel-bpadding; +} + .o_mail_theme_selector { > a { .o-position-absolute(0, 0, auto, 0); - height: 34px; + height: @odoo-navbar-height; line-height: 31px; border-radius: 0; background-color: @o-we-color-darker; color: @o-we-color-text-normal; + .o-flex-display(); + .o-justify-content(center); + .o-align-items(center); &:hover, &:focus, &:active { color: @o-we-color-text-light; diff --git a/addons/mass_mailing/views/mass_mailing_stats_views.xml b/addons/mass_mailing/views/mass_mailing_stats_views.xml index 81fd63d62ab..dfa12f5b564 100644 --- a/addons/mass_mailing/views/mass_mailing_stats_views.xml +++ b/addons/mass_mailing/views/mass_mailing_stats_views.xml @@ -9,7 +9,11 @@ + + + + @@ -29,7 +33,7 @@ mail.mail.statistics.tree mail.mail.statistics - + @@ -46,27 +50,35 @@ mail.mail.statistics.form mail.mail.statistics -
- + +
+

This email could not be sent.

+
+ - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - -
+
@@ -88,7 +100,7 @@ - EMails Sent + Emails Sent mail.mail.statistics form tree,graph,form,pivot diff --git a/addons/mass_mailing/views/mass_mailing_views.xml b/addons/mass_mailing/views/mass_mailing_views.xml index cc1a71600d7..7395446c67e 100644 --- a/addons/mass_mailing/views/mass_mailing_views.xml +++ b/addons/mass_mailing/views/mass_mailing_views.xml @@ -1,17 +1,17 @@ - + - - + @@ -32,7 +32,7 @@ mail.mass_mailing.contact.search mail.mass_mailing.contact - + @@ -54,7 +54,7 @@ mail.mass_mailing.contact 10 - + @@ -112,7 +112,7 @@ mail.mass_mailing.contact 10 -
+