From 772e1c0cc4e75cec971d2b4e1c820eb54872dc93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 17 Jul 2019 10:58:39 +0000 Subject: [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 --- addons/mass_mailing/wizard/__init__.py | 2 +- addons/mass_mailing/wizard/mail_compose_message.py | 5 ++- addons/mass_mailing/wizard/mailing_list_merge.py | 36 ++++++++++++++++++++++ .../wizard/mailing_list_merge_views.xml | 33 ++++++++++++++++++++ .../mass_mailing/wizard/mass_mailing_list_merge.py | 36 ---------------------- .../wizard/mass_mailing_list_merge_views.xml | 33 -------------------- 6 files changed, 72 insertions(+), 73 deletions(-) create mode 100644 addons/mass_mailing/wizard/mailing_list_merge.py create mode 100644 addons/mass_mailing/wizard/mailing_list_merge_views.xml delete mode 100644 addons/mass_mailing/wizard/mass_mailing_list_merge.py delete mode 100644 addons/mass_mailing/wizard/mass_mailing_list_merge_views.xml (limited to 'addons/mass_mailing/wizard') diff --git a/addons/mass_mailing/wizard/__init__.py b/addons/mass_mailing/wizard/__init__.py index d501dfb411a..e20c1b37026 100644 --- a/addons/mass_mailing/wizard/__init__.py +++ b/addons/mass_mailing/wizard/__init__.py @@ -3,5 +3,5 @@ from . import test_mailing from . import mail_compose_message -from . import mass_mailing_list_merge +from . import mailing_list_merge from . import mass_mailing_schedule_date diff --git a/addons/mass_mailing/wizard/mail_compose_message.py b/addons/mass_mailing/wizard/mail_compose_message.py index fc75d7e192f..00cdfff0864 100644 --- a/addons/mass_mailing/wizard/mail_compose_message.py +++ b/addons/mass_mailing/wizard/mail_compose_message.py @@ -1,18 +1,17 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. + from odoo import api, fields, models, tools from odoo.tools import email_re class MailComposeMessage(models.TransientModel): - """Add concept of mass mailing campaign to the mail.compose.message wizard - """ _inherit = 'mail.compose.message' mass_mailing_campaign_id = fields.Many2one('mail.mass_mailing.campaign', string='Mass Mailing Campaign') mass_mailing_id = fields.Many2one('mail.mass_mailing', string='Mass Mailing', ondelete='cascade') mass_mailing_name = fields.Char(string='Mass Mailing Name') - mailing_list_ids = fields.Many2many('mail.mass_mailing.list', string='Mailing List') + mailing_list_ids = fields.Many2many('mailing.list', string='Mailing List') def get_mail_values(self, res_ids): """ Override method that generated the mail content by creating the diff --git a/addons/mass_mailing/wizard/mailing_list_merge.py b/addons/mass_mailing/wizard/mailing_list_merge.py new file mode 100644 index 00000000000..0ef97b12fa3 --- /dev/null +++ b/addons/mass_mailing/wizard/mailing_list_merge.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, fields, models + + +class MassMailingListMerge(models.TransientModel): + _name = 'mailing.list.merge' + _description = 'Merge Mass Mailing List' + + src_list_ids = fields.Many2many('mailing.list', string='Mailing Lists') + dest_list_id = fields.Many2one('mailing.list', string='Destination Mailing List') + merge_options = fields.Selection([ + ('new', 'Merge into a new mailing list'), + ('existing', 'Merge into an existing mailing list'), + ], 'Merge Option', required=True, default='new') + new_list_name = fields.Char('New Mailing List Name') + archive_src_lists = fields.Boolean('Archive source mailing lists', default=True) + + @api.model + def default_get(self, fields): + res = super(MassMailingListMerge, self).default_get(fields) + src_list_ids = self.env.context.get('active_ids') + res.update({ + 'src_list_ids': src_list_ids, + 'dest_list_id': src_list_ids and src_list_ids[0] or False, + }) + return res + + def action_mailing_lists_merge(self): + if self.merge_options == 'new': + self.dest_list_id = self.env['mailing.list'].create({ + 'name': self.new_list_name, + }).id + self.dest_list_id.action_merge(self.src_list_ids, self.archive_src_lists) + return self.dest_list_id diff --git a/addons/mass_mailing/wizard/mailing_list_merge_views.xml b/addons/mass_mailing/wizard/mailing_list_merge_views.xml new file mode 100644 index 00000000000..d5c9300483c --- /dev/null +++ b/addons/mass_mailing/wizard/mailing_list_merge_views.xml @@ -0,0 +1,33 @@ + + + + + mailing.list.merge.form + mailing.list.merge + +
+ + + + + + + + + + + + +
+
+
+
+
+ + +
diff --git a/addons/mass_mailing/wizard/mass_mailing_list_merge.py b/addons/mass_mailing/wizard/mass_mailing_list_merge.py deleted file mode 100644 index 9a1a0f4409f..00000000000 --- a/addons/mass_mailing/wizard/mass_mailing_list_merge.py +++ /dev/null @@ -1,36 +0,0 @@ -# -*- coding: utf-8 -*- -# Part of Odoo. See LICENSE file for full copyright and licensing details. - -from odoo import api, fields, models - - -class MassMailingListMerge(models.TransientModel): - _name = 'mass.mailing.list.merge' - _description = 'Merge Mass Mailing List' - - src_list_ids = fields.Many2many('mail.mass_mailing.list', string='Mailing Lists') - dest_list_id = fields.Many2one('mail.mass_mailing.list', string='Destination Mailing List') - merge_options = fields.Selection([ - ('new', 'Merge into a new mailing list'), - ('existing', 'Merge into an existing mailing list'), - ], 'Merge Option', required=True, default='new') - new_list_name = fields.Char('New Mailing List Name') - archive_src_lists = fields.Boolean('Archive source mailing lists', default=True) - - @api.model - def default_get(self, fields): - res = super(MassMailingListMerge, self).default_get(fields) - src_list_ids = self.env.context.get('active_ids') - res.update({ - 'src_list_ids': src_list_ids, - 'dest_list_id': src_list_ids and src_list_ids[0] or False, - }) - return res - - def action_mailing_lists_merge(self): - if self.merge_options == 'new': - self.dest_list_id = self.env['mail.mass_mailing.list'].create({ - 'name': self.new_list_name, - }).id - self.dest_list_id.action_merge(self.src_list_ids, self.archive_src_lists) - return self.dest_list_id diff --git a/addons/mass_mailing/wizard/mass_mailing_list_merge_views.xml b/addons/mass_mailing/wizard/mass_mailing_list_merge_views.xml deleted file mode 100644 index c1a1ebe3924..00000000000 --- a/addons/mass_mailing/wizard/mass_mailing_list_merge_views.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - mass.mailing.list.merge.form - mass.mailing.list.merge - -
- - - - - - - - - - - - -
-
-
-
-
- - -
-- cgit v1.2.3