From c90e29626456c331cda84996a17d464911dff2a2 Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Thu, 13 Dec 2012 15:38:53 +0100 Subject: [PATCH] [IMP] portal_sale: move code around, to extend models in one place bzr revid: rco@openerp.com-20121213143853-uk5ohmyc4tpqc5qu --- addons/portal_sale/__init__.py | 2 - addons/portal_sale/account_invoice.py | 43 ------------------ addons/portal_sale/portal_sale.py | 54 +++++++++++++++++++++++ addons/portal_sale/sale.py | 63 --------------------------- 4 files changed, 54 insertions(+), 108 deletions(-) delete mode 100644 addons/portal_sale/account_invoice.py delete mode 100644 addons/portal_sale/sale.py diff --git a/addons/portal_sale/__init__.py b/addons/portal_sale/__init__.py index 296de46594a..ba847ba7169 100644 --- a/addons/portal_sale/__init__.py +++ b/addons/portal_sale/__init__.py @@ -19,7 +19,5 @@ # ############################################################################## -import account_invoice -import sale import portal_sale import res_config diff --git a/addons/portal_sale/account_invoice.py b/addons/portal_sale/account_invoice.py deleted file mode 100644 index fa81b2049e0..00000000000 --- a/addons/portal_sale/account_invoice.py +++ /dev/null @@ -1,43 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2011 OpenERP S.A (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -from osv import fields,osv - -class account_invoice(osv.osv): - _inherit = 'account.invoice' - - def invoice_validate(self, cr, uid, ids, context=None): - # fetch the partner's id and subscribe the partner to the sale order - partner = self.browse(cr, uid, ids[0], context=context)['partner_id'] - if partner.id not in self.browse(cr, uid, ids[0], context=context)['message_follower_ids']: - self.message_subscribe(cr, uid, ids, [partner.id], context=context) - document = self.browse(cr, uid, ids[0], context=context) - mail_values = { - 'email_from': self.pool.get('res.users').browse(cr, uid, uid, context=context)['partner_id']['email'], - 'email_to': partner.email, - 'subject': 'Invitation to follow %s' % document.name_get()[0][1], - 'body_html': 'You have been invited to follow %s' % document.name_get()[0][1], - 'auto_delete': True, - } - mail_obj = self.pool.get('mail.mail') - mail_id = mail_obj.create(cr, uid, mail_values, context=context) - mail_obj.send(cr, uid, [mail_id], recipient_ids=[partner.id], context=context) - return super(account_invoice, self).invoice_validate(cr, uid, ids, context=context) \ No newline at end of file diff --git a/addons/portal_sale/portal_sale.py b/addons/portal_sale/portal_sale.py index 7cda77ed9ea..ba3addfb83a 100644 --- a/addons/portal_sale/portal_sale.py +++ b/addons/portal_sale/portal_sale.py @@ -53,6 +53,25 @@ class sale_order(osv.Model): pass return action_dict + def action_button_confirm(self, cr, uid, ids, context=None): + # fetch the partner's id and subscribe the partner to the sale order + partner = self.browse(cr, uid, ids[0], context=context)['partner_id'] + if partner.id not in self.browse(cr, uid, ids[0], context=context)['message_follower_ids']: + self.message_subscribe(cr, uid, ids, [partner.id], context=context) + document = self.browse(cr, uid, ids[0], context=context) + mail_values = { + 'email_from': self.pool.get('res.users').browse(cr, uid, uid, context=context)['partner_id']['email'], + 'email_to': partner.email, + 'subject': 'Invitation to follow %s' % document.name_get()[0][1], + 'body_html': 'You have been invited to follow %s' % document.name_get()[0][1], + 'auto_delete': True, + } + mail_obj = self.pool.get('mail.mail') + mail_id = mail_obj.create(cr, uid, mail_values, context=context) + mail_obj.send(cr, uid, [mail_id], recipient_ids=[partner.id], context=context) + return super(sale_order, self).action_button_confirm(cr, uid, ids, context=context) + + class account_invoice(osv.Model): _inherit = 'account.invoice' @@ -84,3 +103,38 @@ class account_invoice(osv.Model): except Exception: pass return action_dict + + def invoice_validate(self, cr, uid, ids, context=None): + # fetch the partner's id and subscribe the partner to the sale order + partner = self.browse(cr, uid, ids[0], context=context)['partner_id'] + if partner.id not in self.browse(cr, uid, ids[0], context=context)['message_follower_ids']: + self.message_subscribe(cr, uid, ids, [partner.id], context=context) + document = self.browse(cr, uid, ids[0], context=context) + mail_values = { + 'email_from': self.pool.get('res.users').browse(cr, uid, uid, context=context)['partner_id']['email'], + 'email_to': partner.email, + 'subject': 'Invitation to follow %s' % document.name_get()[0][1], + 'body_html': 'You have been invited to follow %s' % document.name_get()[0][1], + 'auto_delete': True, + } + mail_obj = self.pool.get('mail.mail') + mail_id = mail_obj.create(cr, uid, mail_values, context=context) + mail_obj.send(cr, uid, [mail_id], recipient_ids=[partner.id], context=context) + return super(account_invoice, self).invoice_validate(cr, uid, ids, context=context) + + +class mail_mail(osv.osv): + _inherit = 'mail.mail' + + def _postprocess_sent_message(self, cr, uid, mail, context=None): + if mail.model == 'sale.order': + so_obj = self.pool.get('sale.order') + partner = so_obj.browse(cr, uid, mail.res_id, context=context)['partner_id'] + # Add the customer in the SO as follower + if partner.id not in so_obj.browse(cr, uid, mail.res_id, context=context)['message_follower_ids']: + so_obj.message_subscribe(cr, uid, [mail.res_id], [partner.id], context=context) + # Add all recipients of the email as followers + for p in mail.partner_ids: + if p.id not in so_obj.browse(cr, uid, mail.res_id, context=context)['message_follower_ids']: + so_obj.message_subscribe(cr, uid, [mail.res_id], [p.id], context=context) + return super(mail_mail, self)._postprocess_sent_message(cr, uid, mail=mail, context=context) diff --git a/addons/portal_sale/sale.py b/addons/portal_sale/sale.py deleted file mode 100644 index 79fcbdef6fd..00000000000 --- a/addons/portal_sale/sale.py +++ /dev/null @@ -1,63 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -from osv import fields, osv - -class sale_order(osv.osv): - _inherit = 'sale.order' - - def action_button_confirm(self, cr, uid, ids, context=None): - # fetch the partner's id and subscribe the partner to the sale order - partner = self.browse(cr, uid, ids[0], context=context)['partner_id'] - if partner.id not in self.browse(cr, uid, ids[0], context=context)['message_follower_ids']: - self.message_subscribe(cr, uid, ids, [partner.id], context=context) - document = self.browse(cr, uid, ids[0], context=context) - mail_values = { - 'email_from': self.pool.get('res.users').browse(cr, uid, uid, context=context)['partner_id']['email'], - 'email_to': partner.email, - 'subject': 'Invitation to follow %s' % document.name_get()[0][1], - 'body_html': 'You have been invited to follow %s' % document.name_get()[0][1], - 'auto_delete': True, - } - mail_obj = self.pool.get('mail.mail') - mail_id = mail_obj.create(cr, uid, mail_values, context=context) - mail_obj.send(cr, uid, [mail_id], recipient_ids=[partner.id], context=context) - return super(sale_order, self).action_button_confirm(cr, uid, ids, context=context) - -sale_order() - -class mail_mail(osv.osv): - _inherit = 'mail.mail' - - def _postprocess_sent_message(self, cr, uid, mail, context=None): - if mail.model == 'sale.order': - so_obj = self.pool.get('sale.order') - partner = so_obj.browse(cr, uid, mail.res_id, context=context)['partner_id'] - # Add the customer in the SO as follower - if partner.id not in so_obj.browse(cr, uid, mail.res_id, context=context)['message_follower_ids']: - so_obj.message_subscribe(cr, uid, [mail.res_id], [partner.id], context=context) - # Add all recipients of the email as followers - for p in mail.partner_ids: - if p.id not in so_obj.browse(cr, uid, mail.res_id, context=context)['message_follower_ids']: - so_obj.message_subscribe(cr, uid, [mail.res_id], [p.id], context=context) - return super(mail_mail, self)._postprocess_sent_message(cr, uid, mail=mail, context=context) - -mail_mail() \ No newline at end of file