119119from product_portfolio .filters import ProductComponentFilterSet
120120from product_portfolio .filters import ProductFilterSet
121121from product_portfolio .filters import ProductPackageFilterSet
122+ from product_portfolio .filters import TriageRecordFilterSet
122123from product_portfolio .forms import AttributionConfigurationForm
123124from product_portfolio .forms import BaseProductRelationshipInlineFormSet
124125from product_portfolio .forms import ComparisonExcludeFieldsForm
@@ -1369,12 +1370,25 @@ class ProductTabTriageView(
13691370 LoginRequiredMixin ,
13701371 BaseProductViewMixin ,
13711372 PaginationMixin ,
1373+ TableHeaderMixin ,
13721374 TabContentView ,
13731375):
13741376 template_name = "product_portfolio/tabs/tab_triage.html"
13751377 paginate_by = 50
13761378 query_dict_page_param = "triage-page"
13771379 tab_id = "triage"
1380+ table_model = TriageRecord
1381+ filterset_class = TriageRecordFilterSet
1382+ table_headers = (
1383+ Header ("package" , _ ("Package" ), help_text = _ ("Package with a pending triage action" )),
1384+ Header ("action" , _ ("Recommended action" ), filter = "action" ),
1385+ Header (
1386+ "vulnerability_exposure" ,
1387+ _ ("Vulnerability exposure" ),
1388+ help_text = _ ("Known vulnerabilities affecting this package" ),
1389+ ),
1390+ Header ("detected_date" , _ ("Detected" )),
1391+ )
13781392
13791393 def get_context_data (self , ** kwargs ):
13801394 product = self .object
@@ -1424,7 +1438,17 @@ def get_context_data(self, **kwargs):
14241438 )
14251439 total_count = triage_qs .count ()
14261440
1427- paginator = Paginator (triage_qs , self .paginate_by )
1441+ self .filterset = self .filterset_class (
1442+ self .request .GET ,
1443+ queryset = triage_qs ,
1444+ dataspace = product .dataspace ,
1445+ prefix = self .tab_id ,
1446+ anchor = f"#{ self .tab_id } " ,
1447+ )
1448+
1449+ context_data = super ().get_context_data (** kwargs )
1450+
1451+ paginator = Paginator (self .filterset .qs , self .paginate_by )
14281452 page_number = self .request .GET .get (self .query_dict_page_param )
14291453 page_obj = paginator .get_page (page_number )
14301454
@@ -1434,11 +1458,12 @@ def get_context_data(self, **kwargs):
14341458 record .action_badge_class = badge_class
14351459 record .action_icon = icon
14361460
1437- context_data = super ().get_context_data (** kwargs )
14381461 context_data .update (
14391462 {
1463+ "filterset" : self .filterset ,
14401464 "page_obj" : page_obj ,
14411465 "total_count" : total_count ,
1466+ "search_query" : self .request .GET .get (f"{ self .tab_id } -q" , "" ),
14421467 }
14431468 )
14441469
0 commit comments