diff --git a/addons/mail/wizard/mail_resend_message.py b/addons/mail/wizard/mail_resend_message.py index c54e91a01b6..411126f1362 100644 --- a/addons/mail/wizard/mail_resend_message.py +++ b/addons/mail/wizard/mail_resend_message.py @@ -12,12 +12,17 @@ class MailResendMessage(models.TransientModel): mail_message_id = fields.Many2one('mail.message', 'Message', readonly=True) partner_ids = fields.One2many('mail.resend.partner', 'resend_wizard_id', string='Recipients') notification_ids = fields.Many2many('mail.notification', string='Notifications', readonly=True) - has_cancel = fields.Boolean(compute='_compute_has_cancel') + can_cancel = fields.Boolean(compute='_compute_can_cancel') + can_resend = fields.Boolean(compute='_compute_can_resend') partner_readonly = fields.Boolean(compute='_compute_partner_readonly') @api.depends("partner_ids") - def _compute_has_cancel(self): - self.has_cancel = self.partner_ids.filtered(lambda p: not p.resend) + def _compute_can_cancel(self): + self.can_cancel = self.partner_ids.filtered(lambda p: not p.resend) + + @api.depends('partner_ids.resend') + def _compute_can_resend(self): + self.can_resend = any([partner.resend for partner in self.partner_ids]) def _compute_partner_readonly(self): self.partner_readonly = not self.env['res.partner'].check_access_rights('write', raise_exception=False) @@ -91,8 +96,8 @@ class PartnerResend(models.TransientModel): _description = 'Partner with additional information for mail resend' partner_id = fields.Many2one('res.partner', string='Partner', required=True, ondelete='cascade') - name = fields.Char(related="partner_id.name", related_sudo=False, readonly=False) - email = fields.Char(related="partner_id.email", related_sudo=False, readonly=False) - resend = fields.Boolean(string="Send Again", default=True) + name = fields.Char(related='partner_id.name', string='Recipient Name', related_sudo=False, readonly=False) + email = fields.Char(related='partner_id.email', string='Email Address', related_sudo=False, readonly=False) + resend = fields.Boolean(string='Try Again', default=True) resend_wizard_id = fields.Many2one('mail.resend.message', string="Resend wizard") - message = fields.Char(string="Help message") + message = fields.Char(string='Error message') diff --git a/addons/mail/wizard/mail_resend_message_views.xml b/addons/mail/wizard/mail_resend_message_views.xml index a6b2f41cd9f..6d8b884e8ca 100644 --- a/addons/mail/wizard/mail_resend_message_views.xml +++ b/addons/mail/wizard/mail_resend_message_views.xml @@ -9,31 +9,31 @@
- + -

Select the action to do on each mail and correct the email address if needed. The modified address will be saved on the corresponding contact.

- + -
-
- Resend mail + Sending Failures mail.resend.message ir.actions.act_window form diff --git a/addons/sms/wizard/sms_resend.py b/addons/sms/wizard/sms_resend.py index 804c3d19ba3..25882a91871 100644 --- a/addons/sms/wizard/sms_resend.py +++ b/addons/sms/wizard/sms_resend.py @@ -11,12 +11,12 @@ class SMSRecipient(models.TransientModel): sms_resend_id = fields.Many2one('sms.resend', required=True) notification_id = fields.Many2one('mail.notification', required=True, ondelete='cascade') - resend = fields.Boolean(string="Resend", default=True) + resend = fields.Boolean(string='Try Again', default=True) failure_type = fields.Selection( - related='notification_id.failure_type', related_sudo=True, readonly=True) + related='notification_id.failure_type', string='Error Message', related_sudo=True, readonly=True) partner_id = fields.Many2one('res.partner', 'Partner', related='notification_id.res_partner_id', readonly=True) - partner_name = fields.Char('Recipient', readonly='True') - sms_number = fields.Char('Number') + partner_name = fields.Char(string='Recipient Name', readonly='True') + sms_number = fields.Char(string='Phone Number') class SMSResend(models.TransientModel): @@ -40,7 +40,8 @@ class SMSResend(models.TransientModel): mail_message_id = fields.Many2one('mail.message', 'Message', readonly=True, required=True) recipient_ids = fields.One2many('sms.resend.recipient', 'sms_resend_id', string='Recipients') - has_cancel = fields.Boolean(compute='_compute_has_cancel') + can_cancel = fields.Boolean(compute='_compute_can_cancel') + can_resend = fields.Boolean(compute='_compute_can_resend') has_insufficient_credit = fields.Boolean(compute='_compute_has_insufficient_credit') has_unregistered_account = fields.Boolean(compute='_compute_has_unregistered_account') @@ -53,8 +54,12 @@ class SMSResend(models.TransientModel): self.has_insufficient_credit = self.recipient_ids.filtered(lambda p: p.failure_type == 'sms_credit') @api.depends("recipient_ids.resend") - def _compute_has_cancel(self): - self.has_cancel = self.recipient_ids.filtered(lambda p: not p.resend) + def _compute_can_cancel(self): + self.can_cancel = self.recipient_ids.filtered(lambda p: not p.resend) + + @api.depends('recipient_ids.resend') + def _compute_can_resend(self): + self.can_resend = any([recipient.resend for recipient in self.recipient_ids]) def _check_access(self): if not self.mail_message_id or not self.mail_message_id.model or not self.mail_message_id.res_id: diff --git a/addons/sms/wizard/sms_resend_views.xml b/addons/sms/wizard/sms_resend_views.xml index f9ce259bbec..3c70c37c4d4 100644 --- a/addons/sms/wizard/sms_resend_views.xml +++ b/addons/sms/wizard/sms_resend_views.xml @@ -7,29 +7,30 @@
- + - + -