Tell the user when vacation days move between periods
reallocate_vacation_by_value swaps vacation onto higher-value dates 1-for-1 with parental-leave days. Add an Easter period with no vacation left and the planner quietly takes vacation off the summer period, puts foraldrapenning there, and spends it on the Easter klamdagar. Nothing said so. sync_plan already emitted the evidence -- paired 'retyped' changes -- but PlanChange.kind's 'retyped' existed only as a type declaration, rendered nowhere, with no copy in either locale. findVacationSwaps pairs a vacation -> FP retype with an FP -> vacation retype for the same parent, aggregating multiple pairs into one group and ignoring any retype that is not a genuine two-sided swap. summarizeVacationSwaps names the periods via the existing resolveWishName, so a preset wish is re-translated rather than shown raw, and falls back to dates when no single wish resolves -- never a uuid. It joins the existing Calendar sync toast rather than adding a second toast system. Frontend 1356 tests, coverage 98.22 / 94.95 / 92.31 / 98.22, above all gates. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YZaX6xbuMEMXuyKA1fq2Mm
This commit is contained in:
@@ -88,6 +88,12 @@ export const calendar = {
|
||||
'{name} ({start}–{end}): endast {daysFunded} av {daysWished} dagar finansierades — {shortfallDays} {shortfallDays|dag|dagar} saknas',
|
||||
'calendar.toastRedDayShift':
|
||||
'{name}: flyttad till {start} – {end} för att fånga {days} extra {days|ledig dag|lediga dagar}',
|
||||
// Reallocation pass — `reallocate_vacation_by_value` swaps vacation onto
|
||||
// better dates 1-for-1 with föräldrapenning. `{from}`/`{to}` already carry
|
||||
// the period name plus its dates (e.g. "Sommar (20 jun, 21 jun)"), or the
|
||||
// dates alone when no single period can be named — see vacationSwaps.ts.
|
||||
'calendar.toastVacationSwap':
|
||||
'{count} {count|semesterdag|semesterdagar} flyttades från {from} till {to} — ersattes med föräldrapenning',
|
||||
'calendar.undoButton': 'Ångra',
|
||||
'calendar.undoError': 'Det gick inte att ångra ändringen',
|
||||
'calendar.dismissToastAria': 'Stäng meddelandet',
|
||||
|
||||
Reference in New Issue
Block a user