formatted :)

This commit is contained in:
Андрей Сумин
2025-03-02 16:45:11 +03:00
parent 7032ba2770
commit b30f0c7df2
18 changed files with 174 additions and 100 deletions
@@ -1,4 +1,4 @@
from ninja import ModelSchema, Schema
from ninja import ModelSchema
from apps.achievement.models import Achievement
@@ -6,4 +6,9 @@ from apps.achievement.models import Achievement
class AchievementSchema(ModelSchema):
class Meta:
model = Achievement
fields = ("id", "name", "description", "icon",)
fields = (
"id",
"name",
"description",
"icon",
)
+2 -2
View File
@@ -2,9 +2,9 @@ from http import HTTPStatus as status
from ninja import Router
from apps.achievement.models import Achievement
from api.v1.achievement.schemas import AchievementSchema
from api.v1.schemas import UnauthorizedError
from apps.achievement.models import Achievement
router = Router()
@@ -14,7 +14,7 @@ router = Router()
response={
status.OK: list[AchievementSchema],
status.UNAUTHORIZED: UnauthorizedError,
}
},
)
def get_all_achievements(request):
return Achievement.objects.all()
+4 -4
View File
@@ -87,7 +87,9 @@ def evaluate_submission(
review.submission.checked_at = datetime.now()
review.save()
submission_evaluations = Review.objects.filter(submission=submission).values_list('evaluation', flat=True)
submission_evaluations = Review.objects.filter(
submission=submission
).values_list("evaluation", flat=True)
marks = []
for evaluation in submission_evaluations:
@@ -97,9 +99,7 @@ def evaluate_submission(
marks.append(mark)
earned_points = median(marks)
review.submission.earned_points = (
earned_points
)
review.submission.earned_points = earned_points
all_checked = not submission.reviews.exclude(
state=ReviewStatusChoices.CHECKED
+22 -6
View File
@@ -2,17 +2,24 @@ 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
from apps.task.models import (
CompetitionTask,
CompetitionTaskAttachment,
CompetitionTaskSubmission,
)
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():
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"
@@ -38,10 +45,19 @@ class HistorySubmissionOut(ModelSchema):
class Meta:
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",)
fields = (
"id",
"file",
"public",
)