feat(planning): implement constraint-first leave planner

This commit is contained in:
nessar committed 2026-08-28 22:44:14 +02:00
1 parent ba8dbe92d9
commit 7ceaf1a57a
32 files changed
+4842 -880

No files matched your search

+31 -1
View File
@@ -9,10 +9,22 @@
"calculate": "Calculer",
"remainingDaysWarning": "{count} jour{plural} de vacances non placé{plural}:",
"remainingDaysManualPlace": "Veuillez les placer manuellement.",
"deleteEntry": "Supprimer l’entrée",
"chooseDate": "Choisissez une date",
"availableDate": "Disponible à partir du",
"daySuffix": "jour",
"daysSuffix": "jours",
"expires": "exp."
"expires": "exp.",
"remainingClassification": {
"unavoidableExpiry": "Expiration inévitable",
"atRisk": "À risque",
"deferred": "Différé"
},
"remainingReason": {
"unavoidableExpiry": "expiré avant l’horizon",
"atRisk": "expire pendant l’horizon",
"deferred": "disponible après l’horizon"
}
},
"dayTypes": {
"weekend": "Weekend",
@@ -37,6 +49,7 @@
"ifThenTemplate": "Si un jour férié tombe un <strong>{day}</strong>, placer <strong>{placeDays}</strong> jour(s) <strong>{placeType}</strong> <strong>{placement}</strong> et obtenir <strong>{rewardDays}</strong> jour(s) <strong>{rewardType}</strong> en bonus.",
"timeWindowTemplate": "Placer <strong>{placeDays}</strong> jour(s) <strong>{placeType}</strong> entre le <strong>{startDate}</strong> et le <strong>{endDate}</strong>.",
"editRule": "Modifier la règle",
"deleteRule": "Supprimer la règle",
"addRule": "Ajouter une règle",
"place": "Placer",
"ruleName": "Nom de la règle",
@@ -45,6 +58,9 @@
"type": "Type",
"position": "Position",
"getBonus": "Obtenir en bonus",
"force": "Force de la règle",
"obligation": "Obligation",
"preference": "Préférence",
"startDate": "Date de début",
"endDate": "Date de fin",
"cancel": "Annuler",
@@ -71,6 +87,20 @@
"auto": "Auto (Meilleur choix)"
}
},
"planning": {
"invalidInput": "Les données de planification sont invalides.",
"conflict": "Les obligations ne peuvent pas être satisfaites ensemble.",
"incomplete": "Le calcul s’est arrêté avant la fin des critères de qualité.",
"error": "Le planificateur a rencontré une erreur inattendue.",
"complete": "Plan calculé."
},
"benchmark": {
"title": "Benchmark du planificateur de congés",
"instructions": "Lancez les cinq scénarios fixes et copiez le rapport obtenu.",
"run": "Lancer le benchmark",
"running": "En cours…",
"copy": "Copier le rapport"
},
"loading": "Calcul en cours...",
"weekdaysShort": ["L", "M", "M", "J", "V", "S", "D"]
}