File tree 6 files changed +60
-4
lines changed
6 files changed +60
-4
lines changed Original file line number Diff line number Diff line change @@ -1756,6 +1756,9 @@ class Meta:
1756
1756
def __str__ (self ):
1757
1757
return self .package_url or str (self .uuid )
1758
1758
1759
+ def get_absolute_url (self ):
1760
+ return reverse ("package_detail" , args = [self .project_id , self .pk ])
1761
+
1759
1762
@property
1760
1763
def purl (self ):
1761
1764
"""
Original file line number Diff line number Diff line change
1
+ {% extends "scanpipe/base.html" %}
2
+ {% load static humanize %}
3
+
4
+ {% block title %}ScanCode.io: {{ project.name }} - {{ object.name }}{% endblock %}
5
+
6
+ {% block content %}
7
+ < div class ="container is-max-desktop ">
8
+ {% include 'scanpipe/includes/navbar_header.html' %}
9
+ < div class ="mx-5 mb-2 "> {% include 'scanpipe/includes/messages.html' %}</ div >
10
+
11
+ < section class ="mx-5 mb-3 ">
12
+ < nav class ="breadcrumb is-medium mb-1 " aria-label ="breadcrumbs ">
13
+ < ul >
14
+ < li > < a href ="{% url 'project_list' %} "> Projects</ a > </ li >
15
+ < li > < a href ="{{ project.get_absolute_url }} "> {{ project.name }}</ a > </ li >
16
+ < li > < a href ="{% url 'project_packages' project.uuid %} "> Discovered Packages</ a > </ li >
17
+ </ ul >
18
+ </ nav >
19
+ </ section >
20
+
21
+ < section class ="mx-5 ">
22
+ < dl >
23
+ {% for field, value in package_data.items %}
24
+ < dt class ="has-text-weight-semibold ">
25
+ {{ field }}
26
+ </ dt >
27
+ < dd class ="mb-4 ">
28
+ < pre > {{ value|default_if_none:'' }}</ pre >
29
+ </ dd >
30
+ {% endfor %}
31
+ </ dl >
32
+ </ section >
33
+
34
+ </ div >
35
+ {% endblock %}
Original file line number Diff line number Diff line change 28
28
{% for package in object_list %}
29
29
< tr class ="break-word ">
30
30
< td style ="min-width: 500px; " title ="{{ package.package_uid }} ">
31
- {{ package.package_url }}
31
+ < a href =" {{ package.get_absolute_url }} " > {{ package. package_url }}</ a >
32
32
</ td >
33
33
< td style ="min-width: 300px; max-width: 400px; ">
34
34
{{ package.license_expression|linebreaksbr }}
Original file line number Diff line number Diff line change 11
11
< section class ="mx-5 mb-3 ">
12
12
< nav class ="breadcrumb is-medium mb-1 " aria-label ="breadcrumbs ">
13
13
< ul >
14
- < li > < a href ="{% url 'project_list' %} "> Projects</ a > </ li >
15
- < li > < a href ="{{ project.get_absolute_url }} "> {{ project.name }}</ a > </ li >
16
- < li > < a href ="{% url 'project_resources' project.uuid %} "> Codebase Resources</ a > </ li >
14
+ < li > < a href ="{% url 'project_list' %} "> Projects</ a > </ li >
15
+ < li > < a href ="{{ project.get_absolute_url }} "> {{ project.name }}</ a > </ li >
16
+ < li > < a href ="{% url 'project_resources' project.uuid %} "> Codebase Resources</ a > </ li >
17
17
</ ul >
18
18
</ nav >
19
19
</ section >
Original file line number Diff line number Diff line change 36
36
views .CodebaseResourceDetailsView .as_view (),
37
37
name = "resource_detail" ,
38
38
),
39
+ path (
40
+ "project/<uuid:uuid>/packages/<int:pk>/" ,
41
+ views .DiscoveredPackageDetailsView .as_view (),
42
+ name = "package_detail" ,
43
+ ),
39
44
path (
40
45
"project/<uuid:uuid>/resources/" ,
41
46
views .CodebaseResourceListView .as_view (),
Original file line number Diff line number Diff line change 43
43
44
44
from scancodeio .auth import ConditionalLoginRequired
45
45
from scancodeio .auth import conditional_login_required
46
+ from scanpipe .api .serializers import DiscoveredPackageSerializer
46
47
from scanpipe .filters import ErrorFilterSet
47
48
from scanpipe .filters import PackageFilterSet
48
49
from scanpipe .filters import ProjectFilterSet
@@ -664,6 +665,18 @@ def get_context_data(self, **kwargs):
664
665
return context
665
666
666
667
668
+ class DiscoveredPackageDetailsView (
669
+ ConditionalLoginRequired , ProjectRelatedViewMixin , generic .DetailView
670
+ ):
671
+ model = DiscoveredPackage
672
+ template_name = "scanpipe/package_detail.html"
673
+
674
+ def get_context_data (self , ** kwargs ):
675
+ context = super ().get_context_data (** kwargs )
676
+ context ["package_data" ] = DiscoveredPackageSerializer (self .object ).data
677
+ return context
678
+
679
+
667
680
@conditional_login_required
668
681
def run_detail_view (request , uuid ):
669
682
template = "scanpipe/includes/run_modal_content.html"
You can’t perform that action at this time.
0 commit comments