fix(chalice): use card's global filters instead of series' filters (#2857)

This commit is contained in:
Kraiem Taha Yassine 2024-12-11 16:17:24 +01:00 committed by GitHub
parent 45ef98b163
commit 94b541c758
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1023,33 +1023,51 @@ class CardSessionsSchema(_TimedSchema, _PaginatedSchema):
return self return self
# We don't need this as the UI is expecting filters to override the full series' filters
# @model_validator(mode="after")
# def __merge_out_filters_with_series(self):
# for f in self.filters:
# for s in self.series:
# found = False
#
# if f.is_event:
# sub = s.filter.events
# else:
# sub = s.filter.filters
#
# for e in sub:
# if f.type == e.type and f.operator == e.operator:
# found = True
# if f.is_event:
# # If extra event: append value
# for v in f.value:
# if v not in e.value:
# e.value.append(v)
# else:
# # If extra filter: override value
# e.value = f.value
# if not found:
# sub.append(f)
#
# self.filters = []
#
# return self
# UI is expecting filters to override the full series' filters
@model_validator(mode="after") @model_validator(mode="after")
def __merge_out_filters_with_series(self): def __override_series_filters_with_outer_filters(self):
for f in self.filters: if len(self.filters) > 0:
for s in self.series: events = []
found = False filters = []
for f in self.filters:
if f.is_event: if f.is_event:
sub = s.filter.events events.append(f)
else: else:
sub = s.filter.filters filters.append(f)
for s in self.series:
for e in sub: s.filter.events = events
if f.type == e.type and f.operator == e.operator: s.filter.filters = filters
found = True
if f.is_event:
# If extra event: append value
for v in f.value:
if v not in e.value:
e.value.append(v)
else:
# If extra filter: override value
e.value = f.value
if not found:
sub.append(f)
self.filters = [] self.filters = []
return self return self