diff --git a/addons/mass_mailing/models/mailing.py b/addons/mass_mailing/models/mailing.py index 86b6714260e..15b38a1d1d2 100644 --- a/addons/mass_mailing/models/mailing.py +++ b/addons/mass_mailing/models/mailing.py @@ -66,7 +66,7 @@ class MassMailing(models.Model): return False active = fields.Boolean(default=True, tracking=True) - subject = fields.Char('Subject', help='Subject of emails to send', required=True, translate=True) + subject = fields.Char('Subject', help='Subject of your Mailing', required=True, translate=True) email_from = fields.Char(string='Send From', required=True, default=lambda self: self.env.user.email_formatted) sent_date = fields.Datetime(string='Sent Date', copy=False) diff --git a/addons/mass_mailing_sms/models/mailing_mailing.py b/addons/mass_mailing_sms/models/mailing_mailing.py index cd0e6060f6f..ee1c11e20db 100644 --- a/addons/mass_mailing_sms/models/mailing_mailing.py +++ b/addons/mass_mailing_sms/models/mailing_mailing.py @@ -24,6 +24,15 @@ class Mailing(models.Model): mailing_type = fields.Selection(selection_add=[ ('sms', 'SMS') ], ondelete={'sms': 'set default'}) + + # 'sms_subject' added to override 'subject' field (string attribute should be labelled "Title" when mailing_type == 'sms'). + # 'sms_subject' should have the same helper as 'subject' field when 'mass_mailing_sms' installed. + # otherwise 'sms_subject' will get the old helper from 'mass_mailing' module. + # overriding 'subject' field helper in this model is not working, since the helper will keep the new value + # even when 'mass_mailing_sms' removed (see 'mailing_mailing_view_form_sms' for more details). + sms_subject = fields.Char('Title', help='For an Email, Subject your Recipients will see in their inbox.\n' + 'For an SMS Text Message, internal Title of the Message.', + related='subject', translate=True, readonly=False) # sms options body_plaintext = fields.Text('SMS Body', compute='_compute_body_plaintext', store=True, readonly=False) sms_template_id = fields.Many2one('sms.template', string='SMS Template', ondelete='set null') @@ -74,6 +83,17 @@ class Mailing(models.Model): mail.sms_has_unregistered_account = trace_dict[mail.id]['sms_acc'] + # -------------------------------------------------- + # ORM OVERRIDES + # -------------------------------------------------- + + @api.model + def create(self, values): + # Get subject from "sms_subject" field when SMS installed (used to build the name of record in the super 'create' method) + if values.get('mailing_type') == 'sms' and values.get('sms_subject'): + values['subject'] = values['sms_subject'] + return super(Mailing, self).create(values) + # -------------------------------------------------- # BUSINESS / VIEWS ACTIONS # -------------------------------------------------- diff --git a/addons/mass_mailing_sms/views/mailing_mailing_views.xml b/addons/mass_mailing_sms/views/mailing_mailing_views.xml index 9b6244853ab..570198797b9 100644 --- a/addons/mass_mailing_sms/views/mailing_mailing_views.xml +++ b/addons/mass_mailing_sms/views/mailing_mailing_views.xml @@ -93,12 +93,22 @@ {'invisible': ['|',('mailing_type', '!=', 'mail'),('state', 'in', ('draft','test'))]} + + {'invisible': [('mailing_type', '!=', 'mail')], 'readonly': [('state', 'in', ('sending', 'done'))], 'required': [('mailing_type', '=', 'mail')]} + + For an Email, Subject your Recipients will see in their inbox. + For an SMS Text Message, internal Title of the Message. + + + + {'invisible': [('mailing_type', '!=', 'mail')]} - +