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. +