From 00121fff894e170cab381c924e03c4394017ea31 Mon Sep 17 00:00:00 2001 From: ITQ Date: Mon, 3 Mar 2025 16:12:15 +0300 Subject: [PATCH 1/3] (scope): [body] [footer(s)] --- services/backend/apps/task/admin.py | 2 +- ...ksubmission_plagiarism_checked_and_more.py | 22 +++++++++++++++++++ services/backend/apps/task/models.py | 4 ++-- 3 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 services/backend/apps/task/migrations/0002_remove_competitiontasksubmission_plagiarism_checked_and_more.py diff --git a/services/backend/apps/task/admin.py b/services/backend/apps/task/admin.py index ca097c0..af2477b 100644 --- a/services/backend/apps/task/admin.py +++ b/services/backend/apps/task/admin.py @@ -42,7 +42,7 @@ class CompetitionTaskSubmissionAdmin(admin.ModelAdmin): "user__username", "user__email", ) - list_filter = ("plagiarism_checked", "status") + list_filter = ("plagiarism_detected", "status") ordering = ["-timestamp"] def has_add_permission(self, request, obj=None): diff --git a/services/backend/apps/task/migrations/0002_remove_competitiontasksubmission_plagiarism_checked_and_more.py b/services/backend/apps/task/migrations/0002_remove_competitiontasksubmission_plagiarism_checked_and_more.py new file mode 100644 index 0000000..01c63d2 --- /dev/null +++ b/services/backend/apps/task/migrations/0002_remove_competitiontasksubmission_plagiarism_checked_and_more.py @@ -0,0 +1,22 @@ +# Generated by Django 5.1.6 on 2025-03-03 13:12 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('task', '0001_initial'), + ] + + operations = [ + migrations.RemoveField( + model_name='competitiontasksubmission', + name='plagiarism_checked', + ), + migrations.AddField( + model_name='competitiontasksubmission', + name='plagiarism_detected', + field=models.BooleanField(default=False, verbose_name='обнаружен плагиат'), + ), + ] diff --git a/services/backend/apps/task/models.py b/services/backend/apps/task/models.py index 8f6936e..77123b2 100644 --- a/services/backend/apps/task/models.py +++ b/services/backend/apps/task/models.py @@ -178,8 +178,8 @@ class CompetitionTaskSubmission(BaseModel): checked_at = models.DateTimeField( null=True, blank=True, verbose_name="дата проверки" ) - plagiarism_checked = models.BooleanField( - default=False, verbose_name="проверено на плагиат" + plagiarism_detected = models.BooleanField( + default=False, verbose_name="обнаружен плагиат" ) timestamp = models.DateTimeField( auto_now_add=True, verbose_name="дата отправки" From 96e5585014f3c493c883a6a4d9eb527d39e7db31 Mon Sep 17 00:00:00 2001 From: ITQ Date: Mon, 3 Mar 2025 16:50:19 +0300 Subject: [PATCH 2/3] (scope): [body] [footer(s)] --- services/backend/apps/task/tasks.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/services/backend/apps/task/tasks.py b/services/backend/apps/task/tasks.py index 4032da1..c7f1baf 100644 --- a/services/backend/apps/task/tasks.py +++ b/services/backend/apps/task/tasks.py @@ -4,6 +4,7 @@ import httpx from celery import shared_task from django.conf import settings from django.core.files.base import ContentFile +from urllib.parse import urlparse from apps.task.models import CompetitionTaskSubmission @@ -12,10 +13,16 @@ from apps.task.models import CompetitionTaskSubmission def analyze_data_task(self, submission_id): submission = CompetitionTaskSubmission.objects.get(id=submission_id) try: - code_url = f"{settings.MINIO_DEFAULT_CUSTOM_ENDPOINT_URL}{submission.content.path}" + code_url = ( + f"{settings.MINIO_DEFAULT_CUSTOM_ENDPOINT_URL}/" + f"{urlparse(submission.content.file.url).path}" + ) files = [ { - "url": f"{settings.MINIO_DEFAULT_CUSTOM_ENDPOINT_URL}{attachment.path}", + "url": ( + f"{settings.MINIO_DEFAULT_CUSTOM_ENDPOINT_URL}/" + f"{urlparse(submission.content.file.url).path}" + ), "bind_path": attachment.bind_at, } for attachment in submission.task.attachments.filter( @@ -40,7 +47,7 @@ def analyze_data_task(self, submission_id): submission.stdout.save("output.txt", ContentFile(result["output"])) submission.result = { - "correct": result["hash_match"], + "correct": result["correct"], "hash_match": result["hash_match"], "error": result.get("error"), } From 49e792825043e8156bd29853c4ba9add1981ff47 Mon Sep 17 00:00:00 2001 From: ITQ Date: Mon, 3 Mar 2025 16:57:47 +0300 Subject: [PATCH 3/3] (scope): [body] [footer(s)] --- services/backend/apps/task/tasks.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/backend/apps/task/tasks.py b/services/backend/apps/task/tasks.py index c7f1baf..b68ecf2 100644 --- a/services/backend/apps/task/tasks.py +++ b/services/backend/apps/task/tasks.py @@ -15,13 +15,13 @@ def analyze_data_task(self, submission_id): try: code_url = ( f"{settings.MINIO_DEFAULT_CUSTOM_ENDPOINT_URL}/" - f"{urlparse(submission.content.file.url).path}" + f"{urlparse(submission.content.url).path}" ) files = [ { "url": ( f"{settings.MINIO_DEFAULT_CUSTOM_ENDPOINT_URL}/" - f"{urlparse(submission.content.file.url).path}" + f"{urlparse(submission.content.url).path}" ), "bind_path": attachment.bind_at, }