Skip to content

Commit

Permalink
Display the new resolved_to field in UI views #1066
Browse files Browse the repository at this point in the history
Signed-off-by: tdruez <tdruez@nexb.com>
  • Loading branch information
tdruez committed May 17, 2024
1 parent 0cc186b commit da586ff
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 5 deletions.
1 change: 1 addition & 0 deletions scanpipe/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -740,6 +740,7 @@ class DependencyFilterSet(FilterSetUtilsMixin, django_filters.FilterSet):
"is_optional",
"is_resolved",
"for_package",
"resolved_to",
"datafile_resource",
"datasource_id",
],
Expand Down
5 changes: 5 additions & 0 deletions scanpipe/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -3409,6 +3409,11 @@ def for_package_uid(self):
if self.for_package:
return self.for_package.package_uid

@cached_property
def resolved_to_uid(self):
if self.resolved_to:
return self.resolved_to.package_uid

@cached_property
def datafile_path(self):
if self.datafile_resource:
Expand Down
12 changes: 9 additions & 3 deletions scanpipe/templates/scanpipe/dependency_list.html
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,12 @@
<td>
<a href="?type={{ dependency.type }}" class="is-black-link">{{ dependency.type }}</a>
</td>
<td>
{{ dependency.extracted_requirement }}
</td>
<td class="break-normal">
<a href="?scope={{ dependency.scope }}" class="is-black-link">{{ dependency.scope }}</a>
</td>
<td>
{{ dependency.extracted_requirement }}
</td>
<td>
<a href="?is_runtime={{ dependency.is_runtime }}" class="is-black-link">{{ dependency.is_runtime }}</a>
</td>
Expand All @@ -54,6 +54,12 @@
<a href="{% url 'package_detail' project.slug dependency.for_package.uuid %}" title="{{ dependency.for_package.purl }}">{{ dependency.for_package.purl }}</a>
{% endif %}
</td>
<td>
{% if dependency.resolved_to %}
{# CAUTION: Avoid relying on get_absolute_url to prevent unnecessary query triggers #}
<a href="{% url 'package_detail' project.slug dependency.for_package.uuid %}" title="{{ dependency.resolved_to.purl }}">{{ dependency.resolved_to.purl }}</a>
{% endif %}
</td>
<td>
{% if dependency.datafile_resource %}
{# CAUTION: Avoid relying on get_absolute_url to prevent unnecessary query triggers #}
Expand Down
19 changes: 17 additions & 2 deletions scanpipe/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -1505,6 +1505,9 @@ class DiscoveredDependencyListView(
Prefetch(
"for_package", queryset=DiscoveredPackage.objects.only("uuid", *PURL_FIELDS)
),
Prefetch(
"resolved_to", queryset=DiscoveredPackage.objects.only("uuid", *PURL_FIELDS)
),
Prefetch(
"datafile_resource", queryset=CodebaseResource.objects.only("path", "name")
),
Expand All @@ -1519,11 +1522,11 @@ class DiscoveredDependencyListView(
"label": "Package type",
"filter_fieldname": "type",
},
"extracted_requirement",
{
"field_name": "scope",
"filter_fieldname": "scope",
},
"extracted_requirement",
{
"field_name": "is_runtime",
"filter_fieldname": "is_runtime",
Expand All @@ -1537,6 +1540,7 @@ class DiscoveredDependencyListView(
"filter_fieldname": "is_resolved",
},
"for_package",
"resolved_to",
"datafile_resource",
{
"field_name": "datasource_id",
Expand Down Expand Up @@ -1998,6 +2002,12 @@ class DiscoveredDependencyDetailsView(
"uuid", *PURL_FIELDS, "package_uid", "project_id"
),
),
Prefetch(
"resolved_to",
queryset=DiscoveredPackage.objects.only(
"uuid", *PURL_FIELDS, "package_uid", "project_id"
),
),
Prefetch(
"datafile_resource",
queryset=CodebaseResource.objects.only("path", "name", "project_id"),
Expand All @@ -2009,7 +2019,11 @@ class DiscoveredDependencyDetailsView(
"package_url",
{
"field_name": "for_package",
"template": "scanpipe/tabset/field_for_package.html",
"template": "scanpipe/tabset/field_related_package.html",
},
{
"field_name": "resolved_to",
"template": "scanpipe/tabset/field_related_package.html",
},
{
"field_name": "datafile_resource",
Expand All @@ -2026,6 +2040,7 @@ class DiscoveredDependencyDetailsView(
"fields": [
"dependency_uid",
"for_package_uid",
"resolved_to_uid",
"is_runtime",
"is_optional",
"is_resolved",
Expand Down

0 comments on commit da586ff

Please sign in to comment.