Skip to content

Commit 75eddb8

Browse files
authored
Update Finding/Product SLA filters (#9115)
This change maintains the original query set passed into the filter
1 parent c53be62 commit 75eddb8

1 file changed

Lines changed: 16 additions & 8 deletions

File tree

dojo/filters.py

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -148,12 +148,16 @@ def any(self, qs, name):
148148
return qs
149149

150150
def satisfies_sla(self, qs, name):
151-
non_sla_violations = [finding.id for finding in qs if not finding.violates_sla]
152-
return Finding.objects.filter(id__in=non_sla_violations)
151+
for finding in qs:
152+
if finding.violates_sla:
153+
qs = qs.exclude(id=finding.id)
154+
return qs
153155

154156
def violates_sla(self, qs, name):
155-
sla_violations = [finding.id for finding in qs if finding.violates_sla]
156-
return Finding.objects.filter(id__in=sla_violations)
157+
for finding in qs:
158+
if not finding.violates_sla:
159+
qs = qs.exclude(id=finding.id)
160+
return qs
157161

158162
options = {
159163
None: (_('Any'), any),
@@ -179,12 +183,16 @@ def any(self, qs, name):
179183
return qs
180184

181185
def satisfies_sla(self, qs, name):
182-
non_sla_violations = [product.id for product in qs if not product.violates_sla]
183-
return Product.objects.filter(id__in=non_sla_violations)
186+
for product in qs:
187+
if product.violates_sla:
188+
qs = qs.exclude(id=product.id)
189+
return qs
184190

185191
def violates_sla(self, qs, name):
186-
sla_violations = [product.id for product in qs if product.violates_sla]
187-
return Product.objects.filter(id__in=sla_violations)
192+
for product in qs:
193+
if not product.violates_sla:
194+
qs = qs.exclude(id=product.id)
195+
return qs
188196

189197
options = {
190198
None: (_('Any'), any),

0 commit comments

Comments
 (0)