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
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)
for td in tds:
await self.channel_layer.group_send(
@ -279,6 +287,9 @@ class DrawConsumer(AsyncJsonWebsocketConsumer):
pool.current_team = tds[0]
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}",
{'type': 'draw.set_info', 'draw': self.tournament.draw})
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'),
)
last_message = models.TextField(
blank=True,
default="",
verbose_name=_("last message"),
)
def get_state(self):
if self.current_round.current_pool is None:
return 'DICE_SELECT_POULES'
@ -40,6 +46,9 @@ class Draw(models.Model):
@property
def information(self):
s = ""
if self.last_message:
s += self.last_message + "<br><br>"
match self.get_state():
case 'DICE_SELECT_POULES':
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
pour déterminer l'ordre de tirage. L'équipe réalisant le plus gros score pourra
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 += """Pour plus de détails sur le déroulement du tirage au sort,