mirror of
https://gitlab.com/megazordpobeda/DataRush.git
synced 2026-05-23 19:07:10 +00:00
chore(backend): improvements in admin panel
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
|
|
||||||
from apps.achievement.models import Achievement
|
from apps.achievement.models import Achievement, UserAchievement
|
||||||
|
|
||||||
|
|
||||||
@admin.register(Achievement)
|
@admin.register(Achievement)
|
||||||
@@ -13,3 +13,5 @@ class AchievementAdmin(admin.ModelAdmin):
|
|||||||
"name",
|
"name",
|
||||||
"description",
|
"description",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
admin.site.register(UserAchievement)
|
||||||
|
|||||||
@@ -27,7 +27,11 @@ class Achievement(BaseModel):
|
|||||||
|
|
||||||
|
|
||||||
class UserAchievement(BaseModel):
|
class UserAchievement(BaseModel):
|
||||||
achievement = models.ForeignKey(Achievement, on_delete=models.CASCADE)
|
achievement = models.ForeignKey(Achievement, verbose_name="ачивка", on_delete=models.CASCADE)
|
||||||
user = models.ForeignKey("user.User", on_delete=models.CASCADE)
|
user = models.ForeignKey("user.User", verbose_name="пользователь", on_delete=models.CASCADE)
|
||||||
|
|
||||||
received_at = models.DateTimeField(auto_now_add=True)
|
received_at = models.DateTimeField(verbose_name="дата получения", auto_now_add=True)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
verbose_name = "выданная ачивка"
|
||||||
|
verbose_name_plural = "выданные ачивки"
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ from django.shortcuts import get_object_or_404
|
|||||||
from django.utils.html import format_html
|
from django.utils.html import format_html
|
||||||
|
|
||||||
from apps.user.models import User
|
from apps.user.models import User
|
||||||
from apps.competition.models import Competition
|
from apps.competition.models import Competition, State
|
||||||
from apps.task.admin import CompetitionTaskInline
|
from apps.task.admin import CompetitionTaskInline
|
||||||
from apps.task.models import CompetitionTaskSubmission, CompetitionTask
|
from apps.task.models import CompetitionTaskSubmission, CompetitionTask
|
||||||
|
|
||||||
@@ -80,7 +80,10 @@ class CompetitionAdmin(admin.ModelAdmin):
|
|||||||
|
|
||||||
context = dict(
|
context = dict(
|
||||||
self.admin_site.each_context(request),
|
self.admin_site.each_context(request),
|
||||||
title="Global Competition Leaderboard",
|
title="Лидерборд соревнования",
|
||||||
leaderboard=leaderboard,
|
leaderboard=leaderboard,
|
||||||
)
|
)
|
||||||
return TemplateResponse(request, "admin/competition_leaderboard.html", context)
|
return TemplateResponse(request, "admin/competition_leaderboard.html", context)
|
||||||
|
|
||||||
|
|
||||||
|
admin.site.register(State)
|
||||||
|
|||||||
@@ -59,11 +59,16 @@ class State(BaseModel):
|
|||||||
STARTED = "started"
|
STARTED = "started"
|
||||||
FINISHED = "finished"
|
FINISHED = "finished"
|
||||||
|
|
||||||
user = models.ForeignKey(User, on_delete=models.CASCADE)
|
user = models.ForeignKey(User, verbose_name="участник", on_delete=models.CASCADE)
|
||||||
competition = models.ForeignKey(Competition, on_delete=models.CASCADE)
|
competition = models.ForeignKey(Competition, verbose_name="соревнование", on_delete=models.CASCADE)
|
||||||
state = models.CharField(
|
state = models.CharField(
|
||||||
choices=StateChoices.choices,
|
choices=StateChoices.choices,
|
||||||
|
verbose_name="статус",
|
||||||
max_length=11,
|
max_length=11,
|
||||||
default=StateChoices.NOT_STARTED.value,
|
default=StateChoices.NOT_STARTED.value,
|
||||||
)
|
)
|
||||||
changed_at = models.DateTimeField(default=datetime.now)
|
changed_at = models.DateTimeField(verbose_name="изменено", default=datetime.now)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
verbose_name = "участие"
|
||||||
|
verbose_name_plural = "участия"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
|
|
||||||
from apps.review.models import Reviewer
|
from apps.review.models import Reviewer, Review
|
||||||
|
|
||||||
|
|
||||||
@admin.register(Reviewer)
|
@admin.register(Reviewer)
|
||||||
@@ -13,3 +13,6 @@ class ReviewersAdmin(admin.ModelAdmin):
|
|||||||
"name",
|
"name",
|
||||||
"surname",
|
"surname",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
admin.site.register(Review)
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ class Review(BaseModel):
|
|||||||
)
|
)
|
||||||
|
|
||||||
evaluation = models.JSONField(
|
evaluation = models.JSONField(
|
||||||
default=list, null=True, blank=True, verbose_name="выполнение"
|
default=list, null=True, blank=True, verbose_name="оценка"
|
||||||
)
|
)
|
||||||
state = models.CharField(
|
state = models.CharField(
|
||||||
choices=ReviewStatusChoices.choices,
|
choices=ReviewStatusChoices.choices,
|
||||||
|
|||||||
Reference in New Issue
Block a user