From 08bddb434fddb557c71a43b7a55abf543317a8f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 23 May 2012 16:51:50 +0200 Subject: [PATCH] [IMP] crm_meeting: cleaned code, preparation to migrate from crm_base to base_state. bzr revid: tde@openerp.com-20120523145150-x3dohwxcavntw5x4 --- addons/crm/crm_meeting.py | 72 ++++++++++++--------------------- addons/crm/crm_meeting_view.xml | 36 ++++++++++------- 2 files changed, 47 insertions(+), 61 deletions(-) diff --git a/addons/crm/crm_meeting.py b/addons/crm/crm_meeting.py index a0e4803cde7..45c7de1b9ef 100644 --- a/addons/crm/crm_meeting.py +++ b/addons/crm/crm_meeting.py @@ -2,7 +2,7 @@ ############################################################################## # # OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). +# Copyright (C) 2004-today OpenERP SA () # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -20,33 +20,20 @@ ############################################################################## from base_calendar import base_calendar -from crm import crm_base, crm_case +from crm import crm_base +import logging from osv import fields, osv import tools from tools.translate import _ -import logging - -class crm_lead(crm_case, osv.osv): - """ CRM Leads """ - _name = 'crm.lead' -crm_lead() - -class crm_phonecall(crm_case, osv.osv): - """ CRM Phonecall """ - _name = 'crm.phonecall' -crm_phonecall() - - -class crm_meeting(crm_base, osv.osv): - """ CRM Meeting Cases """ +class crm_meeting(crm_base, osv.Model): + """ Model for CRM meetings """ _name = 'crm.meeting' _description = "Meeting" _order = "id desc" _inherit = ["calendar.event", 'ir.needaction_mixin', "mail.thread"] _columns = { - # From crm.case - 'name': fields.char('Summary', size=124, required=True, states={'done': [('readonly', True)]}), + # base_state required fields 'partner_id': fields.many2one('res.partner', 'Partner', states={'done': [('readonly', True)]}), 'section_id': fields.many2one('crm.case.section', 'Sales Team', states={'done': [('readonly', True)]}, \ select=True, help='Sales team to which Case belongs to.'), @@ -57,6 +44,7 @@ class crm_meeting(crm_base, osv.osv): 'date_action_last': fields.datetime('Last Action', readonly=1), 'date_action_next': fields.datetime('Next Action', readonly=1), # Meeting fields + 'name': fields.char('Summary', size=124, required=True, states={'done': [('readonly', True)]}), 'categ_id': fields.many2one('crm.case.categ', 'Meeting Type', \ domain="[('object_id.model', '=', 'crm.meeting')]", \ ), @@ -67,16 +55,17 @@ class crm_meeting(crm_base, osv.osv): 'date_closed': fields.datetime('Closed', readonly=True), 'date_deadline': fields.datetime('Deadline', states={'done': [('readonly', True)]}), 'message_ids': fields.one2many('mail.message', 'res_id', 'Messages', domain=[('model','=',_name)]), - 'state': fields.selection([('open', 'Confirmed'), - ('draft', 'Unconfirmed'), + 'state': fields.selection([ ('draft', 'Unconfirmed'), + ('open', 'Confirmed'), ('cancel', 'Cancelled'), - ('done', 'Done')], 'Status', \ - size=16, readonly=True), + ('done', 'Done')], + string='Status', size=16, readonly=True), } _defaults = { 'state': 'draft', 'active': 1, 'user_id': lambda self, cr, uid, ctx: uid, + 'partner_id': crm_base._get_default_partner, } def create(self, cr, uid, vals, context=None): @@ -91,6 +80,17 @@ class crm_meeting(crm_base, osv.osv): result[obj.id] = [obj.user_id.id] return result + def case_open(self, cr, uid, ids, context=None): + """ Confirms meeting """ + res = super(crm_meeting, self).case_open(cr, uid, ids, context) + for (id, name) in self.name_get(cr, uid, ids): + id=base_calendar.base_calendar_id2real_id(id) + return res + + # ---------------------------------------- + # OpenChatter + # ---------------------------------------- + def case_get_note_msg_prefix(self, cr, uid, id, context=None): return 'Meeting' @@ -119,32 +119,12 @@ class crm_meeting(crm_base, osv.osv): meeting.message_append_note(body=parent_message) return True - def case_close_send_note(self, cr, uid, ids, context=None): - message = _("Meeting has been done.") - return self.message_append_note(cr, uid, ids, body=message, context=context) - def case_open_send_note(self, cr, uid, ids, context=None): - for meeting in self.browse(cr, uid, ids, context=context): - if meeting.state != 'draft': - return False - message = _("Meeting has been confirmed.") - meeting.message_append_note(body=message) - return True + return self.message_append_note(cr, uid, ids, body=_("Meeting has been confirmed."), context=context) - def case_open(self, cr, uid, ids, context=None): - """Confirms meeting - @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 Meeting Ids - @param *args: Tuple Value for additional Params - """ - res = super(crm_meeting, self).case_open(cr, uid, ids, context) - for (id, name) in self.name_get(cr, uid, ids): - id=base_calendar.base_calendar_id2real_id(id) - return res + def case_close_send_note(self, cr, uid, ids, context=None): + return self.message_append_note(cr, uid, ids, body=_("Meeting has been done."), context=context) -crm_meeting() class calendar_attendee(osv.osv): """ Calendar Attendee """ diff --git a/addons/crm/crm_meeting_view.xml b/addons/crm/crm_meeting_view.xml index 5b0a35a185e..4f2c326199d 100644 --- a/addons/crm/crm_meeting_view.xml +++ b/addons/crm/crm_meeting_view.xml @@ -25,7 +25,23 @@ crm.meeting form -
+ + +
+