mirror of
https://gitlab.com/megazordpobeda/DataRush.git
synced 2026-05-22 23:17:09 +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 ninja import ModelSchema, Schema
|
||||||
|
|
||||||
from apps.task.models import CompetitionTask, CompetitionTaskSubmission
|
from apps.task.models import CompetitionTask, CompetitionTaskSubmission, CompetitionTaskAttachment
|
||||||
|
|
||||||
|
|
||||||
class TaskOutSchema(ModelSchema):
|
class TaskOutSchema(ModelSchema):
|
||||||
@@ -30,3 +30,9 @@ class HistorySubmissionOut(ModelSchema):
|
|||||||
class Meta:
|
class Meta:
|
||||||
model = CompetitionTaskSubmission
|
model = CompetitionTaskSubmission
|
||||||
fields = ("id", "earned_points", "timestamp", "content",)
|
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.schemas import ForbiddenError, NotFoundError, UnauthorizedError
|
||||||
from api.v1.task.schemas import (
|
from api.v1.task.schemas import (
|
||||||
HistorySubmissionOut,
|
HistorySubmissionOut,
|
||||||
|
TaskAttachmentSchema,
|
||||||
TaskOutSchema,
|
TaskOutSchema,
|
||||||
TaskSubmissionOut,
|
TaskSubmissionOut,
|
||||||
)
|
)
|
||||||
@@ -15,6 +16,7 @@ from apps.competition.models import State
|
|||||||
from apps.task.models import (
|
from apps.task.models import (
|
||||||
Competition,
|
Competition,
|
||||||
CompetitionTask,
|
CompetitionTask,
|
||||||
|
CompetitionTaskAttachment,
|
||||||
CompetitionTaskSubmission,
|
CompetitionTaskSubmission,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -141,3 +143,17 @@ def get_submissions_history(request, competition_id: UUID, task_id: UUID):
|
|||||||
)
|
)
|
||||||
|
|
||||||
return status.OK, submissions_history
|
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.competition.models import Competition
|
||||||
from apps.core.models import BaseModel
|
from apps.core.models import BaseModel
|
||||||
from apps.task.validators import ContestTaskCriteriesValidator
|
|
||||||
from apps.user.models import User
|
from apps.user.models import User
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user