diff --git a/services/backend/apps/achievement/admin.py b/services/backend/apps/achievement/admin.py index 9d7822d..a4059ac 100644 --- a/services/backend/apps/achievement/admin.py +++ b/services/backend/apps/achievement/admin.py @@ -1,6 +1,6 @@ from django.contrib import admin -from apps.achievement.models import Achievement +from apps.achievement.models import Achievement, UserAchievement @admin.register(Achievement) @@ -13,3 +13,5 @@ class AchievementAdmin(admin.ModelAdmin): "name", "description", ) + +admin.site.register(UserAchievement) diff --git a/services/backend/apps/achievement/models.py b/services/backend/apps/achievement/models.py index 8116ff3..d1d026d 100644 --- a/services/backend/apps/achievement/models.py +++ b/services/backend/apps/achievement/models.py @@ -27,7 +27,11 @@ class Achievement(BaseModel): class UserAchievement(BaseModel): - achievement = models.ForeignKey(Achievement, on_delete=models.CASCADE) - user = models.ForeignKey("user.User", on_delete=models.CASCADE) + achievement = models.ForeignKey(Achievement, verbose_name="ачивка", 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 = "выданные ачивки" diff --git a/services/backend/apps/competition/admin.py b/services/backend/apps/competition/admin.py index b62928a..45a62cb 100644 --- a/services/backend/apps/competition/admin.py +++ b/services/backend/apps/competition/admin.py @@ -7,7 +7,7 @@ from django.shortcuts import get_object_or_404 from django.utils.html import format_html 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.models import CompetitionTaskSubmission, CompetitionTask @@ -80,7 +80,10 @@ class CompetitionAdmin(admin.ModelAdmin): context = dict( self.admin_site.each_context(request), - title="Global Competition Leaderboard", + title="Лидерборд соревнования", leaderboard=leaderboard, ) return TemplateResponse(request, "admin/competition_leaderboard.html", context) + + +admin.site.register(State) diff --git a/services/backend/apps/competition/models.py b/services/backend/apps/competition/models.py index 5d9880f..930e8f2 100644 --- a/services/backend/apps/competition/models.py +++ b/services/backend/apps/competition/models.py @@ -59,11 +59,16 @@ class State(BaseModel): STARTED = "started" FINISHED = "finished" - user = models.ForeignKey(User, on_delete=models.CASCADE) - competition = models.ForeignKey(Competition, on_delete=models.CASCADE) + user = models.ForeignKey(User, verbose_name="участник", on_delete=models.CASCADE) + competition = models.ForeignKey(Competition, verbose_name="соревнование", on_delete=models.CASCADE) state = models.CharField( choices=StateChoices.choices, + verbose_name="статус", max_length=11, 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 = "участия" diff --git a/services/backend/apps/review/admin.py b/services/backend/apps/review/admin.py index 653d999..5bf4557 100644 --- a/services/backend/apps/review/admin.py +++ b/services/backend/apps/review/admin.py @@ -1,6 +1,6 @@ from django.contrib import admin -from apps.review.models import Reviewer +from apps.review.models import Reviewer, Review @admin.register(Reviewer) @@ -13,3 +13,6 @@ class ReviewersAdmin(admin.ModelAdmin): "name", "surname", ) + + +admin.site.register(Review) diff --git a/services/backend/apps/review/models.py b/services/backend/apps/review/models.py index 3c1201a..6a45e54 100644 --- a/services/backend/apps/review/models.py +++ b/services/backend/apps/review/models.py @@ -35,7 +35,7 @@ class Review(BaseModel): ) evaluation = models.JSONField( - default=list, null=True, blank=True, verbose_name="выполнение" + default=list, null=True, blank=True, verbose_name="оценка" ) state = models.CharField( choices=ReviewStatusChoices.choices,