mirror of
https://gitlab.com/animath/si/plateforme.git
synced 2025-06-28 01:12:22 +02:00
@ -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',)
|
||||
|
Reference in New Issue
Block a user