Let a day removed from a period stay removed

Taking one day out of a period the planner placed did nothing that
lasted: the period still asked for a full week, so the next sync put the
day straight back. The option was disabled rather than lying about it.

A removed day is now recorded as its own thing — no leave for this
parent, this child, this date — and the planner honours it on every
later sync. It is kept apart from the working-day overrides, which
answer a different question about the calendar rather than about the
plan.

The day belongs to the parent whose band was clicked, so removing one
parent's day leaves their partner's alone; where both parents were to be
off on one funding arrangement, the partner is simply funded on their
own instead. A removed day shortens what the period is asking for rather
than counting as a day the plan failed to find, so the advice about
closing a shortfall does not start arguing for a day nobody wants.

Nothing is removed without a way back: the toast undoes it, and the day
itself is marked in the calendar and offers to restore.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ei7gCZzdd751uZtPzb1Pep
This commit is contained in:
2026-09-19 16:05:17 +02:00
parent 6d92b87bf3
commit 8cfb9c82c6
39 changed files with 2362 additions and 31 deletions
+13 -2
View File
@@ -31,6 +31,7 @@ export const calendar = {
'calendar.weekdayWed': 'Ons',
'calendar.you': 'Du',
'calendarDay.ariaWithEvents': '{date} med {count} händelse(r)',
'calendarDay.excludedAria': 'borttagen dag – planeraren hoppar över den',
'calendarDay.klamdagAria': 'klämdag',
'calendarDay.overrideFreeAria': 'markerad som ledig dag (undantag)',
'calendarDay.overrideWorkingAria': 'markerad som arbetsdag (undantag)',
@@ -52,6 +53,8 @@ export const calendar = {
'plannedDayModal.newTitle': 'Planera en dag',
'plannedDayModal.parentLabel': 'Förälder',
'plannedDayModal.pinnedNotice': 'Den här dagen är låst av dig — planeraren ändrar den inte automatiskt.',
'plannedDayModal.excludedNotice': 'Du har tagit bort den här dagen för {parent}.',
'plannedDayModal.restoreExcludedButton': 'Lägg tillbaka dagen',
'plannedDayModal.dayStatusLabel': 'Den här dagen är:',
'plannedDayModal.rangeTitle': 'Planera {count} dagar',
'plannedDayModal.parentModeLabel': 'Vem gäller det?',
@@ -139,10 +142,18 @@ export const calendar = {
'calendar.periodDeleteDayButton': 'Den här dagen',
'calendar.periodDeleteYearButton': 'Den här perioden',
'calendar.periodDeleteAllYearsButton': 'Den här perioden, varje år',
'calendar.periodDeleteDayDisabledHint':
'Går inte att ta bort en enskild dag från en återkommande plan — planeraren lägger tillbaka den vid nästa synk. Ta bort perioden istället.',
// "Den här dagen" gäller numera även planerarens egna dagar: borttagningen
// sparas som en `PlannedDayExclusion` och överlever varje ny synk.
'calendar.periodDeleteDayHint':
'Bara den dagen tas bort. Resten av perioden ligger kvar, och planeraren lägger inte tillbaka dagen.',
'calendar.periodDeleteAllYearsDisabledHint': 'Den här perioden är inte kopplad till en återkommande plan.',
'calendar.periodDeleteConfirmDay': 'Är du säker på att du vill ta bort den här dagen?',
// Namnger både datumet och föräldern: en dag tas bort för EN förälder, och
// partnerns dag samma datum ligger kvar (se PlannedDayExclusionService).
'calendar.periodDeleteConfirmDayNamed':
'Ta bort {date} för {parent}? Dagen stannar borta tills du återställer den.',
'calendar.toastDayExcluded': '{date} togs bort för {parent}',
'calendar.toastDayRestored': '{date} lades tillbaka för {parent}',
'calendar.periodDeleteConfirmYear': 'Är du säker på att du vill ta bort den här perioden (bara det här året)?',
'calendar.periodDeleteConfirmAllYears': 'Är du säker på att du vill ta bort perioden — alla år?',
'calendar.wantsDubbeldagLabel': 'Tillåt dubbeldagar',