add endpoint for get task attachments

This commit is contained in:
Timur
2025-03-02 12:29:15 +03:00
parent 16372bb35d
commit 9a0122ab1c
3 changed files with 23 additions and 2 deletions
+7 -1
View File
@@ -3,7 +3,7 @@ from uuid import UUID
from ninja import ModelSchema, Schema
from apps.task.models import CompetitionTask, CompetitionTaskSubmission
from apps.task.models import CompetitionTask, CompetitionTaskSubmission, CompetitionTaskAttachment
class TaskOutSchema(ModelSchema):
@@ -30,3 +30,9 @@ class HistorySubmissionOut(ModelSchema):
class Meta:
model = CompetitionTaskSubmission
fields = ("id", "earned_points", "timestamp", "content",)
class TaskAttachmentSchema(ModelSchema):
class Meta:
model = CompetitionTaskAttachment
fields = ("id", "file", "public",)
+16
View File
@@ -8,6 +8,7 @@ from api.v1.ping.schemas import PingOut
from api.v1.schemas import ForbiddenError, NotFoundError, UnauthorizedError
from api.v1.task.schemas import (
HistorySubmissionOut,
TaskAttachmentSchema,
TaskOutSchema,
TaskSubmissionOut,
)
@@ -15,6 +16,7 @@ from apps.competition.models import State
from apps.task.models import (
Competition,
CompetitionTask,
CompetitionTaskAttachment,
CompetitionTaskSubmission,
)
@@ -141,3 +143,17 @@ def get_submissions_history(request, competition_id: UUID, task_id: UUID):
)
return status.OK, submissions_history
@router.get(
"competitions/{competition_id}/tasks/{task_id}/attachments",
response={
status.OK: list[TaskAttachmentSchema],
status.UNAUTHORIZED: UnauthorizedError,
},
)
def get_task_attachments(request, competition_id: UUID, task_id: UUID):
task = get_object_or_404(CompetitionTask, id=task_id)
return status.OK, CompetitionTaskAttachment.objects.filter(
competition_id=competition_id, task=task, user=request.auth
)
-1
View File
@@ -5,7 +5,6 @@ from tinymce.models import HTMLField
from apps.competition.models import Competition
from apps.core.models import BaseModel
from apps.task.validators import ContestTaskCriteriesValidator
from apps.user.models import User