[IMP] crm_meeting: cleaned code, preparation to migrate from crm_base to base_state.

bzr revid: tde@openerp.com-20120523145150-x3dohwxcavntw5x4
This commit is contained in:
Thibault Delavallée 2012-05-23 16:51:50 +02:00
parent 65a195861a
commit 08bddb434f
2 changed files with 47 additions and 61 deletions

View File

@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-today OpenERP SA (<http://www.openerp.com>)
#
# 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 <b>done</b>.")
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 <b>confirmed</b>.")
meeting.message_append_note(body=message)
return True
return self.message_append_note(cr, uid, ids, body=_("Meeting has been <b>confirmed</b>."), 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 users 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 <b>done</b>."), context=context)
crm_meeting()
class calendar_attendee(osv.osv):
""" Calendar Attendee """

View File

@ -25,7 +25,23 @@
<field name="model">crm.meeting</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Meetings">
<form string="Meetings" layout="manual">
<sheet layout="auto">
<div class="oe_form_topbar oe_form_topbar_hifirst">
<button name="case_open" string="Confirm" type="object"
states="draft" icon="gtk-go-forward"/>
<button name="case_close" string="Done" type="object"
states="open" icon="gtk-jump-to"/>
<button name="case_reset" string="Reset to Unconfirmed" type="object"
states="cancel" icon="gtk-convert"/>
<button name="case_cancel" string="Cancel" type="object"
states="draft,open,done" icon="gtk-cancel"/>
<div class="oe_right">
<field name="state" nolabel="1" widget="statusbar"
statusbar_visible="draft,open,done"/>
</div>
<div class="oe_clear"/>
</div>
<group col="6" colspan="4">
<field name="name" select="1" string="Title"
required="1" />
@ -71,19 +87,6 @@
</group>
<separator string="Description" colspan="4" />
<field name="description" nolabel="1" colspan="4" />
<separator colspan="4"/>
<group col="8" colspan="4" groups="base.group_no_one">
<field name="state" />
<button name="case_close" string="Done"
states="open" type="object"
icon="gtk-jump-to" />
<button name="case_reset" string="Reset to Unconfirmed"
states="open,done" type="object"
icon="gtk-convert" />
<button name="case_open" string="Confirm"
states="draft" type="object"
icon="gtk-go-forward" />
</group>
</page>
<page string="Invitation Detail">
<button string="Invite People"
@ -209,7 +212,10 @@
</page>
</notebook>
<field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
</sheet>
<div class="oe_form_bottom">
<field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
</div>
</form>
</field>
</record>