feat(02-03): create task providers, form screen with frequency and effort selectors

- TaskActions AsyncNotifier for create, update, delete, complete task mutations
- tasksInRoomProvider manual StreamProvider.family wrapping TasksDao.watchTasksInRoom
- TaskFormScreen with name, frequency (10 presets + custom), effort (3-way segmented),
  description, and initial due date picker (German DD.MM.YYYY format)
- Custom frequency: number + unit picker (Tage/Wochen/Monate)
- Calendar-anchored intervals auto-set anchorDay from due date
- Edit mode loads existing task and pre-fills all fields
- 19 new German localization keys for task form, delete, and empty state

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-15 22:07:53 +01:00
parent 519a56bef7
commit 652ff0123f
7 changed files with 756 additions and 8 deletions

View File

@@ -39,5 +39,25 @@
"count": { "type": "int" }
}
},
"cancel": "Abbrechen"
"cancel": "Abbrechen",
"taskFormCreateTitle": "Aufgabe erstellen",
"taskFormEditTitle": "Aufgabe bearbeiten",
"taskFormNameLabel": "Aufgabenname",
"taskFormNameHint": "z.B. Staubsaugen, Fenster putzen...",
"taskFormNameRequired": "Bitte einen Namen eingeben",
"taskFormFrequencyLabel": "Wiederholung",
"taskFormFrequencyCustom": "Benutzerdefiniert",
"taskFormFrequencyEvery": "Alle",
"taskFormFrequencyUnitDays": "Tage",
"taskFormFrequencyUnitWeeks": "Wochen",
"taskFormFrequencyUnitMonths": "Monate",
"taskFormEffortLabel": "Aufwand",
"taskFormDescriptionLabel": "Beschreibung (optional)",
"taskFormDueDateLabel": "Erstes F\u00e4lligkeitsdatum",
"taskDeleteConfirmTitle": "Aufgabe l\u00f6schen?",
"taskDeleteConfirmMessage": "Die Aufgabe wird unwiderruflich gel\u00f6scht.",
"taskDeleteConfirmAction": "L\u00f6schen",
"taskEmptyTitle": "Noch keine Aufgaben",
"taskEmptyMessage": "Erstelle die erste Aufgabe f\u00fcr diesen Raum.",
"taskEmptyAction": "Aufgabe erstellen"
}