Skip to content

Commit 7d6f14a

Browse files
🎉 Add a 'fix_available' field to the findings #12633 (#12793)
1 parent 1d43c44 commit 7d6f14a

File tree

3 files changed

+27
-0
lines changed

3 files changed

+27
-0
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Generated by Django 5.1.8 on 2025-07-16 08:18
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('dojo', '0234_finding_cvssv4_finding_cvssv4_score'),
10+
]
11+
12+
operations = [
13+
migrations.AddField(
14+
model_name='finding',
15+
name='fix_available',
16+
field=models.BooleanField(default=True, help_text='Denotes if there is a fix available for this flaw.', verbose_name='Fix Available'),
17+
),
18+
]

dojo/filters.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,7 @@ def get_finding_filterset_fields(*, metrics=False, similar=False, filter_string_
447447
"epss_score_range",
448448
"epss_percentile",
449449
"epss_percentile_range",
450+
"fix_available",
450451
])
451452

452453
if similar:
@@ -1473,6 +1474,7 @@ class ApiFindingFilter(DojoFilter):
14731474
under_review = BooleanFilter(field_name="under_review")
14741475
verified = BooleanFilter(field_name="verified")
14751476
has_jira = BooleanFilter(field_name="jira_issue", lookup_expr="isnull", exclude=True)
1477+
fix_available = BooleanFilter(field_name="fix_available")
14761478
# CharFilter
14771479
component_version = CharFilter(lookup_expr="icontains")
14781480
component_name = CharFilter(lookup_expr="icontains")
@@ -1675,6 +1677,7 @@ class FindingFilterHelper(FilterSet):
16751677
severity = MultipleChoiceFilter(choices=SEVERITY_CHOICES)
16761678
duplicate = ReportBooleanFilter()
16771679
is_mitigated = ReportBooleanFilter()
1680+
fix_available = ReportBooleanFilter()
16781681
mitigated = DateRangeFilter(field_name="mitigated", label="Mitigated Date")
16791682
mitigated_on = DateTimeFilter(field_name="mitigated", lookup_expr="exact", label="Mitigated On", method="filter_mitigated_on")
16801683
mitigated_before = DateTimeFilter(field_name="mitigated", lookup_expr="lt", label="Mitigated Before")
@@ -1759,6 +1762,7 @@ class FindingFilterHelper(FilterSet):
17591762
("numerical_severity", "numerical_severity"),
17601763
("date", "date"),
17611764
("mitigated", "mitigated"),
1765+
("fix_available", "fix_available"),
17621766
("risk_acceptance__created__date",
17631767
"risk_acceptance__created__date"),
17641768
("last_reviewed", "last_reviewed"),
@@ -1774,6 +1778,7 @@ class FindingFilterHelper(FilterSet):
17741778
"date": "Date",
17751779
"risk_acceptance__created__date": "Acceptance Date",
17761780
"mitigated": "Mitigated Date",
1781+
"fix_available": "Fix Available",
17771782
"title": "Finding Name",
17781783
"test__engagement__product__name": "Product Name",
17791784
"epss_score": "EPSS Score",
@@ -3063,6 +3068,7 @@ class ReportFindingFilterHelper(FilterSet):
30633068
fields=(
30643069
("title", "title"),
30653070
("date", "date"),
3071+
("fix_available", "fix_available"),
30663072
("numerical_severity", "numerical_severity"),
30673073
("epss_score", "epss_score"),
30683074
("epss_percentile", "epss_percentile"),

dojo/models.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2391,6 +2391,9 @@ class Finding(models.Model):
23912391
null=True,
23922392
blank=True,
23932393
help_text=_("Text describing how to best fix the flaw."))
2394+
fix_available = models.BooleanField(default=True,
2395+
verbose_name=_("Fix Available"),
2396+
help_text=_("Denotes if there is a fix available for this flaw."))
23942397
impact = models.TextField(verbose_name=_("Impact"),
23952398
null=True,
23962399
blank=True,

0 commit comments

Comments
 (0)