From 689179080d3f844f035220ba07239ead7930131e Mon Sep 17 00:00:00 2001 From: Timur Date: Sat, 1 Mar 2025 14:34:19 +0300 Subject: [PATCH] add base admin for conpetitions --- services/backend/apps/competition/admin.py | 10 ++++++++++ services/backend/apps/competition/apps.py | 1 + services/backend/apps/competition/models.py | 12 ++++++++---- services/backend/pyproject.toml | 1 + 4 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 services/backend/apps/competition/admin.py diff --git a/services/backend/apps/competition/admin.py b/services/backend/apps/competition/admin.py new file mode 100644 index 0000000..59e6800 --- /dev/null +++ b/services/backend/apps/competition/admin.py @@ -0,0 +1,10 @@ +from django.contrib import admin + +from apps.competition.models import Competition + + +@admin.register(Competition) +class CompetitionAdmin(admin.ModelAdmin): + list_display = ("title", "end_date", "type",) + search_fields = ("title", "description",) + list_filter = ("type", "participation_type",) diff --git a/services/backend/apps/competition/apps.py b/services/backend/apps/competition/apps.py index ff3cb4b..d343cd0 100644 --- a/services/backend/apps/competition/apps.py +++ b/services/backend/apps/competition/apps.py @@ -4,3 +4,4 @@ from django.apps import AppConfig class CompetitionsConfig(AppConfig): name = "apps.competition" label = "competition" + verbose_name = "Соревнование" diff --git a/services/backend/apps/competition/models.py b/services/backend/apps/competition/models.py index 589ce91..0c6bd19 100644 --- a/services/backend/apps/competition/models.py +++ b/services/backend/apps/competition/models.py @@ -8,11 +8,11 @@ from apps.user.models import User class Competition(BaseModel): class CompetitionType(models.TextChoices): - SOLO = "solo" + SOLO = "solo", "Индивидуальный" class CompetitionParticipationType(models.TextChoices): - EDU = "edu" - COMPETITIVE = "competitive" + EDU = "edu", "Образовательный" + COMPETITIVE = "competitive", "Соревновательный" title = models.CharField(max_length=100, verbose_name="Название") description = models.TextField(verbose_name="Описание") @@ -35,7 +35,11 @@ class Competition(BaseModel): choices=CompetitionParticipationType.choices, verbose_name="Тип соревнования", ) - participants = models.ManyToManyField(User, related_name="participants") + participants = models.ManyToManyField(User, related_name="participants", blank=True, + editable=False) + + def __str__(self): + return self.title class Meta: verbose_name = "соревнование" diff --git a/services/backend/pyproject.toml b/services/backend/pyproject.toml index 0aaa38b..b6292e0 100644 --- a/services/backend/pyproject.toml +++ b/services/backend/pyproject.toml @@ -20,6 +20,7 @@ dependencies = [ "psycopg2-binary>=2.9.10", "pydantic>=2.10.5", "pyjwt>=2.10.1", + "python-gettext>=5.0", "python-json-logger>=3.2.1", "pytz>=2024.2", "redis>=5.2.1",