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"""
|
||||
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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue