[IMP]: crm, caldav: Improvement in alarm mapping to meeting
bzr revid: rpa@openerp.co.in-20100107124746-e9qw13s1gcg5xfhj
This commit is contained in:
@@ -156,32 +156,6 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="caldav_alarm_form_view" model="ir.ui.view">
|
||||
<field name="name">crm.case.caldav.alarm.form</field>
|
||||
<field name="model">crm.caldav.alarm</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Reminder details">
|
||||
<field name="alarm_id" select="1"/>
|
||||
<field name="action_id" select="1" required="True"/>
|
||||
<separator string="Attendees" colspan="4" />
|
||||
<field name="attendee_ids" colspan="4" nolabel="1"/>
|
||||
<field name='state'/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="crm_caldav_tree_view" model="ir.ui.view">
|
||||
<field name="name">crm.caldav.alarm.tree</field>
|
||||
<field name="model">crm.caldav.alarm</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Reminder details">
|
||||
<field name="alarm_id" select="1"/>
|
||||
<field name="action_id" select="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="res_alarm_form_view" model="ir.ui.view">
|
||||
<field name="name">res.alarm.form</field>
|
||||
<field name="model">res.alarm</field>
|
||||
|
||||
@@ -67,7 +67,7 @@ class crm_meeting(osv.osv):
|
||||
'x-openobject-model': {'value': _name, 'type': 'text'},
|
||||
# 'duration': {'field': 'duration'},
|
||||
'dtend': {'field': 'date_closed', 'type': 'datetime'},
|
||||
'valarm': {'field': 'alarm_id', 'type': 'many2one', 'object': 'crm.caldav.alarm'},
|
||||
'valarm': {'field': 'caldav_alarm_id', 'type': 'many2one', 'object': 'crm.caldav.alarm'},
|
||||
}
|
||||
|
||||
def _get_attendee_data(self, cr, uid, ids, name, arg, context):
|
||||
@@ -118,6 +118,7 @@ class crm_meeting(osv.osv):
|
||||
'attendees': fields.function(_get_attendee_data, method=True,\
|
||||
fnct_inv=_set_attendee_data, string='Attendees', type="text"),
|
||||
'alarm_id': fields.many2one('res.alarm', 'Alarm'),
|
||||
'caldav_alarm_id': fields.many2one('crm.caldav.alarm', 'Alarm'),
|
||||
'attendee_ids': fields.many2many('crm.caldav.attendee', 'crm_attendee_rel', 'case_id', \
|
||||
'attendee_id', 'Attendees'),
|
||||
}
|
||||
@@ -130,17 +131,16 @@ class crm_meeting(osv.osv):
|
||||
alarm_obj = self.pool.get('crm.caldav.alarm')
|
||||
model_obj = self.pool.get('ir.model')
|
||||
model_id = model_obj.search(cr, uid, [('model','=',self._name)])[0]
|
||||
for meeting in self.browse(cr, uid, ids):
|
||||
alarm_ids = alarm_obj.search(cr, uid, [('model_id','=',model_id), ('res_id','=',meeting.id)])
|
||||
if alarm_ids and len(alarm_ids):
|
||||
alarm_obj.unlink(cr, uid, alarm_ids)
|
||||
|
||||
for meeting in self.browse(cr, uid, ids):
|
||||
self.do_alarm_unlink(cr, uid, [meeting.id])
|
||||
basic_alarm = meeting.alarm_id
|
||||
if basic_alarm and meeting.state in ('open'):
|
||||
vals = {
|
||||
'action': 'DISPLAY',
|
||||
'description': meeting.description,
|
||||
'name': meeting.name,
|
||||
'attendee_ids': [6,0, map(lambda x:x.id, meeting.attendee_ids)],
|
||||
'attendee_ids': [(6,0, map(lambda x:x.id, meeting.attendee_ids))],
|
||||
'trigger_related': basic_alarm.trigger_related,
|
||||
'trigger_duration': basic_alarm.trigger_duration,
|
||||
'trigger_occurs': basic_alarm.trigger_occurs,
|
||||
@@ -149,11 +149,13 @@ class crm_meeting(osv.osv):
|
||||
'repeat': basic_alarm.repeat,
|
||||
'state' : 'run',
|
||||
'event_date' : meeting.date,
|
||||
'res_id' : basic_alarm.id,
|
||||
'res_id' : meeting.id,
|
||||
'model_id' : model_id,
|
||||
'user_id' : uid
|
||||
}
|
||||
alarm_obj.create(cr, uid, vals)
|
||||
alarm_id = alarm_obj.create(cr, uid, vals)
|
||||
cr.execute('Update crm_meeting set caldav_alarm_id=%s where id=%s' % (alarm_id, meeting.id))
|
||||
cr.commit()
|
||||
return True
|
||||
|
||||
def do_alarm_unlink(self, cr, uid, ids, context={}):
|
||||
@@ -163,7 +165,9 @@ class crm_meeting(osv.osv):
|
||||
for meeting in self.browse(cr, uid, ids):
|
||||
alarm_ids = alarm_obj.search(cr, uid, [('model_id','=',model_id), ('res_id','=',meeting.id)])
|
||||
if alarm_ids and len(alarm_ids):
|
||||
alarm_obj.unlink(cr, uid, alarm_ids)
|
||||
alarm_obj.unlink(cr, uid, alarm_ids)
|
||||
cr.execute('Update crm_meeting set caldav_alarm_id=NULL where id=%s' % (meeting.id))
|
||||
cr.commit()
|
||||
return True
|
||||
|
||||
def on_change_duration(self, cr, uid, id, date, duration):
|
||||
|
||||
Reference in New Issue
Block a user