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 804109ce3..96a1a1d16 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 @@ -423,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 ------- @@ -431,7 +432,8 @@ 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.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 ------- @@ -626,7 +628,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_time}", type='competition_bundle', description='Automatically created competition dump', # 'data_file'=,