diff --git a/compose.yaml b/compose.yaml index a6f946f..42bcd33 100644 --- a/compose.yaml +++ b/compose.yaml @@ -22,6 +22,10 @@ services: restart: false condition: service_healthy required: true + checker: + restart: false + condition: service_healthy + required: true env_file: - path: ./infrastructure/backend/.env.template required: true @@ -384,6 +388,10 @@ services: restart: false condition: service_completed_successfully required: true + minio: + restart: false + condition: service_healthy + required: true env_file: - path: ./infrastructure/checker/.env.template required: true diff --git a/services/backend/api/v1/task/views.py b/services/backend/api/v1/task/views.py index 10a2785..19c5025 100644 --- a/services/backend/api/v1/task/views.py +++ b/services/backend/api/v1/task/views.py @@ -116,7 +116,10 @@ def submit_task( return status.FORBIDDEN, ForbiddenError() if task.type == CompetitionTask.CompetitionTaskType.INPUT: - verdict = content.read() == task.correct_answer_file.read() + user_input = content.read() + correct_answer = task.correct_answer_file.read() + verdict = user_input == correct_answer + print(user_input, correct_answer) submission = CompetitionTaskSubmission.objects.create( user=user, task=task, @@ -125,7 +128,7 @@ def submit_task( result={ "correct": verdict }, - earned_points=task.points + earned_points=task.points if verdict else 0 ) if task.type == CompetitionTask.CompetitionTaskType.REVIEW: submission = CompetitionTaskSubmission.objects.create( diff --git a/services/backend/apps/task/migrations/0003_alter_competitiontaskattachment_task.py b/services/backend/apps/task/migrations/0003_alter_competitiontaskattachment_task.py new file mode 100644 index 0000000..a6208ba --- /dev/null +++ b/services/backend/apps/task/migrations/0003_alter_competitiontaskattachment_task.py @@ -0,0 +1,19 @@ +# Generated by Django 5.1.6 on 2025-03-03 15:11 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('task', '0002_remove_competitiontasksubmission_plagiarism_checked_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='competitiontaskattachment', + name='task', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='attachments', to='task.competitiontask', verbose_name='задание'), + ), + ] diff --git a/services/backend/apps/task/models.py b/services/backend/apps/task/models.py index 77123b2..a23b315 100644 --- a/services/backend/apps/task/models.py +++ b/services/backend/apps/task/models.py @@ -111,7 +111,10 @@ class CompetitionTaskAttachment(BaseModel): return f"attachments/{instance.id}/file/{filename}" task = models.ForeignKey( - CompetitionTask, on_delete=models.CASCADE, verbose_name="задание" + CompetitionTask, + on_delete=models.CASCADE, + verbose_name="задание", + related_name="attachments", ) file = models.FileField(upload_to=file_upload_at, verbose_name="файл") bind_at = models.CharField(verbose_name="путь сохранения", max_length=255)