From 4d07439f27771643631c31a71ebdb846a55a2c12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D0=B4=D1=80=D0=B5=D0=B9=20=D0=A1=D1=83=D0=BC?= =?UTF-8?q?=D0=B8=D0=BD?= Date: Sun, 2 Mar 2025 16:28:16 +0300 Subject: [PATCH] feat: added status in tasks --- services/backend/api/v1/task/schemas.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/services/backend/api/v1/task/schemas.py b/services/backend/api/v1/task/schemas.py index 836643d..054a9b5 100644 --- a/services/backend/api/v1/task/schemas.py +++ b/services/backend/api/v1/task/schemas.py @@ -2,11 +2,20 @@ from typing import Literal from uuid import UUID from ninja import ModelSchema, Schema +from pydantic import Field from apps.task.models import CompetitionTask, CompetitionTaskSubmission, CompetitionTaskAttachment class TaskOutSchema(ModelSchema): + status: Literal["sent", "checked", "checking", "not_submitted"] = None + + @staticmethod + def resolve_status(self, context) -> Literal["sent", "checked", "checking", "not_submitted"]: + if submission := CompetitionTaskSubmission.objects.filter(task=self, user=context.get("request").auth).first(): + return submission.status + return "not_submitted" + class Meta: model = CompetitionTask fields = [