Skip to content

Commit ffd6baa

Browse files
committed
add distinct on compliance filters
Signed-off-by: tdruez <tdruez@aboutcode.org>
1 parent ee5af4f commit ffd6baa

2 files changed

Lines changed: 12 additions & 5 deletions

File tree

product_portfolio/filters.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,8 +143,12 @@ def filter(self, qs, value):
143143
return qs
144144
lookup = {f"{self.field_name}__in": ["warning", "error"]}
145145
if value:
146-
return qs.filter(**lookup)
147-
return qs.exclude(**lookup)
146+
qs = qs.filter(**lookup)
147+
else:
148+
qs = qs.exclude(**lookup)
149+
150+
return qs.distinct() if self.distinct else qs
151+
148152

149153

150154
class BaseProductRelationFilterSet(DataspacedFilterSet):
@@ -203,6 +207,7 @@ class BaseProductRelationFilterSet(DataspacedFilterSet):
203207
license_compliance_issues = HasComplianceIssueFilter(
204208
label="License compliance issues",
205209
field_name="licenses__usage_policy__compliance_alert",
210+
distinct=True,
206211
)
207212

208213
@staticmethod
@@ -272,6 +277,7 @@ class ProductComponentFilterSet(BaseProductRelationFilterSet):
272277
)
273278
compliance_issues = HasComplianceIssueFilter(
274279
field_name="component__usage_policy__compliance_alert",
280+
distinct=True,
275281
)
276282

277283
class Meta:
@@ -345,6 +351,7 @@ class ProductPackageFilterSet(BaseProductRelationFilterSet):
345351
)
346352
compliance_issues = HasComplianceIssueFilter(
347353
field_name="package__usage_policy__compliance_alert",
354+
distinct=True,
348355
)
349356

350357
class Meta:

product_portfolio/views.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2742,12 +2742,12 @@ def get_package_compliance_context(productpackages, packages):
27422742

27432743
return {
27442744
"total_packages": total_packages,
2745-
"license_coverage_pct": license_coverage_pct,
2746-
"package_without_license_count": package_without_license_count,
2747-
"packages_with_license_count": packages_with_license_count,
27482745
"package_issues_count": package_issues_count,
27492746
"packages_with_license_issues": packages_with_license_issues,
27502747
"license_compliance_pct": license_compliance_pct,
2748+
"license_coverage_pct": license_coverage_pct,
2749+
"package_without_license_count": package_without_license_count,
2750+
"packages_with_license_count": packages_with_license_count,
27512751
}
27522752

27532753
@staticmethod

0 commit comments

Comments
 (0)