From 331636f53d2378f8ffd72b701a0d02e36c130354 Mon Sep 17 00:00:00 2001 From: Invitu Date: Thu, 23 May 2013 06:45:47 -1000 Subject: [PATCH] [IMP] Add Dial button in Claim Form View --- asterisk_click2dial/asterisk_click2dial.py | 2 +- asterisk_click2dial_crm_claim/__init__.py | 1 + asterisk_click2dial_crm_claim/__openerp__.py | 2 + .../asterisk_click2dial_crm_claim.py | 66 +++++++++++++++++++ .../crm_claim_view.xml | 30 +++++++++ 5 files changed, 100 insertions(+), 1 deletion(-) create mode 100644 asterisk_click2dial_crm_claim/asterisk_click2dial_crm_claim.py create mode 100644 asterisk_click2dial_crm_claim/crm_claim_view.xml diff --git a/asterisk_click2dial/asterisk_click2dial.py b/asterisk_click2dial/asterisk_click2dial.py index 4c17d0e..54702dc 100644 --- a/asterisk_click2dial/asterisk_click2dial.py +++ b/asterisk_click2dial/asterisk_click2dial.py @@ -422,7 +422,7 @@ class asterisk_common(orm.AbstractModel): #print "RESULT generic_phonenumber_to_e164", result return result - 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) 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..dfb1902 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 @@ -40,6 +41,7 @@ "demo_xml": [], "update_xml": [ 'wizard/open_calling_partner_view.xml', + 'crm_claim_view.xml', ], "installable": 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..57c6713 --- /dev/null +++ b/asterisk_click2dial_crm_claim/asterisk_click2dial_crm_claim.py @@ -0,0 +1,66 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Asterisk click2dial CRM module for OpenERP +# Copyright (c) 2011 Zikzakmedia S.L. (http://zikzakmedia.com) +# Copyright (c) 2012-2013 Akretion (http://www.akretion.com) +# Copyright (C) 2013 Invitu +# @author: Jesús Martín +# @author: Alexis de Lattre +# +# 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.addons.base_status.base_stage import base_stage +from openerp.osv import osv, fields +# Lib required to print logs +import logging +# Lib to translate error messages +from openerp.tools.translate import _ +# Lib for phone number reformating -> pip install phonenumbers +import phonenumbers +# Lib py-asterisk from http://code.google.com/p/py-asterisk/ +# We need a version which has this commit : http://code.google.com/p/py-asterisk/source/detail?r=8d0e1c941cce727c702582f3c9fcd49beb4eeaa4 +# so a version after Nov 20th, 2012 +from Asterisk import Manager + +_logger = logging.getLogger(__name__) + + +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, multi="e164claim", 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..77b8b09 --- /dev/null +++ b/asterisk_click2dial_crm_claim/crm_claim_view.xml @@ -0,0 +1,30 @@ + + + + + + + + asterisk.crm_claim.form.dial + crm.claim + + + + + +