diff --git a/addons/caldav/calendar.py b/addons/caldav/calendar.py index 6ec234a6f4b..7800c773112 100644 --- a/addons/caldav/calendar.py +++ b/addons/caldav/calendar.py @@ -126,6 +126,8 @@ class CalDAV(object): elif map_type == 'datetime' and data[map_field]: vevent.add(field).value = datetime.strptime(data[map_field], \ "%Y-%m-%d %H:%M:%S") + elif map_type == "timedelta": + vevent.add(field).value = timedelta(hours=data[map_field]) if self.__attribute__.get(field).has_key('mapping'): for key1, val1 in self.ical_get(field, 'mapping').items(): if val1 == data[map_field]: @@ -151,7 +153,7 @@ class CalDAV(object): if cal_data.name.lower() in self.__attribute__: self.ical_set(cal_data.name.lower(), cal_data.value, 'value') vals = map_data(cr, uid, self) - if vals : res.append(vals) + if vals: res.append(vals) self.ical_reset('value') return res diff --git a/addons/caldav/common.py b/addons/caldav/common.py index c3e08fc878d..46192c6a0e6 100644 --- a/addons/caldav/common.py +++ b/addons/caldav/common.py @@ -204,7 +204,7 @@ virtual_report_spool() class virtual_wizard(web_services.wizard): def exp_execute(self, db, uid, wiz_id, datas, action='init', context=None): if wiz_id not in self.wiz_uid: - # TODO : To Check why need it + # TODO: To Check why need it if wiz_id == 1: wiz_name ='base_setup.base_setup' if wiz_id == 2: diff --git a/addons/project_calendar/project_calendar.py b/addons/project_calendar/project_calendar.py index 593a3825c03..82ae10ff4f7 100644 --- a/addons/project_calendar/project_calendar.py +++ b/addons/project_calendar/project_calendar.py @@ -66,7 +66,7 @@ class project_task(osv.osv): 'description': {'field': 'description', 'type': 'text'}, # 'dtstamp': {'field': 'field', 'type': 'text'}, 'dtstart': {'field': 'date_start', 'type': 'datetime'}, - 'duration': {'field': 'planned_hours', 'type': 'int'}, + 'duration': {'field': 'planned_hours', 'type': 'timedelta'}, 'due': {'field': 'date_deadline', 'type': 'datetime'}, # 'geo': {'field': 'field', 'type': 'text'}, # 'last-mod ': {'field': 'field', 'type': 'text'}, @@ -112,9 +112,14 @@ class project_task(osv.osv): vals = todo_obj.import_ical(cr, uid, file_content) for val in vals: - if not val.has_key('duration'): - # 'Compute duration' + obj_tm = self.pool.get('res.users').browse(cr, uid, uid, context).company_id.project_time_mode_id + if not val.has_key('planned_hours'): + # 'Compute duration' in days val['planned_hours'] = 16 + else: + # Convert timedelta into Project time unit + val['planned_hours'] = (val['planned_hours'].seconds/float(86400) + \ + val['planned_hours'].days) * obj_tm.factor val.pop('id') task_id = self.create(cr, uid, val) return {'count': len(vals)}