[IMP]: Add write_date for dtstamp Using standard RFC 5545, par 3.8.7.2.

bzr revid: atp@tinyerp.co.in-20101203093116-yh6jnd3qtc43baqa
This commit is contained in:
atp (Open ERP) 2010-12-03 15:01:16 +05:30
parent 5bf2d70671
commit 010c665513
5 changed files with 24 additions and 16 deletions

View File

@ -148,7 +148,6 @@ def get_attribute_mapping(cr, uid, calname, context=None):
@param uid: the current users ID for security checks,
@param calname: Get Calendar name
@param context: A standard dictionary for contextual values """
if not context:
context = {}
pool = pooler.get_pool(cr.dbname)
@ -276,7 +275,6 @@ class CalDAV(object):
@param self: The object pointer,
@param type: Get Attribute Type
"""
for name in self.__attribute__:
if self.__attribute__[name]:
self.__attribute__[name][type] = None
@ -340,8 +338,6 @@ class CalDAV(object):
date_local = cal_data.value.astimezone(_server_tzinfo)
self.ical_set(cal_data.name.lower(), date_local, 'value')
continue
# date_local = cal_data.value.astimezone(pytz.utc)
self.ical_set(cal_data.name.lower(), cal_data.value, 'value')
vals = map_data(cr, uid, self, context=context)
return vals
@ -854,7 +850,7 @@ class basic_calendar_fields(osv.osv):
}
_defaults = {
'fn': lambda *a: 'field',
'fn': 'field',
}
_sql_constraints = [
@ -906,7 +902,6 @@ class basic_calendar_fields(osv.osv):
@param vals: Get Values
@param context: A standard dictionary for contextual values
"""
if not vals:
return
for id in ids:
@ -1186,11 +1181,16 @@ class Alarm(CalDAV, osv.osv_memory):
self.__attribute__ = get_attribute_mapping(cr, uid, self._calname, ctx)
for child in ical_data.getChildren():
if child.name.lower() == 'trigger':
seconds = child.value.seconds
days = child.value.days
diff = (days * 86400) + seconds
interval = 'days'
related = 'before'
if isinstance(child.value, timedelta):
seconds = child.value.seconds
days = child.value.days
diff = (days * 86400) + seconds
interval = 'days'
related = 'before'
elif isinstance(child.value, datetime):
# TODO
# remember, spec says this datetime is in UTC
raise NotImplementedError("we cannot parse absolute triggers")
if not seconds:
duration = abs(days)
related = days > 0 and 'after' or 'before'
@ -1294,4 +1294,5 @@ class Attendee(CalDAV, osv.osv_memory):
Attendee()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -79,7 +79,7 @@ class calendar_event_import(osv.osv_memory):
}
_defaults = {
'msg':lambda *a:'Import Sucessful'
'msg': lambda cr, uid, ids, context: _('Import Sucessful')
}
calendar_event_import()

View File

@ -45,6 +45,12 @@ class crm_meeting(osv.osv):
ical = event_obj.export_cal(cr, uid, event_data, context=context)
return ical.serialize()
def write(self, cr, uid, ids, vals, context=None):
if "write_date" in vals:
del vals['write_date']
return super(crm_meeting, self).write(cr, uid, ids, vals, context=context)
def import_cal(self, cr, uid, data, data_id=None, context=None):
"""
@param self: The object pointer
@ -91,6 +97,7 @@ class crm_meeting(osv.osv):
val.update({'recurrent_uid': exists})
model_obj.write(cr, uid, [r_id], val)
ids.append(r_id)
elif exists:
model_obj.write(cr, uid, [exists], val)
ids.append(exists)

View File

@ -117,8 +117,8 @@
<record model="basic.calendar.fields" id="map_event_13">
<field name="name" ref="caldav.field_event_dtstamp"/>
<field name="type_id" ref="base_calendar.calendar_lines_event" />
<field name="field_id" search="[('name','=','date'),('model_id.model','=','calendar.event')]" />
<field name="fn">field</field>
<field name="field_id" search="[('name','=','write_date'),('model_id.model','=','crm.meeting')]" />
<field name="fn">datetime_utc</field>
</record>
<record model="basic.calendar.fields" id="map_event_14">

View File

@ -176,8 +176,8 @@
<record id="basic_calendar_fields_24" model="basic.calendar.fields">
<field name="name" ref="caldav.field_event_dtstamp"/>
<field name="type_id" ref="basic_calendar_lines_vevent0"/>
<field name="field_id" ref="base_calendar.field_calendar_event_date"/>
<field name="fn">field</field>
<field name="field_id" ref="crm.field_crm_meeting_write_date"/>
<field name="fn">datetime_utc</field>
</record>
<record id="basic_calendar_fields_25" model="basic.calendar.fields">
<field name="name" ref="caldav.field_event_description"/>