Skip to content

Commit a88bdee

Browse files
fix: Enable AND logic for Tag filtering in Findings (#13789)
1 parent 83c54b1 commit a88bdee

File tree

1 file changed

+50
-5
lines changed

1 file changed

+50
-5
lines changed

dojo/filters.py

Lines changed: 50 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -532,23 +532,68 @@ class FindingTagFilter(DojoFilter):
532532
field_name="tags__name",
533533
to_field_name="name",
534534
queryset=Finding.tags.tag_model.objects.all().order_by("name"),
535-
help_text="Filter Findings by the selected tags")
535+
help_text="Filter Findings by the selected tags (OR logic)",
536+
)
537+
538+
tags_and = ModelMultipleChoiceFilter(
539+
field_name="tags__name",
540+
to_field_name="name",
541+
queryset=Finding.tags.tag_model.objects.all().order_by("name"),
542+
help_text="Filter Findings by the selected tags (AND logic)",
543+
label="Tags (AND)",
544+
conjoined=True,
545+
)
546+
536547
test__tags = ModelMultipleChoiceFilter(
537548
field_name="test__tags__name",
538549
to_field_name="name",
539550
queryset=Test.tags.tag_model.objects.all().order_by("name"),
540-
help_text="Filter Tests by the selected tags")
551+
help_text="Filter Findings by the selected Test tags (OR logic)",
552+
label="Test Tags",
553+
)
554+
555+
test__tags_and = ModelMultipleChoiceFilter(
556+
field_name="test__tags__name",
557+
to_field_name="name",
558+
queryset=Test.tags.tag_model.objects.all().order_by("name"),
559+
help_text="Filter Findings by the selected Test tags (AND logic)",
560+
label="Test Tags (AND)",
561+
conjoined=True,
562+
)
563+
541564
test__engagement__tags = ModelMultipleChoiceFilter(
542565
field_name="test__engagement__tags__name",
543566
to_field_name="name",
544567
queryset=Engagement.tags.tag_model.objects.all().order_by("name"),
545-
help_text="Filter Engagements by the selected tags")
568+
help_text="Filter Findings by the selected Engagement tags (OR logic)",
569+
label="Engagement Tags",
570+
)
571+
572+
test__engagement__tags_and = ModelMultipleChoiceFilter(
573+
field_name="test__engagement__tags__name",
574+
to_field_name="name",
575+
queryset=Engagement.tags.tag_model.objects.all().order_by("name"),
576+
help_text="Filter Findings by the selected Engagement tags (AND logic)",
577+
label="Engagement Tags (AND)",
578+
conjoined=True,
579+
)
580+
546581
test__engagement__product__tags = ModelMultipleChoiceFilter(
547582
field_name="test__engagement__product__tags__name",
548583
to_field_name="name",
549584
queryset=Product.tags.tag_model.objects.all().order_by("name"),
550-
label=labels.ASSET_FILTERS_TAGS_FILTER_LABEL,
551-
help_text=labels.ASSET_FILTERS_TAGS_FILTER_HELP)
585+
help_text="Filter Findings by the selected Product tags (OR logic)",
586+
label="Product Tags",
587+
)
588+
589+
test__engagement__product__tags_and = ModelMultipleChoiceFilter(
590+
field_name="test__engagement__product__tags__name",
591+
to_field_name="name",
592+
queryset=Product.tags.tag_model.objects.all().order_by("name"),
593+
help_text="Filter Findings by the selected Product tags (AND logic)",
594+
label="Product Tags (AND)",
595+
conjoined=True,
596+
)
552597

553598
not_tags = ModelMultipleChoiceFilter(
554599
field_name="tags__name",

0 commit comments

Comments
 (0)