From 2c3d422964c85c61e96dbf354f597db28ab67574 Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Wed, 21 Nov 2012 11:21:37 +0100 Subject: [PATCH] [FIX] sale.order,invoices: more robust/consistent mechanism for marking documents sent after Send by Email bzr revid: odo@openerp.com-20121121102137-9wukkbnfktfkg4lo --- addons/account/account_invoice.py | 19 ++++++++----------- addons/sale/sale.py | 7 ++----- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py index 35afac5a508..b0671e501ae 100644 --- a/addons/account/account_invoice.py +++ b/addons/account/account_invoice.py @@ -408,6 +408,7 @@ class account_invoice(osv.osv): 'default_use_template': bool(template_id), 'default_template_id': template_id, 'default_composition_mode': 'comment', + 'mark_invoice_as_sent': True, }) return { 'type': 'ir.actions.act_window', @@ -1730,8 +1731,6 @@ class account_invoice_tax(osv.osv): }) return res -account_invoice_tax() - class res_partner(osv.osv): """ Inherits partner and adds invoice information in the partner form """ @@ -1745,16 +1744,14 @@ class res_partner(osv.osv): default.update({'invoice_ids' : []}) return super(res_partner, self).copy(cr, uid, id, default, context) -res_partner() -class mail_message(osv.osv): - _name = 'mail.message' - _inherit = 'mail.message' +class mail_compose_message(osv.osv): + _inherit = 'mail.compose.message' - def _postprocess_sent_message(self, cr, uid, message, context=None): - if message.model == 'account.invoice': - self.pool.get('account.invoice').write(cr, uid, [message.res_id], {'sent':True}, context=context) - return super(mail_message, self)._postprocess_sent_message(cr, uid, message=message, context=context) + def send_mail(self, cr, uid, ids, context=None): + context = context or {} + if context.get('default_model') == 'account.invoice' and context.get('default_res_id') and context.get('mark_invoice_as_sent'): + self.pool.get('account.invoice').write(cr, uid, [context['default_res_id']], {'sent': True}, context=context) + return super(mail_compose_message, self).send_mail(cr, uid, ids, context=context) -mail_message() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/sale/sale.py b/addons/sale/sale.py index 3c568cc8227..382fe093907 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -1028,17 +1028,14 @@ class sale_order_line(osv.osv): raise osv.except_osv(_('Invalid Action!'), _('Cannot delete a sales order line which is in state \'%s\'.') %(rec.state,)) return super(sale_order_line, self).unlink(cr, uid, ids, context=context) -sale_order_line() class mail_compose_message(osv.osv): _inherit = 'mail.compose.message' def send_mail(self, cr, uid, ids, context=None): context = context or {} - if context.get('mark_so_as_sent', False) and context.get('default_res_id', False): + if context.get('default_model') == 'sale.order' and context.get('default_res_id') and context.get('mark_so_as_sent'): wf_service = netsvc.LocalService("workflow") - wf_service.trg_validate(uid, 'sale.order', context.get('default_res_id', False), 'quotation_sent', cr) + wf_service.trg_validate(uid, 'sale.order', context['default_res_id'], 'quotation_sent', cr) return super(mail_compose_message, self).send_mail(cr, uid, ids, context=context) -mail_compose_message() - # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: