Merge branch 'dev' into 'main'

Corection urgente du système d'absence

See merge request Omega_Kube/kuby!14
This commit is contained in:
Gameur 2026-05-16 18:32:06 +02:00
commit 94ef5fa410
2 changed files with 22 additions and 7 deletions

View file

@ -75,8 +75,10 @@ def get_paris_now():
"""Récupère l'heure actuelle à Paris"""
return datetime.now(PARIS_TZ)
def parse_date(date_str: str):
def parse_date(date_str: Optional[str]):
"""Parse une date au format JJ/MM/AAAA HH:MM en timezone Paris"""
if not date_str:
raise ValueError("Date vide")
return datetime.strptime(date_str, DATE_FORMAT).replace(tzinfo=PARIS_TZ)
# --- MODALS & VIEWS ---
@ -108,12 +110,15 @@ class AbsenceModal(disnake.ui.Modal):
required=True
)
async def callback(self, interaction: disnake.Interaction):
async def callback(self, interaction: disnake.ModalInteraction):
try:
debut = parse_date(self.date_debut.value)
fin = parse_date(self.date_fin.value)
except ValueError:
return await interaction.response.send_message(f"❌ Format de date invalide. Utilise le format: `{DATE_FORMAT.replace('%d', 'JJ').replace('%m', 'MM').replace('%Y', 'AAAA').replace('%H', 'HH').replace('%M', 'MM')}`", ephemeral=True)
val_debut = interaction.text_values.get(self.date_debut.custom_id) or self.date_debut.value
val_fin = interaction.text_values.get(self.date_fin.custom_id) or self.date_fin.value
debut = parse_date(val_debut)
fin = parse_date(val_fin)
except (ValueError, TypeError) as e:
return await interaction.response.send_message(f"❌ Format de date invalide ou manquant. Utilise le format: `{DATE_FORMAT.replace('%d', 'JJ').replace('%m', 'MM').replace('%Y', 'AAAA').replace('%H', 'HH').replace('%M', 'MM')}`", ephemeral=True)
if debut > fin:
return await interaction.response.send_message("❌ La date de début doit précéder la date de fin.", ephemeral=True)

View file

@ -1,3 +1,13 @@
{
"1369669999345537145": {}
"1369669999345537145": {
"971446412690722826": {
"pseudo": "gameurpro12",
"debut": null,
"fin": null,
"motif": null,
"superieur": "<@353942721997832195>",
"message_id": 1505246281935618138,
"etat": "à venir"
}
}
}