From 010c66551350b4ab1c5d7f81ea7c5f82b0528d6a Mon Sep 17 00:00:00 2001 From: "atp (Open ERP)" Date: Fri, 3 Dec 2010 15:01:16 +0530 Subject: [PATCH] [IMP]: Add write_date for dtstamp Using standard RFC 5545, par 3.8.7.2. bzr revid: atp@tinyerp.co.in-20101203093116-yh6jnd3qtc43baqa --- addons/caldav/calendar.py | 23 ++++++++++--------- addons/caldav/wizard/calendar_event_import.py | 2 +- addons/crm_caldav/crm_caldav.py | 7 ++++++ addons/crm_caldav/crm_caldav_data.xml | 4 ++-- addons/crm_caldav/crm_caldav_setup.xml | 4 ++-- 5 files changed, 24 insertions(+), 16 deletions(-) diff --git a/addons/caldav/calendar.py b/addons/caldav/calendar.py index f9615e52ef5..34af201eb2c 100644 --- a/addons/caldav/calendar.py +++ b/addons/caldav/calendar.py @@ -148,7 +148,6 @@ def get_attribute_mapping(cr, uid, calname, context=None): @param uid: the current user’s 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: diff --git a/addons/caldav/wizard/calendar_event_import.py b/addons/caldav/wizard/calendar_event_import.py index 11f9f9b4afb..955d9b2deef 100644 --- a/addons/caldav/wizard/calendar_event_import.py +++ b/addons/caldav/wizard/calendar_event_import.py @@ -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() diff --git a/addons/crm_caldav/crm_caldav.py b/addons/crm_caldav/crm_caldav.py index c2ed193dc23..7e19f75f6cc 100644 --- a/addons/crm_caldav/crm_caldav.py +++ b/addons/crm_caldav/crm_caldav.py @@ -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) diff --git a/addons/crm_caldav/crm_caldav_data.xml b/addons/crm_caldav/crm_caldav_data.xml index 0e28af56dca..ac05344d7fe 100644 --- a/addons/crm_caldav/crm_caldav_data.xml +++ b/addons/crm_caldav/crm_caldav_data.xml @@ -117,8 +117,8 @@ - - field + + datetime_utc diff --git a/addons/crm_caldav/crm_caldav_setup.xml b/addons/crm_caldav/crm_caldav_setup.xml index 1a103f61811..7e20a318e4f 100644 --- a/addons/crm_caldav/crm_caldav_setup.xml +++ b/addons/crm_caldav/crm_caldav_setup.xml @@ -176,8 +176,8 @@ - - field + + datetime_utc