Merge branch 'dev' into 'main'
nouvel correction du système d'absence See merge request Omega_Kube/kuby!15
This commit is contained in:
commit
036e4b9e7a
1 changed files with 30 additions and 27 deletions
|
|
@ -85,40 +85,43 @@ def parse_date(date_str: Optional[str]):
|
||||||
|
|
||||||
class AbsenceModal(disnake.ui.Modal):
|
class AbsenceModal(disnake.ui.Modal):
|
||||||
def __init__(self, superieur: Optional[disnake.Member] = None):
|
def __init__(self, superieur: Optional[disnake.Member] = None):
|
||||||
super().__init__(title="Déclarer une Absence Staff", components=[self.motif, self.date_debut, self.date_fin])
|
|
||||||
self.superieur = superieur
|
self.superieur = superieur
|
||||||
|
self.motif_input = disnake.ui.TextInput(
|
||||||
motif = disnake.ui.TextInput(
|
label="Motif de l'absence",
|
||||||
label="Motif de l'absence",
|
style=disnake.TextInputStyle.paragraph,
|
||||||
style=disnake.TextInputStyle.paragraph,
|
placeholder="Ex: Vacances, Raisons personnelles, Travail...",
|
||||||
placeholder="Ex: Vacances, Raisons personnelles, Travail...",
|
required=True,
|
||||||
required=True,
|
max_length=500,
|
||||||
max_length=500
|
custom_id="absence_motif"
|
||||||
)
|
)
|
||||||
date_debut = disnake.ui.TextInput(
|
self.debut_input = disnake.ui.TextInput(
|
||||||
label="Début (JJ/MM/AAAA HH:MM)",
|
label="Début (JJ/MM/AAAA HH:MM)",
|
||||||
placeholder="Ex: 15/05/2024 08:00",
|
placeholder="Ex: 15/05/2024 08:00",
|
||||||
min_length=16,
|
min_length=16,
|
||||||
max_length=16,
|
max_length=16,
|
||||||
required=True
|
required=True,
|
||||||
)
|
custom_id="absence_debut"
|
||||||
date_fin = disnake.ui.TextInput(
|
)
|
||||||
label="Fin (JJ/MM/AAAA HH:MM)",
|
self.fin_input = disnake.ui.TextInput(
|
||||||
placeholder="Ex: 20/05/2024 18:00",
|
label="Fin (JJ/MM/AAAA HH:MM)",
|
||||||
min_length=16,
|
placeholder="Ex: 20/05/2024 18:00",
|
||||||
max_length=16,
|
min_length=16,
|
||||||
required=True
|
max_length=16,
|
||||||
)
|
required=True,
|
||||||
|
custom_id="absence_fin"
|
||||||
|
)
|
||||||
|
super().__init__(title="Déclarer une Absence Staff", components=[self.motif_input, self.debut_input, self.fin_input])
|
||||||
|
|
||||||
async def callback(self, interaction: disnake.ModalInteraction):
|
async def callback(self, interaction: disnake.ModalInteraction):
|
||||||
try:
|
try:
|
||||||
val_debut = interaction.text_values.get(self.date_debut.custom_id) or self.date_debut.value
|
val_debut = interaction.text_values["absence_debut"]
|
||||||
val_fin = interaction.text_values.get(self.date_fin.custom_id) or self.date_fin.value
|
val_fin = interaction.text_values["absence_fin"]
|
||||||
|
motif = interaction.text_values["absence_motif"]
|
||||||
|
|
||||||
debut = parse_date(val_debut)
|
debut = parse_date(val_debut)
|
||||||
fin = parse_date(val_fin)
|
fin = parse_date(val_fin)
|
||||||
except (ValueError, TypeError) as e:
|
except (ValueError, TypeError, KeyError) 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)
|
return await interaction.response.send_message(f"❌ Format de date invalide ou champ 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)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue