CSV-Import/-Export fuer die Masterpackliste ergaenzen #167
Labels
No labels
priority/could
priority/must
priority/should
priority/wont
status/blocked
status/claimed
status/done-migrated
type/bug
type/feature
type/infra
type/tech-debt
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
robert/todo#167
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Story: CSV-Import/-Export fuer die Masterpackliste ergaenzen
As a Mitglied einer Masterpackliste,
I want to die Liste als CSV exportieren und eine CSV-Datei importieren koennen,
so that ich Packlisten wie bei den anderen Listentypen sichern, teilen oder aus einer Vorlage einspielen kann.
Background
Todo-/Einkaufslisten haben CSV-Import/-Export seit #83, der Vorratsschrank seit #101/#101e.
CsvListKindinReactUi/src/utils/csvFields.tskennt aktuell nur'todo' | 'shopping' | 'pantry'- die Masterpackliste fehlt komplett, weder Backend-Handler noch Dialog-Anbindung.Acceptance criteria:
CsvExportDialog/CsvImportDialogwerden umkind: 'masterPacking'erweitert statt eigener Dialoge.Out of scope for this story:
Open questions: (escalate to human if unanswered)
Claiming this one. Plan: add CsvListKind.masterPacking end-to-end mirroring the existing todo/shopping/pantry CSV import/export pattern - backend export/import handlers for MasterPackingListItemEntity (title, quantity, quantity type, labels, non-essential flag), then wire CsvExportDialog/CsvImportDialog with the new kind instead of new dialogs. Starting now.
Done, merged to master (
bd294be5). Extended CsvExportDialog/CsvImportDialog with kind: "masterPacking" instead of building separate dialogs, per the story.Scope delivered:
Tests: 7 new backend handler tests (blank-name skip, free-text category passthrough, priority/quantityType parsing incl. defaults, quantity parse failure, label matching incl. unmatched-name handling, categoriesCreated always 0), 5 new frontend tests across CsvExportDialog/CsvImportDialog/MasterPackingListPage. Full suite green (891 backend, 1270 frontend).
Security: reviewed - list-scoped authorization matches every sibling handler, label ids re-validated against the list, no injection surface, no new privilege-boundary crossings.
Manually verified end-to-end against the local review container: created a list and an item, opened both dialogs, confirmed the export dialog shows the right columns and a successful GetMasterPackItemsForListQuery round-trip.