@@ -1665,6 +1665,8 @@ def delete_scan_view(request, project_uuid):
16651665 raise Http404 ("Scan could not be deleted." )
16661666
16671667 messages .success (request , "Scan deleted." )
1668+ if referer := request .META .get ("HTTP_REFERER" ):
1669+ return redirect (referer )
16681670 return redirect ("component_catalog:scan_list" )
16691671
16701672
@@ -2354,19 +2356,20 @@ def scan_summary_fields(self, scan_summary):
23542356 return scan_summary_fields
23552357
23562358 def scan_status_fields (self , scan ):
2359+ package = self .object
23572360 scan_status_fields = []
23582361 scan_run = scan .get ("runs" , [{}])[- 1 ]
23592362 status = scan_run .get ("status" )
23602363 issue_statuses = ["failure" , "stale" , "stopped" ]
23612364 completed_statuses = ["success" , * issue_statuses ]
23622365
23632366 scan_issue_request_template = settings .SCAN_ISSUE_REQUEST_TEMPLATE
2364- dataspace_name = self . object .dataspace .name
2367+ dataspace_name = package .dataspace .name
23652368 request_template_uuid = scan_issue_request_template .get (dataspace_name )
23662369 if request_template_uuid and status in completed_statuses :
23672370 request_form_url = reverse ("workflow:request_add" , args = [request_template_uuid ])
23682371 field_context = {
2369- "href" : f"{ request_form_url } ?content_object_id={ self . object .id } " ,
2372+ "href" : f"{ request_form_url } ?content_object_id={ package .id } " ,
23702373 "target" : "_blank" ,
23712374 "btn_class" : "btn-outline-request" ,
23722375 "icon_class" : "fas fa-bug" ,
@@ -2395,20 +2398,29 @@ def scan_status_fields(self, scan):
23952398 ("Task output" , task_output , None , "includes/field_log.html" )
23962399 )
23972400
2401+ # Scan actions: download, delete, rescan
2402+ download_result_url = None
23982403 if status == "success" :
2399- filename = self .object .filename or self .object .package_url_filename
2400- field_context = {
2401- "href" : reverse (
2402- "component_catalog:scan_data_as_file" ,
2403- args = [scan .get ("uuid" ), quote_plus (filename )],
2404- ),
2405- "target" : "_blank" ,
2406- "icon_class" : "fas fa-download" ,
2407- }
2408- scan_status_fields .append (
2409- ("Download Scan results" , field_context , None , "includes/field_button.html" )
2404+ filename = package .filename or package .package_url_filename
2405+ download_result_url = reverse (
2406+ "component_catalog:scan_data_as_file" ,
2407+ args = [scan .get ("uuid" ), quote_plus (filename )],
24102408 )
24112409
2410+ delete_url = None
2411+ if status in completed_statuses :
2412+ delete_url = reverse ("component_catalog:scan_delete" , args = [scan .get ("uuid" )])
2413+
2414+ field_context = {
2415+ "scan" : {
2416+ "download_result_url" : download_result_url ,
2417+ "delete_url" : delete_url ,
2418+ }
2419+ }
2420+ scan_status_fields .append (
2421+ (None , field_context , None , "component_catalog/tabs/field_scan_actions.html" )
2422+ )
2423+
24122424 return scan_status_fields
24132425
24142426 def tab_scan (self ):
0 commit comments