Skip to content
Snippets Groups Projects
Commit 7ef44620 authored by magicfelix's avatar magicfelix
Browse files

[DAV] Fix comparing dates to time-range filter datetimes

parent f50b7f6d
No related branches found
No related tags found
1 merge request!1147Implement read-only CalDAV and CardDAV
......@@ -13,6 +13,14 @@ class TimeRangeFilter(ElementHandler):
name = "{urn:ietf:params:xml:ns:caldav}time-range"
invisible = True
@staticmethod
def _compare_date_time(a, b):
if not isinstance(a, datetime):
b = b.date()
elif not isinstance(b, datetime):
a = a.date()
return a <= b
def post_handle(self):
for k, v in self.attrs.items():
d = datetime.fromisoformat(v)
......@@ -20,7 +28,7 @@ class TimeRangeFilter(ElementHandler):
if k == (None, "start"):
self.request.objects = list(
filter(
lambda obj: obj.value_end_datetime(obj) >= d
lambda obj: self._compare_date_time(d, obj.value_end_datetime(obj))
if obj.value_end_datetime(obj) is not None
else True,
self.request.objects,
......@@ -29,7 +37,7 @@ class TimeRangeFilter(ElementHandler):
elif k == (None, "end"):
self.request.objects = list(
filter(lambda obj: obj.value_start_datetime(obj) <= d, self.request.objects)
filter(lambda obj: self._compare_date_time(obj.value_start_datetime(obj), d), self.request.objects)
)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment