From 9c8d16eed18fb2119f5634397accc96138f415c7 Mon Sep 17 00:00:00 2001 From: Ihsan Ullah Date: Thu, 24 Aug 2023 13:05:26 +0500 Subject: [PATCH] queue added in submission --- src/apps/api/serializers/submissions.py | 3 +++ .../migrations/0036_submission_queue.py | 20 +++++++++++++++++++ src/apps/competitions/models.py | 2 ++ src/apps/pages/views.py | 4 ++-- .../competitions/detail/submission_upload.tag | 1 + 5 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 src/apps/competitions/migrations/0036_submission_queue.py diff --git a/src/apps/api/serializers/submissions.py b/src/apps/api/serializers/submissions.py index 8207de686..35800f300 100644 --- a/src/apps/api/serializers/submissions.py +++ b/src/apps/api/serializers/submissions.py @@ -16,6 +16,7 @@ from utils.data import make_url_sassy from tasks.models import Task +from queues.models import Queue class SubmissionScoreSerializer(serializers.ModelSerializer): @@ -113,6 +114,7 @@ class SubmissionCreationSerializer(DefaultUserCreateMixin, serializers.ModelSeri filename = serializers.SerializerMethodField(read_only=True) tasks = serializers.PrimaryKeyRelatedField(queryset=Task.objects.all(), required=False, write_only=True, many=True) phase = serializers.PrimaryKeyRelatedField(queryset=Phase.objects.all(), required=True) + queue = serializers.PrimaryKeyRelatedField(queryset=Queue.objects.all(), required=False, allow_null=True) class Meta: model = Submission @@ -130,6 +132,7 @@ class Meta: 'tasks', 'fact_sheet_answers', 'organization', + 'queue' ) extra_kwargs = { 'secret': {"write_only": True}, diff --git a/src/apps/competitions/migrations/0036_submission_queue.py b/src/apps/competitions/migrations/0036_submission_queue.py new file mode 100644 index 000000000..8145013b5 --- /dev/null +++ b/src/apps/competitions/migrations/0036_submission_queue.py @@ -0,0 +1,20 @@ +# Generated by Django 2.2.17 on 2023-08-24 07:44 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('queues', '0001_initial'), + ('competitions', '0035_auto_20230806_0715'), + ] + + operations = [ + migrations.AddField( + model_name='submission', + name='queue', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='submissions', to='queues.Queue'), + ), + ] diff --git a/src/apps/competitions/models.py b/src/apps/competitions/models.py index 063914268..f1b17412a 100644 --- a/src/apps/competitions/models.py +++ b/src/apps/competitions/models.py @@ -460,6 +460,8 @@ class Submission(ChaHubSaveMixin, models.Model): is_public = models.BooleanField(default=False) is_specific_task_re_run = models.BooleanField(default=False) worker_hostname = models.CharField(max_length=255, blank=True, null=True) + queue = models.ForeignKey('queues.Queue', on_delete=models.SET_NULL, null=True, blank=True, + related_name='submissions') is_migrated = models.BooleanField(default=False) created_by_migration = models.ForeignKey(Phase, related_name='migrated_submissions', on_delete=models.CASCADE, null=True, diff --git a/src/apps/pages/views.py b/src/apps/pages/views.py index c68ef0a86..a555e80fa 100644 --- a/src/apps/pages/views.py +++ b/src/apps/pages/views.py @@ -90,8 +90,8 @@ def get_context_data(self, *args, **kwargs): for submission in context['submissions']: # Get filesize from each submissions's data submission.file_size = self.format_file_size(submission.data.file_size) - # Get queue from each submission's competition - queue_name = "*" if submission.phase.competition.queue is None else submission.phase.competition.queue.name + # Get queue from each submission + queue_name = "*" if submission.queue is None else submission.queue.name submission.competition_queue = queue_name return context diff --git a/src/static/riot/competitions/detail/submission_upload.tag b/src/static/riot/competitions/detail/submission_upload.tag index fe4211b77..1e2d89508 100644 --- a/src/static/riot/competitions/detail/submission_upload.tag +++ b/src/static/riot/competitions/detail/submission_upload.tag @@ -456,6 +456,7 @@ "fact_sheet_answers": self.get_fact_sheet_answers(), "tasks": task_ids_to_run, "organization": organization, + "queue": self.opts.competition.queue ? self.opts.competition.queue.id : null }) .done(function (data) { CODALAB.events.trigger('new_submission_created', data)