Add messages for better understanding

Signed-off-by: Emmy D'Anello <emmy.danello@animath.fr>
This commit is contained in:
Emmy D'Anello 2023-03-24 11:50:10 +01:00
parent dec9f9be11
commit c9fcfcf498
Signed by: ynerant
GPG Key ID: 3A75C55819C8CF85
3 changed files with 54 additions and 0 deletions

View File

@ -216,6 +216,14 @@ class DrawConsumer(AsyncJsonWebsocketConsumer):
self.tournament.draw.current_round.current_pool = pool self.tournament.draw.current_round.current_pool = pool
await sync_to_async(self.tournament.draw.current_round.save)() await sync_to_async(self.tournament.draw.current_round.save)()
msg = "Les résultats des dés sont les suivants : "
msg += await sync_to_async(lambda: ", ".join(
f"<strong>{td.participation.team.trigram}</strong> ({td.last_dice})"
for td in self.tournament.draw.current_round.team_draws))()
msg += ". L'ordre de passage et les compositions des différentes poules sont affiché⋅es sur le côté."
self.tournament.draw.last_message = msg
await sync_to_async(self.tournament.draw.save)()
await TeamDraw.objects.filter(round=self.tournament.draw.current_round).aupdate(last_dice=None) await TeamDraw.objects.filter(round=self.tournament.draw.current_round).aupdate(last_dice=None)
for td in tds: for td in tds:
await self.channel_layer.group_send( await self.channel_layer.group_send(
@ -279,6 +287,9 @@ class DrawConsumer(AsyncJsonWebsocketConsumer):
pool.current_team = tds[0] pool.current_team = tds[0]
await sync_to_async(pool.save)() await sync_to_async(pool.save)()
self.tournament.draw.last_message = ""
await sync_to_async(self.tournament.draw.save)()
await self.channel_layer.group_send(f"tournament-{self.tournament.id}", await self.channel_layer.group_send(f"tournament-{self.tournament.id}",
{'type': 'draw.set_info', 'draw': self.tournament.draw}) {'type': 'draw.set_info', 'draw': self.tournament.draw})
await self.channel_layer.group_send(f"tournament-{self.tournament.id}", await self.channel_layer.group_send(f"tournament-{self.tournament.id}",

View File

@ -0,0 +1,17 @@
# Generated by Django 4.1.7 on 2023-03-24 10:46
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("draw", "0004_remove_teamdraw_index_teamdraw_choose_index_and_more"),
]
operations = [
migrations.AddField(
model_name="draw",
name="last_message",
field=models.TextField(blank=True, default="", verbose_name="last message"),
),
]

View File

@ -25,6 +25,12 @@ class Draw(models.Model):
verbose_name=_('current round'), verbose_name=_('current round'),
) )
last_message = models.TextField(
blank=True,
default="",
verbose_name=_("last message"),
)
def get_state(self): def get_state(self):
if self.current_round.current_pool is None: if self.current_round.current_pool is None:
return 'DICE_SELECT_POULES' return 'DICE_SELECT_POULES'
@ -40,6 +46,9 @@ class Draw(models.Model):
@property @property
def information(self): def information(self):
s = "" s = ""
if self.last_message:
s += self.last_message + "<br><br>"
match self.get_state(): match self.get_state():
case 'DICE_SELECT_POULES': case 'DICE_SELECT_POULES':
if self.current_round.number == 1: if self.current_round.number == 1:
@ -62,6 +71,23 @@ class Draw(models.Model):
Les capitaines peuvent lancer un 100 en cliquant sur le gros bouton Les capitaines peuvent lancer un 100 en cliquant sur le gros bouton
pour déterminer l'ordre de tirage. L'équipe réalisant le plus gros score pourra pour déterminer l'ordre de tirage. L'équipe réalisant le plus gros score pourra
tirer en premier.""" tirer en premier."""
case 'WAITING_DRAW_PROBLEM':
td = self.current_round.current_pool.current_team
s += f"""C'est au tour de l'équipe <strong>{td.participation.team.trigram}</strong>
de choisir son problème. Cliquez sur l'urne au milieu pour tirer un problème au sort."""
case 'WAITING_CHOOSE_PROBLEM':
td = self.current_round.current_pool.current_team
s += f"""L'équipe <strong>{td.participation.team.trigram}</strong> a tiré le problème
<strong>{td.purposed}</strong>. """
if td.purposed in td.rejected:
s += """Elle a déjà refusé ce problème auparavant, elle peut donc le refuser sans pénalité et
tirer un nouveau problème immédiatement, ou bien revenir sur son choix."""
else:
s += "Elle peut décider d'accepter ou de refuser ce problème. "
if len(td.rejected) >= settings.PROBLEM_COUNT - 5:
s += "Refuser ce problème ajoutera une nouvelle pénalité de 0.5 sur le coefficient de l'oral de læ défenseur•se."
else:
s += f"Il reste {settings.PROBLEM_COUNT - 5 - len(td.rejected)} refus sans pénalité."
s += "<br><br>" if s else "" s += "<br><br>" if s else ""
s += """Pour plus de détails sur le déroulement du tirage au sort, s += """Pour plus de détails sur le déroulement du tirage au sort,