1
0
mirror of https://gitlab.com/animath/si/plateforme.git synced 2025-06-28 01:12:22 +02:00

Add admin menu

Signed-off-by: Emmy D'Anello <emmy.danello@animath.fr>
This commit is contained in:
Emmy D'Anello
2023-04-03 18:10:52 +02:00
parent bd31375bf3
commit 073d761a03
5 changed files with 211 additions and 53 deletions

View File

@ -4,7 +4,8 @@
from asgiref.sync import sync_to_async
from django.conf import settings
from django.db import models
from django.utils.text import format_lazy
from django.urls import reverse_lazy
from django.utils.text import format_lazy, slugify
from django.utils.translation import gettext_lazy as _
from participation.models import Passage, Participation, Pool as PPool, Tournament
@ -32,6 +33,9 @@ class Draw(models.Model):
verbose_name=_("last message"),
)
def get_absolute_url(self):
return reverse_lazy('draw:index') + f'#{slugify(self.tournament.name)}'
@property
def exportable(self):
return any(pool.exportable for r in self.round_set.all() for pool in r.pool_set.all())
@ -110,6 +114,9 @@ class Draw(models.Model):
async def ainformation(self):
return await sync_to_async(lambda: self.information)()
def __str__(self):
return str(format_lazy(_("Draw of tournament {tournament}"), tournament=self.tournament.name))
class Meta:
verbose_name = _('draw')
verbose_name_plural = _('draws')
@ -153,6 +160,7 @@ class Round(models.Model):
class Meta:
verbose_name = _('round')
verbose_name_plural = _('rounds')
ordering = ('draw__tournament__name', 'number',)
class Pool(models.Model):
@ -265,11 +273,12 @@ class Pool(models.Model):
)
def __str__(self):
return f"{self.get_letter_display()}{self.round.number}"
return str(format_lazy(_("Pool {letter}{number}"), letter=self.get_letter_display(), number=self.round.number))
class Meta:
verbose_name = _('pool')
verbose_name_plural = _('pools')
ordering = ('round__draw__tournament__name', 'round__number', 'letter',)
class TeamDraw(models.Model):
@ -294,14 +303,14 @@ class TeamDraw(models.Model):
)
passage_index = models.PositiveSmallIntegerField(
choices=zip(range(1, 5), range(1, 5)),
choices=zip(range(1, 6), range(1, 6)),
null=True,
default=None,
verbose_name=_('passage index'),
)
choose_index = models.PositiveSmallIntegerField(
choices=zip(range(1, 5), range(1, 5)),
choices=zip(range(1, 6), range(1, 6)),
null=True,
default=None,
verbose_name=_('choose index'),
@ -356,6 +365,13 @@ class TeamDraw(models.Model):
def penalty(self):
return 0.5 * self.penalty_int
def __str__(self):
return str(format_lazy(_("Draw of the team {trigram} for the pool {letter}{number}"),
trigram=self.participation.team.trigram,
letter=self.pool.get_letter_display() if self.pool else "",
number=self.round.number))
class Meta:
verbose_name = _('team draw')
verbose_name_plural = _('team draws')
ordering = ('round__draw__tournament__name', 'round__number', 'pool__letter', 'passage_index',)