File tree Expand file tree Collapse file tree 4 files changed +26
-7
lines changed
templates/scanpipe/tabset Expand file tree Collapse file tree 4 files changed +26
-7
lines changed Original file line number Diff line number Diff line change @@ -11,6 +11,9 @@ v34.7.1 (unreleased)
11
11
This is an advanced feature and should we used with caution.
12
12
https://github.com/nexB/scancode.io/issues/1303
13
13
14
+ - Display the resolved_to_package as link in the dependencies tab.
15
+ https://github.com/nexB/scancode.io/pull/1314
16
+
14
17
v34.7.0 (2024-07-02)
15
18
--------------------
16
19
Original file line number Diff line number Diff line change @@ -2908,6 +2908,13 @@ def with_resources_count(self):
2908
2908
)
2909
2909
return self .annotate (resources_count = count_subquery )
2910
2910
2911
+ def only_purl_fields (self ):
2912
+ """
2913
+ Only select and return the UUID and PURL fields.
2914
+ Minimum requirements to render a Package link in the UI.
2915
+ """
2916
+ return self .only ("uuid" , * PURL_FIELDS )
2917
+
2911
2918
2912
2919
class AbstractPackage (models .Model ):
2913
2920
"""These fields should be kept in line with `packagedcode.models.PackageData`."""
Original file line number Diff line number Diff line change 3
3
< thead >
4
4
< tr >
5
5
< th > Package URL</ th >
6
+ < th > Resolved to package</ th >
6
7
< th > Type</ th >
7
8
< th > Scope</ th >
8
9
< th > Datasource ID</ th >
12
13
{% for dependency in tab_data.fields.declared_dependencies.value %}
13
14
< tr >
14
15
< td title ="{{ dependency.dependency_uid }} ">
15
- < a href ="{{ dependency.get_absolute_url }} "> {{ dependency.purl }}</ a >
16
+ {# CAUTION: Avoid relying on get_absolute_url to prevent unnecessary query triggers #}
17
+ < a href ="{% url 'dependency_detail' project.slug dependency.dependency_uid %} "> {{ dependency.purl }}</ a >
18
+ </ td >
19
+ < td >
20
+ {% if dependency.resolved_to_package %}
21
+ {# CAUTION: Avoid relying on get_absolute_url to prevent unnecessary query triggers #}
22
+ < a href ="{% url 'package_detail' project.slug dependency.resolved_to_package.uuid %} "> {{ dependency.resolved_to_package.purl }}</ a >
23
+ {% endif %}
16
24
</ td >
17
25
< td > {{ dependency.type }}</ td >
18
26
< td class ="break-normal "> {{ dependency.scope }}</ td >
Original file line number Diff line number Diff line change @@ -1370,7 +1370,7 @@ class CodebaseResourceListView(
1370
1370
prefetch_related = [
1371
1371
Prefetch (
1372
1372
"discovered_packages" ,
1373
- queryset = DiscoveredPackage .objects .only ( "uuid" , * PURL_FIELDS ),
1373
+ queryset = DiscoveredPackage .objects .only_purl_fields ( ),
1374
1374
)
1375
1375
]
1376
1376
table_columns = [
@@ -1509,12 +1509,10 @@ class DiscoveredDependencyListView(
1509
1509
template_name = "scanpipe/dependency_list.html"
1510
1510
paginate_by = settings .SCANCODEIO_PAGINATE_BY .get ("dependency" , 100 )
1511
1511
prefetch_related = [
1512
- Prefetch (
1513
- "for_package" , queryset = DiscoveredPackage .objects .only ("uuid" , * PURL_FIELDS )
1514
- ),
1512
+ Prefetch ("for_package" , queryset = DiscoveredPackage .objects .only_purl_fields ()),
1515
1513
Prefetch (
1516
1514
"resolved_to_package" ,
1517
- queryset = DiscoveredPackage .objects .only ( "uuid" , * PURL_FIELDS ),
1515
+ queryset = DiscoveredPackage .objects .only_purl_fields ( ),
1518
1516
),
1519
1517
Prefetch (
1520
1518
"datafile_resource" , queryset = CodebaseResource .objects .only ("path" , "name" )
@@ -1853,7 +1851,10 @@ class DiscoveredPackageDetailsView(
1853
1851
"project_id" ,
1854
1852
),
1855
1853
),
1856
- "declared_dependencies__project" ,
1854
+ Prefetch (
1855
+ "declared_dependencies__resolved_to_package" ,
1856
+ queryset = DiscoveredPackage .objects .only_purl_fields (),
1857
+ ),
1857
1858
]
1858
1859
tabset = {
1859
1860
"essentials" : {
You can’t perform that action at this time.
0 commit comments