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": "Calculate",
"remainingDaysWarning": "{count} vacation day{plural} not placed:",
"remainingDaysManualPlace": "Please place them manually.",
"deleteEntry": "Delete entry",
"chooseDate": "Choose a date",
"availableDate": "Available from",
"daySuffix": "day",
"daysSuffix": "days",
"expires": "exp."
"expires": "exp.",
"remainingClassification": {
"unavoidableExpiry": "Unavoidable expiry",
"atRisk": "At risk",
"deferred": "Deferred"
},
"remainingReason": {
"unavoidableExpiry": "expired before the horizon",
"atRisk": "expires within the horizon",
"deferred": "available after the horizon"
}
},
"dayTypes": {
"weekend": "Weekend",
@@ -37,6 +49,7 @@
"ifThenTemplate": "If a holiday falls on a <strong>{day}</strong>, place <strong>{placeDays}</strong> day(s) <strong>{placeType}</strong> <strong>{placement}</strong> and get <strong>{rewardDays}</strong> day(s) <strong>{rewardType}</strong> as a bonus.",
"timeWindowTemplate": "Place <strong>{placeDays}</strong> day(s) <strong>{placeType}</strong> between <strong>{startDate}</strong> and <strong>{endDate}</strong>.",
"editRule": "Edit rule",
"deleteRule": "Delete rule",
"addRule": "Add a rule",
"place": "Place",
"ruleName": "Rule name",
@@ -45,6 +58,9 @@
"type": "Type",
"position": "Position",
"getBonus": "Get as bonus",
"force": "Rule force",
"obligation": "Obligation",
"preference": "Preference",
"startDate": "Start date",
"endDate": "End date",
"cancel": "Cancel",
@@ -71,6 +87,20 @@
"auto": "Auto (Best choice)"
}
},
"planning": {
"invalidInput": "The planning input is invalid.",
"conflict": "The obligations cannot be satisfied together.",
"incomplete": "Calculation stopped before all quality stages completed.",
"error": "The planner encountered an unexpected error.",
"complete": "Plan calculated."
},
"benchmark": {
"title": "Leave planner benchmark",
"instructions": "Run the five fixed scenarios and copy the resulting report.",
"run": "Run benchmark",
"running": "Running…",
"copy": "Copy report"
},
"loading": "Calculating...",
"weekdaysShort": ["M", "T", "W", "T", "F", "S", "S"]
}