From b042832df685312cd02bd73563d8b69fc2d43ab3 Mon Sep 17 00:00:00 2001 From: OhMaley Date: Tue, 11 Jun 2024 17:29:49 -0400 Subject: [PATCH 1/4] Add a Bundles tab in Resources view --- src/apps/api/views/datasets.py | 16 +- .../riot/competitions/bundle_management.tag | 149 ++++++++++++++++++ src/static/riot/management.tag | 4 + 3 files changed, 167 insertions(+), 2 deletions(-) create mode 100644 src/static/riot/competitions/bundle_management.tag diff --git a/src/apps/api/views/datasets.py b/src/apps/api/views/datasets.py index 2175b9dc0..a3cb316a8 100644 --- a/src/apps/api/views/datasets.py +++ b/src/apps/api/views/datasets.py @@ -26,6 +26,8 @@ class DataViewSet(ModelViewSet): def get_queryset(self): + exclude_bundle = True + if self.request.method == 'GET': # filters @@ -40,6 +42,9 @@ def get_queryset(self): # _type = dataset if called from datasets and programs tab to filter datasets and programs is_dataset = self.request.query_params.get('_type', '') == 'dataset' + # _type = dataset if called from datasets and programs tab to filter datasets and programs + is_bundle = self.request.query_params.get('_type', '') == 'bundle' + # get queryset qs = self.queryset @@ -50,6 +55,11 @@ def get_queryset(self): # filter datasets and programs if is_dataset: qs = qs.filter(~Q(type=Data.SUBMISSION)) + + # filter bundles + if is_bundle: + qs = qs.filter(Q(type=Data.COMPETITION_BUNDLE)) + exclude_bundle = False # public filter check if is_public: @@ -58,7 +68,7 @@ def get_queryset(self): qs = qs.filter(Q(created_by=self.request.user)) # if GET is called but provided no filters, fall back to default behaviour - if (not is_submission) and (not is_dataset) and (not is_public): + if (not is_submission) and (not is_dataset) and (not is_bundle) and (not is_public): qs = self.queryset qs = qs.filter(Q(is_public=True) | Q(created_by=self.request.user)) @@ -66,7 +76,9 @@ def get_queryset(self): qs = self.queryset qs = qs.filter(Q(is_public=True) | Q(created_by=self.request.user)) - qs = qs.exclude(Q(type=Data.COMPETITION_BUNDLE) | Q(name__isnull=True)) + if exclude_bundle: + qs = qs.exclude(Q(type=Data.COMPETITION_BUNDLE)) + qs = qs.exclude(Q(name__isnull=True)) qs = qs.select_related('created_by').order_by('-created_when') diff --git a/src/static/riot/competitions/bundle_management.tag b/src/static/riot/competitions/bundle_management.tag new file mode 100644 index 000000000..2d35be19e --- /dev/null +++ b/src/static/riot/competitions/bundle_management.tag @@ -0,0 +1,149 @@ + + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
File NameSizeUploaded
{ dataset.name }{ format_file_size(dataset.file_size) }{ timeSince(Date.parse(dataset.created_when)) } ago
+ No Datasets Yet! +
+ +
+ + + +
\ No newline at end of file diff --git a/src/static/riot/management.tag b/src/static/riot/management.tag index 904093abf..7e0d3a549 100644 --- a/src/static/riot/management.tag +++ b/src/static/riot/management.tag @@ -4,6 +4,7 @@