From 0e6f0a993b9e29c1fe6482c2f523e8312591ee9e Mon Sep 17 00:00:00 2001 From: Ihsan Ullah Date: Thu, 1 Jun 2023 12:52:09 +0500 Subject: [PATCH 1/5] add option to show/hide public submissions/datasets --- src/apps/api/views/datasets.py | 29 ++++++++++++++++--- src/static/riot/datasets/management.tag | 14 +++++---- .../riot/submissions/resource_submissions.tag | 7 +++-- 3 files changed, 38 insertions(+), 12 deletions(-) diff --git a/src/apps/api/views/datasets.py b/src/apps/api/views/datasets.py index 3e2be9eee..a5202ded6 100644 --- a/src/apps/api/views/datasets.py +++ b/src/apps/api/views/datasets.py @@ -20,19 +20,40 @@ class DataViewSet(ModelViewSet): queryset = Data.objects.all() filter_backends = (DjangoFilterBackend, SearchFilter) - filter_fields = ('type', 'name', 'key', 'was_created_by_competition') + filter_fields = ('type', 'name', 'key', 'was_created_by_competition', 'is_public') search_fields = ('name', 'description', 'key',) pagination_class = BasicPagination def get_queryset(self): - filters = Q(is_public=True) | Q(created_by=self.request.user) - qs = Data.objects.filter(filters) + qs = self.queryset + + if self.request.method == 'GET': + + is_public = self.request.query_params.get('is_public', 'false') == 'true' + is_submission = self.request.query_params.get('type', '') == 'submission' + + if is_submission: + # filter submissions + qs = qs.filter(Q(type=Data.SUBMISSION)) + else: + # filter datasets and programs + qs = qs.filter(~Q(type=Data.SUBMISSION)) + + # public filter check + if is_public: + qs = qs.filter(Q(created_by=self.request.user) | Q(is_public=True)) + else: + qs = qs.filter(Q(created_by=self.request.user)) + + else: + 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)) qs = qs.select_related('created_by').order_by('-created_when') - + print(f"\n\n{len(qs)}\n\n") + print(qs) return qs def get_serializer_class(self): diff --git a/src/static/riot/datasets/management.tag b/src/static/riot/datasets/management.tag index ad33b4901..13e233afa 100644 --- a/src/static/riot/datasets/management.tag +++ b/src/static/riot/datasets/management.tag @@ -14,13 +14,17 @@ +
+ + +
@@ -276,14 +280,12 @@ self.update_datasets = function (filters) { filters = filters || {} - let show_datasets_created_by_comp = $(self.refs.auto_created).prop('checked') - if (!show_datasets_created_by_comp) { - filters.was_created_by_competition = false - } + filters.was_created_by_competition = $(self.refs.auto_created).prop('checked') + filters.is_public = $(self.refs.show_public).prop('checked') CODALAB.api.get_datasets(filters) .done(function (data) { self.datasets = data.results - self.datasets = self.filter_out_submissions(self.datasets) + //self.datasets = self.filter_out_submissions(self.datasets) self.pagination = { "count": data.count, "next": data.next, diff --git a/src/static/riot/submissions/resource_submissions.tag b/src/static/riot/submissions/resource_submissions.tag index 209567575..755c44a48 100644 --- a/src/static/riot/submissions/resource_submissions.tag +++ b/src/static/riot/submissions/resource_submissions.tag @@ -5,6 +5,10 @@ +
+ + +
-
+
diff --git a/src/static/riot/submissions/resource_submissions.tag b/src/static/riot/submissions/resource_submissions.tag index 81c7e7beb..719676109 100644 --- a/src/static/riot/submissions/resource_submissions.tag +++ b/src/static/riot/submissions/resource_submissions.tag @@ -47,12 +47,12 @@ - -
+