mirror of
https://gitlab.com/megazordpobeda/DataRush.git
synced 2026-05-23 00:27:11 +00:00
<type>(scope): <description>
[body] [footer(s)]
This commit is contained in:
@@ -1,10 +1,9 @@
|
|||||||
from typing import Literal
|
from typing import Literal
|
||||||
from uuid import UUID
|
from uuid import UUID
|
||||||
|
|
||||||
from django.http import HttpRequest
|
|
||||||
from ninja import ModelSchema, Schema
|
from ninja import ModelSchema, Schema
|
||||||
|
|
||||||
from apps.review.models import Reviewer, Review
|
from apps.review.models import Review, Reviewer
|
||||||
from apps.task.models import CompetitionTaskSubmission
|
from apps.task.models import CompetitionTaskSubmission
|
||||||
|
|
||||||
|
|
||||||
@@ -34,4 +33,6 @@ class SubmissionsOut(Schema):
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def resolve_submissions(self, context) -> list[SubmissionOut]:
|
def resolve_submissions(self, context) -> list[SubmissionOut]:
|
||||||
return list(Review.objects.filter(reviewer=context.get("request").auth))
|
return list(
|
||||||
|
Review.objects.filter(reviewer=context.get("request").auth)
|
||||||
|
)
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
import logging
|
|
||||||
from http import HTTPStatus as status
|
from http import HTTPStatus as status
|
||||||
from uuid import UUID
|
from uuid import UUID
|
||||||
|
|
||||||
@@ -8,7 +7,6 @@ from ninja import Router
|
|||||||
|
|
||||||
from api.v1 import schemas as global_schemas
|
from api.v1 import schemas as global_schemas
|
||||||
from api.v1.review import schemas
|
from api.v1.review import schemas
|
||||||
from api.v1.task.schemas import TaskSubmissionIn
|
|
||||||
from apps.task.models import CompetitionTaskSubmission
|
from apps.task.models import CompetitionTaskSubmission
|
||||||
|
|
||||||
router = Router(tags=["review"])
|
router = Router(tags=["review"])
|
||||||
@@ -19,9 +17,11 @@ router = Router(tags=["review"])
|
|||||||
response={
|
response={
|
||||||
status.OK: schemas.SubmissionsOut,
|
status.OK: schemas.SubmissionsOut,
|
||||||
},
|
},
|
||||||
description="Список отправок, на проверку которых назначен ревьюер"
|
description="Список отправок, на проверку которых назначен ревьюер",
|
||||||
)
|
)
|
||||||
def get_submissions(request: HttpRequest, token: str) -> tuple[status, schemas.SubmissionsOut]:
|
def get_submissions(
|
||||||
|
request: HttpRequest, token: str
|
||||||
|
) -> tuple[status, schemas.SubmissionsOut]:
|
||||||
return status.OK, schemas.SubmissionsOut()
|
return status.OK, schemas.SubmissionsOut()
|
||||||
|
|
||||||
|
|
||||||
@@ -36,12 +36,15 @@ def get_submissions(request: HttpRequest, token: str) -> tuple[status, schemas.S
|
|||||||
def get_reviewer_profile(request: HttpRequest, token: str):
|
def get_reviewer_profile(request: HttpRequest, token: str):
|
||||||
return status.OK, request.auth
|
return status.OK, request.auth
|
||||||
|
|
||||||
|
|
||||||
@router.get(
|
@router.get(
|
||||||
"{token}/submissions/{submition_id}",
|
"{token}/submissions/{submition_id}",
|
||||||
response={
|
response={
|
||||||
status.OK: schemas.SubmissionOut,
|
status.OK: schemas.SubmissionOut,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
def get_submission(request: HttpRequest, token: str, submition_id: UUID) -> tuple[status, schemas.SubmissionsOut]:
|
def get_submission(
|
||||||
|
request: HttpRequest, token: str, submition_id: UUID
|
||||||
|
) -> tuple[status, schemas.SubmissionsOut]:
|
||||||
submission = get_object_or_404(CompetitionTaskSubmission, id=submition_id)
|
submission = get_object_or_404(CompetitionTaskSubmission, id=submition_id)
|
||||||
return status.OK, submission
|
return status.OK, submission
|
||||||
|
|||||||
@@ -13,9 +13,9 @@ from api.v1.task.schemas import (
|
|||||||
)
|
)
|
||||||
from apps.competition.models import State
|
from apps.competition.models import State
|
||||||
from apps.task.models import (
|
from apps.task.models import (
|
||||||
CompetitionTaskSubmission,
|
|
||||||
Competition,
|
Competition,
|
||||||
CompetitionTask,
|
CompetitionTask,
|
||||||
|
CompetitionTaskSubmission,
|
||||||
)
|
)
|
||||||
|
|
||||||
router = Router(tags=["competition"])
|
router = Router(tags=["competition"])
|
||||||
|
|||||||
@@ -6,7 +6,17 @@ from apps.task.admin import CompetitionTaskInline
|
|||||||
|
|
||||||
@admin.register(Competition)
|
@admin.register(Competition)
|
||||||
class CompetitionAdmin(admin.ModelAdmin):
|
class CompetitionAdmin(admin.ModelAdmin):
|
||||||
list_display = ("title", "end_date", "type",)
|
list_display = (
|
||||||
search_fields = ("title", "description",)
|
"title",
|
||||||
list_filter = ("type", "participation_type",)
|
"end_date",
|
||||||
|
"type",
|
||||||
|
)
|
||||||
|
search_fields = (
|
||||||
|
"title",
|
||||||
|
"description",
|
||||||
|
)
|
||||||
|
list_filter = (
|
||||||
|
"type",
|
||||||
|
"participation_type",
|
||||||
|
)
|
||||||
inlines = [CompetitionTaskInline]
|
inlines = [CompetitionTaskInline]
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from tinymce.models import HTMLField
|
|
||||||
|
|
||||||
from apps.core.models import BaseModel
|
from apps.core.models import BaseModel
|
||||||
from apps.user.models import User
|
from apps.user.models import User
|
||||||
@@ -49,8 +48,6 @@ class Competition(BaseModel):
|
|||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.title
|
return self.title
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
verbose_name = "соревнование"
|
verbose_name = "соревнование"
|
||||||
verbose_name_plural = "соревнования"
|
verbose_name_plural = "соревнования"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ from django.core.management.base import BaseCommand
|
|||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
|
|
||||||
from apps.competition.models import Competition, State
|
from apps.competition.models import Competition, State
|
||||||
from apps.task.models import CompetitionTaskSubmission, CompetitionTask
|
from apps.task.models import CompetitionTask, CompetitionTaskSubmission
|
||||||
from apps.user.models import User, UserRole
|
from apps.user.models import User, UserRole
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ class Reviewer(BaseModel):
|
|||||||
|
|
||||||
token = models.CharField(max_length=100)
|
token = models.CharField(max_length=100)
|
||||||
|
|
||||||
|
|
||||||
class Review(BaseModel):
|
class Review(BaseModel):
|
||||||
class ReviewStatusChoices(models.TextChoices):
|
class ReviewStatusChoices(models.TextChoices):
|
||||||
NOT_CHECKED = "not_checked"
|
NOT_CHECKED = "not_checked"
|
||||||
@@ -17,6 +18,10 @@ class Review(BaseModel):
|
|||||||
CHECKED = "checked"
|
CHECKED = "checked"
|
||||||
|
|
||||||
reviewer = models.ForeignKey(Reviewer, on_delete=models.CASCADE)
|
reviewer = models.ForeignKey(Reviewer, on_delete=models.CASCADE)
|
||||||
submission = models.ForeignKey(CompetitionTaskSubmission, on_delete=models.CASCADE)
|
submission = models.ForeignKey(
|
||||||
|
CompetitionTaskSubmission, on_delete=models.CASCADE
|
||||||
|
)
|
||||||
|
|
||||||
state = models.CharField(choices=ReviewStatusChoices.choices, max_length=11)
|
state = models.CharField(
|
||||||
|
choices=ReviewStatusChoices.choices, max_length=11
|
||||||
|
)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
from django.db import models
|
|
||||||
from django.contrib.auth.hashers import check_password, make_password
|
from django.contrib.auth.hashers import check_password, make_password
|
||||||
|
from django.db import models
|
||||||
|
|
||||||
from apps.core.models import BaseModel
|
from apps.core.models import BaseModel
|
||||||
|
|
||||||
|
|||||||
@@ -463,7 +463,7 @@ TINYMCE_DEFAULT_CONFIG = {
|
|||||||
"alignright alignjustify | bullist numlist outdent indent | "
|
"alignright alignjustify | bullist numlist outdent indent | "
|
||||||
"removeformat | help",
|
"removeformat | help",
|
||||||
"skin": "oxide-dark",
|
"skin": "oxide-dark",
|
||||||
"content_css": "dark"
|
"content_css": "dark",
|
||||||
}
|
}
|
||||||
|
|
||||||
# GUID
|
# GUID
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ admin.site.index_title = "DataRush"
|
|||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
# tinymce
|
# tinymce
|
||||||
path('tinymce/', include('tinymce.urls')),
|
path("tinymce/", include("tinymce.urls")),
|
||||||
# Admin urls
|
# Admin urls
|
||||||
path("admin/", admin.site.urls),
|
path("admin/", admin.site.urls),
|
||||||
# API urls
|
# API urls
|
||||||
|
|||||||
Reference in New Issue
Block a user