diff --git a/base_dav/models/dav_collection.py b/base_dav/models/dav_collection.py index 54a7ff44b..fea326a12 100644 --- a/base_dav/models/dav_collection.py +++ b/base_dav/models/dav_collection.py @@ -4,6 +4,7 @@ import os import time +import datetime from operator import itemgetter from urllib.parse import quote_plus @@ -147,12 +148,18 @@ def to_vobject(self, record): if 'uid' not in vobj.contents: vobj.add('uid').value = '%s,%s' % (record._name, record.id) if 'rev' not in vobj.contents and 'write_date' in record._fields: - vobj.add('rev').value = record.write_date.\ + if isinstance(record.write_date, datetime.datetime): + str_date = str(record.write_date) + else: + str_date = record.write_date + vobj.add('rev').value = str_date.\ replace(':', '').replace(' ', 'T').replace('.', '') + 'Z' return result @api.model def _odoo_to_http_datetime(self, value): + if isinstance(value, datetime.datetime): + return value.strftime('%a, %d %b %Y %H:%M:%S GMT') return time.strftime( '%a, %d %b %Y %H:%M:%S GMT', time.strptime(value, '%Y-%m-%d %H:%M:%S'), diff --git a/base_dav/radicale/collection.py b/base_dav/radicale/collection.py index 0fe39abe8..55787db19 100644 --- a/base_dav/radicale/collection.py +++ b/base_dav/radicale/collection.py @@ -4,6 +4,7 @@ import base64 import os import time +import datetime from contextlib import contextmanager from odoo.http import request @@ -96,6 +97,8 @@ def __init__(self, path): )) def _odoo_to_http_datetime(self, value): + if isinstance(value, datetime.datetime): + return value.strftime('%a, %d %b %Y %H:%M:%S GMT') return time.strftime( '%a, %d %b %Y %H:%M:%S GMT', time.strptime(value, '%Y-%m-%d %H:%M:%S'),