diff --git a/addons/snailmail_account/wizard/account_invoice_send.py b/addons/snailmail_account/wizard/account_invoice_send.py
index ba0129d1925..c093c7b99b3 100644
--- a/addons/snailmail_account/wizard/account_invoice_send.py
+++ b/addons/snailmail_account/wizard/account_invoice_send.py
@@ -1,8 +1,7 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
-from odoo import api, fields, models, _
-from odoo.exceptions import UserError
+from odoo import api, fields, models, Command, _
class AccountInvoiceSend(models.TransientModel):
@@ -16,14 +15,17 @@ class AccountInvoiceSend(models.TransientModel):
default=lambda self: self.env.company.invoice_is_snailmail)
snailmail_cost = fields.Float(string='Stamp(s)', compute='_compute_snailmail_cost', readonly=True)
invalid_addresses = fields.Integer('Invalid Addresses Count', compute='_compute_invalid_addresses')
- invalid_invoice_ids = fields.Many2many('account.move', string='Invalid Addresses', compute='_compute_invalid_addresses')
+ invalid_invoices = fields.Integer('Invalid Invoices Count', compute='_compute_invalid_addresses')
+ invalid_partner_ids = fields.Many2many('res.partner', string='Invalid Addresses', compute='_compute_invalid_addresses')
@api.depends('invoice_ids')
def _compute_invalid_addresses(self):
for wizard in self:
- invalid_invoices = wizard.invoice_ids.filtered(lambda i: not i.partner_id or not self.env['snailmail.letter']._is_valid_address(i.partner_id))
- wizard.invalid_invoice_ids = invalid_invoices
- wizard.invalid_addresses = len(invalid_invoices)
+ invalid_invoices = wizard.invoice_ids.filtered(lambda i: not self.env['snailmail.letter']._is_valid_address(i.partner_id))
+ wizard.invalid_invoices = len(invalid_invoices)
+ invalid_partner_ids = invalid_invoices.partner_id.ids
+ wizard.invalid_addresses = len(invalid_partner_ids)
+ wizard.invalid_partner_ids = [Command.set(invalid_partner_ids)]
@api.depends('invoice_ids')
def _get_partner(self):
@@ -82,7 +84,7 @@ class AccountInvoiceSend(models.TransientModel):
self.env['bus.bus'].sendone(
(self._cr.dbname, 'res.partner', self.env.user.partner_id.id),
{'type': 'snailmail_invalid_address', 'title': _("Invalid Addresses"),
- 'message': _("%s of the selected invoice(s) had an invalid address and were not sent", self.invalid_addresses)}
+ 'message': _("%s of the selected invoice(s) had an invalid address and were not sent", self.invalid_invoices)}
)
def invalid_addresses_action(self):
@@ -90,6 +92,6 @@ class AccountInvoiceSend(models.TransientModel):
'name': _('Invalid Addresses'),
'type': 'ir.actions.act_window',
'view_mode': 'kanban,tree,form',
- 'res_model': 'account.move',
- 'domain': [('id', 'in', self.mapped('invalid_invoice_ids').ids)],
+ 'res_model': 'res.partner',
+ 'domain': [('id', 'in', self.invalid_partner_ids.ids)],
}
diff --git a/addons/snailmail_account/wizard/account_invoice_send_views.xml b/addons/snailmail_account/wizard/account_invoice_send_views.xml
index b2efb714bf6..a7d482314de 100644
--- a/addons/snailmail_account/wizard/account_invoice_send_views.xml
+++ b/addons/snailmail_account/wizard/account_invoice_send_views.xml
@@ -23,28 +23,16 @@
)
-
-
-
- to:
-
-
-
-
-
-
- The customer address is not complete.
-
-
-
+
+ to:
+ The customer's address is incomplete:
+
-
-
-
- Some customer addresses are not complete.
-
-
+
+
+ Some customer addresses are incomplete.
+