chore(backend): improvements in admin panel

This commit is contained in:
ITQ
2025-04-08 00:22:35 +03:00
parent 9f16caf0d4
commit ad0e795250
6 changed files with 28 additions and 11 deletions
+3 -1
View File
@@ -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)
+7 -3
View File
@@ -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 = "выданные ачивки"
+5 -2
View File
@@ -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)
+8 -3
View File
@@ -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 = "участия"
+4 -1
View File
@@ -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)
+1 -1
View File
@@ -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,