Răsfoiți Sursa

Revert time_range processing

Georgiy 7 luni în urmă
părinte
comite
76188c210e
1 a modificat fișierele cu 8 adăugiri și 11 ștergeri
  1. 8 11
      radicale/app/report.py

+ 8 - 11
radicale/app/report.py

@@ -228,18 +228,15 @@ def xml_report(base_prefix: str, path: str, xml_request: Optional[ET.Element],
     expand = root.find(".//" + xmlutils.make_clark("C:expand"))
 
     # if we have expand prop we use "filter (except time range) -> expand -> filter (only time range)" approach
-    vevent_time_range = None
+    time_range_element = None
     main_filters = []
     for filter_ in filters:
-        if expand is not None:
-            for comp_filter in filter_.findall(".//" + xmlutils.make_clark("C:comp-filter")):
-                if comp_filter.get("name", "").upper() == "VEVENT":
-                    vevent_time_range = comp_filter.find(".//" + xmlutils.make_clark("C:time-range"))
-                    if vevent_time_range is not None:
-                        comp_filter.remove(vevent_time_range)
-                    break
+        # extract time-range filter for processing after main filters
+        # for expand request
+        time_range_element = filter_.find(".//" + xmlutils.make_clark("C:time-range"))
 
-        main_filters.append(filter_)
+        if expand is None or time_range_element is None:
+            main_filters.append(filter_)
 
     # Extract requested component types from filters
     requested_components = set()
@@ -319,8 +316,8 @@ def xml_report(base_prefix: str, path: str, xml_request: Optional[ET.Element],
                     time_range_start = None
                     time_range_end = None
 
-                    if vevent_time_range is not None:
-                        time_range_start, time_range_end = radicale_filter.parse_time_range(vevent_time_range)
+                    if time_range_element is not None:
+                        time_range_start, time_range_end = radicale_filter.parse_time_range(time_range_element)
 
                     (expanded_element, n_vev) = _expand(
                         element=element, item=copy.copy(item),