Corection urgente du système d'absence
This commit is contained in:
parent
ba9e297cb8
commit
a1bbb05ee2
2 changed files with 22 additions and 7 deletions
|
|
@ -75,8 +75,10 @@ def get_paris_now():
|
||||||
"""Récupère l'heure actuelle à Paris"""
|
"""Récupère l'heure actuelle à Paris"""
|
||||||
return datetime.now(PARIS_TZ)
|
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"""
|
"""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)
|
return datetime.strptime(date_str, DATE_FORMAT).replace(tzinfo=PARIS_TZ)
|
||||||
|
|
||||||
# --- MODALS & VIEWS ---
|
# --- MODALS & VIEWS ---
|
||||||
|
|
@ -108,12 +110,15 @@ class AbsenceModal(disnake.ui.Modal):
|
||||||
required=True
|
required=True
|
||||||
)
|
)
|
||||||
|
|
||||||
async def callback(self, interaction: disnake.Interaction):
|
async def callback(self, interaction: disnake.ModalInteraction):
|
||||||
try:
|
try:
|
||||||
debut = parse_date(self.date_debut.value)
|
val_debut = interaction.text_values.get(self.date_debut.custom_id) or self.date_debut.value
|
||||||
fin = parse_date(self.date_fin.value)
|
val_fin = interaction.text_values.get(self.date_fin.custom_id) or 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)
|
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:
|
if debut > fin:
|
||||||
return await interaction.response.send_message("❌ La date de début doit précéder la date de fin.", ephemeral=True)
|
return await interaction.response.send_message("❌ La date de début doit précéder la date de fin.", ephemeral=True)
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,13 @@
|
||||||
{
|
{
|
||||||
"1369669999345537145": {}
|
"1369669999345537145": {
|
||||||
|
"971446412690722826": {
|
||||||
|
"pseudo": "gameurpro12",
|
||||||
|
"debut": null,
|
||||||
|
"fin": null,
|
||||||
|
"motif": null,
|
||||||
|
"superieur": "<@353942721997832195>",
|
||||||
|
"message_id": 1505246281935618138,
|
||||||
|
"etat": "à venir"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue