mirror of
https://gitlab.com/megazordpobeda/DataRush.git
synced 2026-05-23 05:07:10 +00:00
<type>(scope): <description>
[body] [footer(s)]
This commit is contained in:
@@ -32,7 +32,7 @@ class UserSchema(ModelSchema):
|
||||
|
||||
class Meta:
|
||||
model = User
|
||||
fields = ["id", "email", "username", "created_at"]
|
||||
fields = ["id", "avatar", "email", "username", "created_at"]
|
||||
|
||||
|
||||
class StatSchema(Schema):
|
||||
|
||||
@@ -3,8 +3,8 @@ from django.contrib import admin
|
||||
from apps.task.models import (
|
||||
CompetitionTask,
|
||||
CompetitionTaskAttachment,
|
||||
CompetitionTaskCriteria,
|
||||
CompetitionTaskSubmission,
|
||||
CompetitionTaskCriteria
|
||||
)
|
||||
|
||||
|
||||
@@ -23,7 +23,10 @@ class CompetitionTaskAdmin(admin.ModelAdmin):
|
||||
list_display = ("title", "type", "points")
|
||||
filter_horizontal = ("reviewers",)
|
||||
list_filter = ("type",)
|
||||
inlines = (CompletionAttachmentInline, CompetitionCriteriaInline,)
|
||||
inlines = (
|
||||
CompletionAttachmentInline,
|
||||
CompetitionCriteriaInline,
|
||||
)
|
||||
|
||||
|
||||
@admin.register(CompetitionTaskSubmission)
|
||||
|
||||
@@ -22,12 +22,16 @@ class CompetitionTask(BaseModel):
|
||||
in_competition_position = models.PositiveSmallIntegerField(
|
||||
verbose_name="позиция в соревновании"
|
||||
)
|
||||
competition = models.ForeignKey(Competition, on_delete=models.CASCADE,
|
||||
verbose_name="привязанное соревнование")
|
||||
competition = models.ForeignKey(
|
||||
Competition,
|
||||
on_delete=models.CASCADE,
|
||||
verbose_name="привязанное соревнование",
|
||||
)
|
||||
title = models.CharField(verbose_name="заголовок", max_length=50)
|
||||
description = MDTextField(verbose_name="описание")
|
||||
max_attempts = models.PositiveSmallIntegerField(null=True, blank=True,
|
||||
verbose_name="максимальное кол-во попыток")
|
||||
max_attempts = models.PositiveSmallIntegerField(
|
||||
null=True, blank=True, verbose_name="максимальное кол-во попыток"
|
||||
)
|
||||
type = models.CharField(
|
||||
choices=CompetitionTaskType, max_length=8, verbose_name="тип проверки"
|
||||
)
|
||||
@@ -68,7 +72,10 @@ class CompetitionTask(BaseModel):
|
||||
),
|
||||
)
|
||||
submission_reviewers_count = models.PositiveSmallIntegerField(
|
||||
default=1, null=True, blank=True, verbose_name="кол-во проверяющих для зачета задачи"
|
||||
default=1,
|
||||
null=True,
|
||||
blank=True,
|
||||
verbose_name="кол-во проверяющих для зачета задачи",
|
||||
)
|
||||
|
||||
def __str__(self):
|
||||
@@ -84,15 +91,9 @@ class CompetitionTaskCriteria(BaseModel):
|
||||
CompetitionTask, on_delete=models.CASCADE, related_name="criteries"
|
||||
)
|
||||
|
||||
name = models.TextField(
|
||||
verbose_name="название"
|
||||
)
|
||||
slug = models.SlugField(
|
||||
verbose_name="техническое название"
|
||||
)
|
||||
description = models.TextField(
|
||||
verbose_name="описание критерии"
|
||||
)
|
||||
name = models.TextField(verbose_name="название")
|
||||
slug = models.SlugField(verbose_name="техническое название")
|
||||
description = models.TextField(verbose_name="описание критерии")
|
||||
max_value = models.PositiveSmallIntegerField(
|
||||
verbose_name="максимальное кол-во баллов"
|
||||
)
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import hashlib
|
||||
|
||||
import httpx
|
||||
from celery import shared_task
|
||||
from django.conf import settings
|
||||
from django.core.files.base import ContentFile
|
||||
import hashlib
|
||||
|
||||
from apps.task.models import CompetitionTaskSubmission
|
||||
|
||||
|
||||
@@ -11,11 +11,14 @@ class UserRole(models.TextChoices):
|
||||
|
||||
|
||||
class User(BaseModel):
|
||||
avatar = models.ImageField(verbose_name="аватар")
|
||||
email = models.EmailField(unique=True, verbose_name="почта")
|
||||
username = models.SlugField(unique=True, verbose_name="юзернейм")
|
||||
password = models.TextField(verbose_name="пароль")
|
||||
|
||||
created_at = models.DateTimeField(auto_now=True, verbose_name="дата создания")
|
||||
created_at = models.DateTimeField(
|
||||
auto_now=True, verbose_name="дата создания"
|
||||
)
|
||||
|
||||
achievements = models.ManyToManyField(
|
||||
Achievement, blank=True, verbose_name="ачивки пользователя"
|
||||
@@ -29,8 +32,10 @@ class User(BaseModel):
|
||||
return check_password(self.password, password)
|
||||
|
||||
status = models.CharField(
|
||||
max_length=10, choices=UserRole.choices, default="student",
|
||||
verbose_name="роль участника"
|
||||
max_length=10,
|
||||
choices=UserRole.choices,
|
||||
default="student",
|
||||
verbose_name="роль участника",
|
||||
)
|
||||
|
||||
def __str__(self) -> str:
|
||||
|
||||
Reference in New Issue
Block a user