diff --git a/addons/crm/__terp__.py b/addons/crm/__terp__.py index 2ed47c61351..25a4c0839b2 100644 --- a/addons/crm/__terp__.py +++ b/addons/crm/__terp__.py @@ -63,12 +63,15 @@ between mails and Open ERP.""", 'update_xml': [ 'wizard/crm_lead_to_partner_view.xml', 'wizard/crm_lead_to_opportunity_view.xml', - 'wizard/crm_phonecall2phonecall.xml', - 'wizard/phonecall2meeting.xml', + + 'wizard/crm_phonecall_to_phonecall_view.xml', + 'wizard/crm_phonecall_to_meeting_view.xml', 'wizard/crm_phonecall_to_partner_view.xml', 'wizard/crm_phonecall_to_opportunity_view.xml', + 'wizard/crm_opportunity_to_meeting_view.xml', 'wizard/crm_opportunity_to_phonecall_view.xml', + 'crm_wizard.xml', 'crm_view.xml', @@ -77,7 +80,6 @@ between mails and Open ERP.""", 'crm_lead_menu.xml', 'crm_meeting_view.xml', 'crm_meeting_menu.xml', - #'crm_phonecall_wizard.xml', 'crm_phonecall_view.xml', 'crm_phonecall_menu.xml', 'crm_opportunity_view.xml', diff --git a/addons/crm/wizard/__init__.py b/addons/crm/wizard/__init__.py index 2d0a7eaf651..4ab5e00ad67 100644 --- a/addons/crm/wizard/__init__.py +++ b/addons/crm/wizard/__init__.py @@ -31,9 +31,9 @@ import crm_lead_to_opportunity import crm_opportunity_to_meeting import crm_opportunity_to_phonecall -import crm_phonecall2phonecall +import crm_phonecall_to_phonecall import crm_phonecall_to_partner -import phonecall2meeting +import crm_phonecall_to_meeting import crm_phonecall_to_opportunity diff --git a/addons/crm/wizard/crm_opportunity_to_meeting_view.xml b/addons/crm/wizard/crm_opportunity_to_meeting_view.xml index 99229aa738d..7ea05598d28 100644 --- a/addons/crm/wizard/crm_opportunity_to_meeting_view.xml +++ b/addons/crm/wizard/crm_opportunity_to_meeting_view.xml @@ -30,7 +30,6 @@ form new - {'record_id' : active_id} diff --git a/addons/crm/wizard/crm_phonecall_to_meeting.py b/addons/crm/wizard/crm_phonecall_to_meeting.py new file mode 100644 index 00000000000..e3edcf894e0 --- /dev/null +++ b/addons/crm/wizard/crm_phonecall_to_meeting.py @@ -0,0 +1,99 @@ +# -*- 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 osv +from tools.translate import _ + +class crm_phonecall2meeting(osv.osv_memory): + """ Phonecall to Meeting """ + + _name = 'crm.phonecall2meeting' + _description = 'Phonecall To Meeting' + + def action_cancel(self, cr, uid, ids, context=None): + """ + Closes Phonecall to Meeting form + @param self: The object pointer + @param cr: the current row, from the database cursor, + @param uid: the current user’s ID for security checks, + @param ids: List of Phonecall to Meeting IDs + @param context: A standard dictionary for contextual values + + """ + return {'type':'ir.actions.act_window_close'} + + def action_make_meeting(self, cr, uid, ids, context=None): + """ + This opens Meeting's calendar view to schedule meeting on current Phonecall + @param self: The object pointer + @param cr: the current row, from the database cursor, + @param uid: the current user’s ID for security checks, + @param ids: List of Phonecall to Meeting IDs + @param context: A standard dictionary for contextual values + + @return : Dictionary value for created Meeting view + """ + value = {} + record_id = context and context.get('active_id', False) or False + + if record_id: + phonecall_obj = self.pool.get('crm.phonecall') + data_obj = self.pool.get('ir.model.data') + + # Get meeting views + result = data_obj._get_id(cr, uid, 'crm', 'view_crm_case_meetings_filter') + res = data_obj.read(cr, uid, result, ['res_id']) + id1 = data_obj._get_id(cr, uid, 'crm', 'crm_case_calendar_view_meet') + id2 = data_obj._get_id(cr, uid, 'crm', 'crm_case_form_view_meet') + id3 = data_obj._get_id(cr, uid, 'crm', 'crm_case_tree_view_meet') + if id1: + id1 = data_obj.browse(cr, uid, id1, context=context).res_id + if id2: + id2 = data_obj.browse(cr, uid, id2, context=context).res_id + if id3: + id3 = data_obj.browse(cr, uid, id3, context=context).res_id + + phonecall = phonecall_obj.browse(cr, uid, record_id, context=context) + context = { + 'default_phonecall_id': phonecall.id, + 'default_partner_id': phonecall.partner_id and phonecall.partner_id.id or False, + 'default_email': phonecall.email_from , + 'default_name': phonecall.name + } + + value = { + 'name': _('Meetings'), + 'domain' : "[('user_id','=',%s)]" % (uid), + 'context': context, + 'view_type': 'form', + 'view_mode': 'calendar,form,tree', + 'res_model': 'crm.meeting', + 'view_id': False, + 'views': [(id1, 'calendar'), (id2, 'form'), (id3, 'tree')], + 'type': 'ir.actions.act_window', + 'search_view_id': res['res_id'] + } + + return value + +crm_phonecall2meeting() + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/crm/wizard/phonecall2meeting.xml b/addons/crm/wizard/crm_phonecall_to_meeting_view.xml similarity index 82% rename from addons/crm/wizard/phonecall2meeting.xml rename to addons/crm/wizard/crm_phonecall_to_meeting_view.xml index fe90bbe5cd6..11561b81e8c 100644 --- a/addons/crm/wizard/phonecall2meeting.xml +++ b/addons/crm/wizard/crm_phonecall_to_meeting_view.xml @@ -1,6 +1,9 @@ + + + crm.phonecall2meeting.form crm.phonecall2meeting @@ -8,10 +11,13 @@