diff --git a/asterisk_click2dial/asterisk_click2dial.py b/asterisk_click2dial/asterisk_click2dial.py index 050442a..9be0150 100644 --- a/asterisk_click2dial/asterisk_click2dial.py +++ b/asterisk_click2dial/asterisk_click2dial.py @@ -422,28 +422,7 @@ class asterisk_common(orm.AbstractModel): #print "RESULT generic_phonenumber_to_e164", result return result - -class res_partner(osv.osv): - _name = 'res.partner' - _inherit = ['res.partner', 'asterisk.common'] - - - def format_phonenumber_to_e164(self, cr, uid, ids, name, arg, context=None): - return self.generic_phonenumber_to_e164(cr, uid, ids, [('phone', 'phone_e164'), ('mobile', 'mobile_e164'), ('fax', 'fax_e164')], context=context) - - _columns = { - 'phone_e164': fields.function(format_phonenumber_to_e164, type='char', size=64, string='Phone in E.164 format', readonly=True, multi="e164", store={ - 'res.partner': (lambda self, cr, uid, ids, c={}: ids, ['phone'], 10), - }), - 'mobile_e164': fields.function(format_phonenumber_to_e164, type='char', size=64, string='Mobile in E.164 format', readonly=True, multi="e164", store={ - 'res.partner': (lambda self, cr, uid, ids, c={}: ids, ['mobile'], 10), - }), - 'fax_e164': fields.function(format_phonenumber_to_e164, type='char', size=64, string='Fax in E.164 format', readonly=True, multi="e164", store={ - 'res.partner': (lambda self, cr, uid, ids, c={}: ids, ['fax'], 10), - }), - } - - def _generic_reformat_phonenumbers(self, cr, uid, vals, phonefields=['phone', 'fax', 'mobile'], context=None): + def _generic_reformat_phonenumbers(self, cr, uid, vals, phonefields=['phone', 'partner_phone', 'fax', 'mobile'], context=None): """Reformat phone numbers in international format i.e. +33141981242""" if any([vals.get(field) for field in phonefields]): user = self.pool['res.users'].browse(cr, uid, uid, context=context) @@ -466,6 +445,28 @@ class res_partner(osv.osv): return vals + +class res_partner(osv.osv): + _name = 'res.partner' + _inherit = ['res.partner', 'asterisk.common'] + + + def format_phonenumber_to_e164(self, cr, uid, ids, name, arg, context=None): + return self.generic_phonenumber_to_e164(cr, uid, ids, [('phone', 'phone_e164'), ('mobile', 'mobile_e164'), ('fax', 'fax_e164')], context=context) + + _columns = { + 'phone_e164': fields.function(format_phonenumber_to_e164, type='char', size=64, string='Phone in E.164 format', readonly=True, multi="e164", store={ + 'res.partner': (lambda self, cr, uid, ids, c={}: ids, ['phone'], 10), + }), + 'mobile_e164': fields.function(format_phonenumber_to_e164, type='char', size=64, string='Mobile in E.164 format', readonly=True, multi="e164", store={ + 'res.partner': (lambda self, cr, uid, ids, c={}: ids, ['mobile'], 10), + }), + 'fax_e164': fields.function(format_phonenumber_to_e164, type='char', size=64, string='Fax in E.164 format', readonly=True, multi="e164", store={ + 'res.partner': (lambda self, cr, uid, ids, c={}: ids, ['fax'], 10), + }), + } + + def create(self, cr, uid, vals, context=None): vals_reformated = self._generic_reformat_phonenumbers(cr, uid, vals, context=context) return super(res_partner, self).create(cr, uid, vals_reformated, context=context) diff --git a/asterisk_click2dial/wizard/reformat_all_phonenumbers.py b/asterisk_click2dial/wizard/reformat_all_phonenumbers.py index 2893513..eeae2bf 100644 --- a/asterisk_click2dial/wizard/reformat_all_phonenumbers.py +++ b/asterisk_click2dial/wizard/reformat_all_phonenumbers.py @@ -42,9 +42,9 @@ class reformat_all_phonenumbers(osv.osv_memory): phonenumbers_not_reformatted = '' for partner in partner_obj.read(cr, uid, all_partner_ids, ['name'] + phonefields, context=context): init_partner = partner.copy() - # partner is _updated_ by the fonction _reformat_phonenumbers() + # partner is _updated_ by the fonction _generic_reformat_phonenumbers() try: - partner_obj._reformat_phonenumbers(cr, uid, partner, context=context) + partner_obj._generic_reformat_phonenumbers(cr, uid, partner, context=context) except Exception, e: #raise osv.except_osv(_('Error :'), _("Problem on partner '%s'. Error message: %s" % (init_partner.get('name'), e[1]))) phonenumbers_not_reformatted += "Problem on partner '%s'. Error message: %s" % (init_partner.get('name'), e[1]) + "\n" diff --git a/asterisk_click2dial_crm/__openerp__.py b/asterisk_click2dial_crm/__openerp__.py index 83245e5..c5cf338 100644 --- a/asterisk_click2dial_crm/__openerp__.py +++ b/asterisk_click2dial_crm/__openerp__.py @@ -53,9 +53,8 @@ 'asterisk_click2dial', 'crm', ], - "init_xml": [], - "demo_xml": [], - "update_xml": [ + "demo": [], + "data": [ 'wizard/open_calling_partner_view.xml', 'wizard/create_crm_phonecall_view.xml', 'res_users_view.xml', diff --git a/asterisk_click2dial_crm/asterisk_click2dial_crm.py b/asterisk_click2dial_crm/asterisk_click2dial_crm.py index 9654075..b24ae81 100644 --- a/asterisk_click2dial_crm/asterisk_click2dial_crm.py +++ b/asterisk_click2dial_crm/asterisk_click2dial_crm.py @@ -107,11 +107,11 @@ class crm_lead(osv.osv): def create(self, cr, uid, vals, context=None): - vals_reformated = self.pool['res.partner']._generic_reformat_phonenumbers(cr, uid, vals, context=context) + vals_reformated = self._generic_reformat_phonenumbers(cr, uid, vals, context=context) return super(crm_lead, self).create(cr, uid, vals_reformated, context=context) def write(self, cr, uid, ids, vals, context=None): - vals_reformated = self.pool['res.partner']._generic_reformat_phonenumbers(cr, uid, vals, context=context) + vals_reformated = self._generic_reformat_phonenumbers(cr, uid, vals, context=context) return super(crm_lead, self).write(cr, uid, ids, vals_reformated, context=context) diff --git a/asterisk_click2dial_crm_claim/__init__.py b/asterisk_click2dial_crm_claim/__init__.py index 2e13e98..f26ba14 100644 --- a/asterisk_click2dial_crm_claim/__init__.py +++ b/asterisk_click2dial_crm_claim/__init__.py @@ -21,3 +21,4 @@ ############################################################################## import wizard +import asterisk_click2dial_crm_claim diff --git a/asterisk_click2dial_crm_claim/__openerp__.py b/asterisk_click2dial_crm_claim/__openerp__.py index a199190..c2dcb67 100644 --- a/asterisk_click2dial_crm_claim/__openerp__.py +++ b/asterisk_click2dial_crm_claim/__openerp__.py @@ -3,6 +3,7 @@ # # Asterisk click2dial CRM Claim module for OpenERP # Copyright (c) 2012-2013 Akretion (http://www.akretion.com) +# Copyright (C) 2013 Invitu # @author Alexis de Lattre # # This program is free software: you can redistribute it and/or modify @@ -28,7 +29,7 @@ "license" : "AGPL-3", "category": "Customer Relationship Management", "description": """ - This module adds a button "Open Related CRM Claims" on the "Open calling partner" wizard. + This module adds a button "Open Related CRM Claims" on the "Open calling partner" wizard and a "Dial" button on the CRM Claim form. A detailed documentation for the OpenERP-Asterisk connector is available on the Akretion Web site : http://www.akretion.com/open-source-contributions/openerp-asterisk-voip-connector """, @@ -36,10 +37,11 @@ 'asterisk_click2dial', 'crm_claim', ], - "init_xml": [], - "demo_xml": [], - "update_xml": [ + "demo": [], + "data": [ 'wizard/open_calling_partner_view.xml', + 'crm_claim_view.xml', ], "installable": True, + "application": True, } diff --git a/asterisk_click2dial_crm_claim/asterisk_click2dial_crm_claim.py b/asterisk_click2dial_crm_claim/asterisk_click2dial_crm_claim.py new file mode 100644 index 0000000..794ea8e --- /dev/null +++ b/asterisk_click2dial_crm_claim/asterisk_click2dial_crm_claim.py @@ -0,0 +1,49 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Asterisk click2dial CRM Claim module for OpenERP +# Copyright (C) 2013 Invitu +# +# 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 openerp.osv import osv, fields + + +class crm_claim(osv.osv): + _name = 'crm.claim' + _inherit = ['crm.claim', 'asterisk.common'] + + + def format_phonenumber_to_e164(self, cr, uid, ids, name, arg, context=None): + return self.generic_phonenumber_to_e164(cr, uid, ids, [('partner_phone', 'partner_phone_e164')], context=context) + + + _columns = { + 'partner_phone_e164': fields.function(format_phonenumber_to_e164, type='char', size=64, string='Phone in E.164 format', readonly=True, store={ + 'crm.claim': (lambda self, cr, uid, ids, c={}: ids, ['partner_phone'], 10), + }), + } + + + def create(self, cr, uid, vals, context=None): + vals_reformated = self._generic_reformat_phonenumbers(cr, uid, vals, context=context) + return super(crm_claim, self).create(cr, uid, vals_reformated, context=context) + + + def write(self, cr, uid, ids, vals, context=None): + vals_reformated = self._generic_reformat_phonenumbers(cr, uid, vals, context=context) + return super(crm_claim, self).write(cr, uid, ids, vals_reformated, context=context) + diff --git a/asterisk_click2dial_crm_claim/crm_claim_view.xml b/asterisk_click2dial_crm_claim/crm_claim_view.xml new file mode 100644 index 0000000..e661da8 --- /dev/null +++ b/asterisk_click2dial_crm_claim/crm_claim_view.xml @@ -0,0 +1,29 @@ + + + + + + + + asterisk.crm_claim.form.dial + crm.claim + + + + + +