Skip to content

Commit 754db6a

Browse files
authored
Merge pull request #1178 from HumanoidPhantom/dev
Optimised filtering
2 parents aea1d60 + de740ff commit 754db6a

File tree

1 file changed

+14
-22
lines changed

1 file changed

+14
-22
lines changed

dojo/filters.py

Lines changed: 14 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -381,11 +381,9 @@ def __init__(self, *args, **kwargs):
381381
if finding.cwe > 0 and finding.cwe not in cwe)
382382
cwe = collections.OrderedDict(sorted(cwe.items()))
383383
self.form.fields['cwe'].choices = cwe.items()
384-
sevs = dict()
385-
sevs = dict([finding.severity, finding.severity]
386-
for finding in self.queryset.distinct()
387-
if finding.severity not in sevs)
388-
self.form.fields['severity'].choices = sevs.items()
384+
self.form.fields['severity'].choices = self.queryset.order_by(
385+
'numerical_severity'
386+
).values_list('severity', 'severity').distinct()
389387
if self.user is not None and not self.user.is_staff:
390388
if self.form.fields.get('test__engagement__product'):
391389
qs = Product.objects.filter(authorized_users__in=[self.user])
@@ -462,11 +460,9 @@ def __init__(self, *args, **kwargs):
462460
if finding.cwe > 0 and finding.cwe not in cwe)
463461
cwe = collections.OrderedDict(sorted(cwe.items()))
464462
self.form.fields['cwe'].choices = cwe.items()
465-
sevs = dict()
466-
sevs = dict([finding.severity, finding.severity]
467-
for finding in self.queryset.distinct()
468-
if finding.severity not in sevs)
469-
self.form.fields['severity'].choices = sevs.items()
463+
self.form.fields['severity'].choices = self.queryset.order_by(
464+
'numerical_severity'
465+
).values_list('severity', 'severity').distinct()
470466

471467

472468
class ClosedFingingSuperFilter(ClosedFindingFilter):
@@ -533,11 +529,9 @@ def __init__(self, *args, **kwargs):
533529
if finding.cwe > 0 and finding.cwe not in cwe)
534530
cwe = collections.OrderedDict(sorted(cwe.items()))
535531
self.form.fields['cwe'].choices = cwe.items()
536-
sevs = dict()
537-
sevs = dict([finding.severity, finding.severity]
538-
for finding in self.queryset.distinct()
539-
if finding.severity not in sevs)
540-
self.form.fields['severity'].choices = sevs.items()
532+
self.form.fields['severity'].choices = self.queryset.order_by(
533+
'numerical_severity'
534+
).values_list('severity', 'severity').distinct()
541535

542536

543537
class AcceptedFingingSuperFilter(AcceptedFindingFilter):
@@ -597,11 +591,9 @@ def __init__(self, *args, **kwargs):
597591
if finding.cwe > 0 and finding.cwe not in cwe)
598592
cwe = collections.OrderedDict(sorted(cwe.items()))
599593
self.form.fields['cwe'].choices = cwe.items()
600-
sevs = dict()
601-
sevs = dict([finding.severity, finding.severity]
602-
for finding in self.queryset.distinct()
603-
if finding.severity not in sevs)
604-
self.form.fields['severity'].choices = sevs.items()
594+
self.form.fields['severity'].choices = self.queryset.order_by(
595+
'numerical_severity'
596+
).values_list('severity', 'severity').distinct()
605597

606598

607599
class TemplateFindingFilter(DojoFilter):
@@ -707,8 +699,8 @@ class MetricsFindingFilter(FilterSet):
707699
def __init__(self, *args, **kwargs):
708700
super(MetricsFindingFilter, self).__init__(*args, **kwargs)
709701
self.form.fields['severity'].choices = self.queryset.order_by(
710-
'numerical_severity') \
711-
.values_list('severity', 'severity').distinct()
702+
'numerical_severity'
703+
).values_list('severity', 'severity').distinct()
712704

713705
class Meta:
714706
model = Finding

0 commit comments

Comments
 (0)