mirror of
https://gitlab.com/megazordpobeda/DataRush.git
synced 2026-05-22 23:17:09 +00:00
51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
from django.db import models
|
|
|
|
from apps.core.models import BaseModel
|
|
|
|
|
|
class Reviewer(BaseModel):
|
|
name = models.CharField(max_length=100, verbose_name="имя")
|
|
surname = models.CharField(max_length=100, verbose_name="фамилия")
|
|
|
|
token = models.CharField(max_length=100, verbose_name="токен для входа")
|
|
|
|
def __str__(self):
|
|
return self.name + " " + self.surname
|
|
|
|
class Meta:
|
|
verbose_name = "проверяющий"
|
|
verbose_name_plural = "проверяющие"
|
|
|
|
|
|
class ReviewStatusChoices(models.TextChoices):
|
|
NOT_CHECKED = "not_checked"
|
|
CHECKING = "checking"
|
|
CHECKED = "checked"
|
|
|
|
|
|
class Review(BaseModel):
|
|
reviewer = models.ForeignKey(Reviewer, on_delete=models.CASCADE,
|
|
verbose_name="проверяющий")
|
|
submission = models.ForeignKey(
|
|
"task.CompetitionTaskSubmission",
|
|
on_delete=models.CASCADE,
|
|
related_name="reviews",
|
|
verbose_name="посылка"
|
|
)
|
|
|
|
evaluation = models.JSONField(default=list, null=True, blank=True,
|
|
verbose_name="выполнение")
|
|
state = models.CharField(
|
|
choices=ReviewStatusChoices.choices,
|
|
default=ReviewStatusChoices.NOT_CHECKED.value,
|
|
max_length=11,
|
|
verbose_name="состояние"
|
|
)
|
|
|
|
def __str__(self):
|
|
return str(self.id)
|
|
|
|
class Meta:
|
|
verbose_name = "проверка"
|
|
verbose_name_plural = "проверки"
|