From 7fa7333ef34136fef36265630490b4be695928ec Mon Sep 17 00:00:00 2001 From: Ihsan Ullah Date: Mon, 8 May 2023 14:40:03 +0500 Subject: [PATCH 1/4] dump creation date fixed --- src/apps/competitions/tasks.py | 9 ++++++--- src/static/riot/competitions/detail/_header.tag | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/apps/competitions/tasks.py b/src/apps/competitions/tasks.py index 804109ce3..4f4fe8ce2 100644 --- a/src/apps/competitions/tasks.py +++ b/src/apps/competitions/tasks.py @@ -4,7 +4,8 @@ import re import traceback import zipfile -from datetime import timedelta +from datetime import timedelta, datetime + from io import BytesIO from tempfile import TemporaryDirectory, NamedTemporaryFile @@ -431,7 +432,9 @@ def create_competition_dump(competition_pk, keys_instead_of_files=True): logger.info(f"Finding competition {competition_pk}") comp = Competition.objects.get(pk=competition_pk) zip_buffer = BytesIO() - zip_name = f"{comp.title}-{comp.created_when.isoformat()}.zip" + current_date_time = datetime.now() + current_date = datetime.today().strftime('%Y-%m-%d') + zip_name = f"{comp.title}-{current_date_time.isoformat()}.zip" zip_file = zipfile.ZipFile(zip_buffer, "w") # -------- Main Competition Details ------- @@ -626,7 +629,7 @@ def create_competition_dump(competition_pk, keys_instead_of_files=True): bundle_count = CompetitionDump.objects.count() + 1 temp_dataset_bundle = Data.objects.create( created_by=comp.created_by, - name=f"{comp.title} Dump #{bundle_count} Created {comp.created_when.date()}", + name=f"{comp.title} Dump #{bundle_count} Created {current_date}", type='competition_bundle', description='Automatically created competition dump', # 'data_file'=, diff --git a/src/static/riot/competitions/detail/_header.tag b/src/static/riot/competitions/detail/_header.tag index 55950fa64..69256387d 100644 --- a/src/static/riot/competitions/detail/_header.tag +++ b/src/static/riot/competitions/detail/_header.tag @@ -190,6 +190,7 @@ self.update_files = (e) => { CODALAB.api.get_competition_files(self.competition.id) .done(data => { + console.log(data) self.files = data self.tr_show = false self.update() From 55950bb5ada07ac64e342f5894e764f4fa68eb91 Mon Sep 17 00:00:00 2001 From: Ihsan Ullah Date: Thu, 11 May 2023 13:34:23 +0500 Subject: [PATCH 2/4] by default files will be downloaded instead of just keys used in yaml. This dump when uploaded to codabench creates a new competition successfully --- src/apps/api/views/competitions.py | 6 +++++- src/apps/competitions/tasks.py | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/apps/api/views/competitions.py b/src/apps/api/views/competitions.py index 342e237ce..b07600f07 100644 --- a/src/apps/api/views/competitions.py +++ b/src/apps/api/views/competitions.py @@ -358,7 +358,11 @@ def create_dump(self, request, pk=None): competition = self.get_object() if not competition.user_has_admin_permission(request.user): raise PermissionDenied("You don't have access") - create_competition_dump.delay(pk) + + # arg 1: pk: competition primary key + # arg 2: False: keys_instead_of_files (if false: files will be dowloaded in dumps, if true: only keys) + create_competition_dump.delay(pk, False) + serializer = CompetitionCreationTaskStatusSerializer({"status": "Success. Competition dump is being created."}) return Response(serializer.data, status=201) diff --git a/src/apps/competitions/tasks.py b/src/apps/competitions/tasks.py index 4f4fe8ce2..3fd41d79f 100644 --- a/src/apps/competitions/tasks.py +++ b/src/apps/competitions/tasks.py @@ -424,7 +424,7 @@ def _get_error_string(error_dict): @app.task(queue='site-worker', soft_time_limit=60 * 10) -def create_competition_dump(competition_pk, keys_instead_of_files=True): +def create_competition_dump(competition_pk, keys_instead_of_files=False): yaml_data = {"version": "2"} try: # -------- SetUp ------- From 7c7916d0e128a2999bb9187bf1efd5c81c092dc1 Mon Sep 17 00:00:00 2001 From: Ihsan Ullah Date: Thu, 11 May 2023 16:39:51 +0500 Subject: [PATCH 3/4] date-time converted to readbale format --- src/apps/competitions/tasks.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/apps/competitions/tasks.py b/src/apps/competitions/tasks.py index 3fd41d79f..96a1a1d16 100644 --- a/src/apps/competitions/tasks.py +++ b/src/apps/competitions/tasks.py @@ -432,9 +432,8 @@ def create_competition_dump(competition_pk, keys_instead_of_files=False): logger.info(f"Finding competition {competition_pk}") comp = Competition.objects.get(pk=competition_pk) zip_buffer = BytesIO() - current_date_time = datetime.now() - current_date = datetime.today().strftime('%Y-%m-%d') - zip_name = f"{comp.title}-{current_date_time.isoformat()}.zip" + current_date_time = datetime.today().strftime('%Y-%m-%d %H:%M:%S') + zip_name = f"{comp.title}-{current_date_time}.zip" zip_file = zipfile.ZipFile(zip_buffer, "w") # -------- Main Competition Details ------- @@ -629,7 +628,7 @@ def create_competition_dump(competition_pk, keys_instead_of_files=False): bundle_count = CompetitionDump.objects.count() + 1 temp_dataset_bundle = Data.objects.create( created_by=comp.created_by, - name=f"{comp.title} Dump #{bundle_count} Created {current_date}", + name=f"{comp.title} Dump #{bundle_count} Created {current_date_time}", type='competition_bundle', description='Automatically created competition dump', # 'data_file'=, From a649e9800c9e90d415bb7d6a6d5f44fc53089de6 Mon Sep 17 00:00:00 2001 From: Ihsan Ullah Date: Thu, 11 May 2023 19:47:14 +0500 Subject: [PATCH 4/4] console log removed --- src/static/riot/competitions/detail/_header.tag | 1 - 1 file changed, 1 deletion(-) diff --git a/src/static/riot/competitions/detail/_header.tag b/src/static/riot/competitions/detail/_header.tag index 69256387d..55950fa64 100644 --- a/src/static/riot/competitions/detail/_header.tag +++ b/src/static/riot/competitions/detail/_header.tag @@ -190,7 +190,6 @@ self.update_files = (e) => { CODALAB.api.get_competition_files(self.competition.id) .done(data => { - console.log(data) self.files = data self.tr_show = false self.update()