mirror of
https://gitlab.com/megazordpobeda/DataRush.git
synced 2026-05-22 22:07:10 +00:00
add endpoint for get task attachments
This commit is contained in:
@@ -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",)
|
||||
|
||||
@@ -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
|
||||
)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user