Vorratsschrank - Mehrzeiliges Einfuegen zum schnellen Erfassen mehrerer Produkte #184

Closed
opened 2026-09-09 07:58:06 +02:00 by lena · 2 comments
Collaborator

Story: Vorratsschrank - Mehrzeiliges Einfuegen zum schnellen Erfassen mehrerer Produkte

As a Mitglied, das nach dem Grosseinkauf mehrere Produkte auf einmal in den Vorratsschrank eintraegt,
I want to eine mehrzeilige Liste von Produktnamen einfuegen/eintippen koennen (ein Name pro Zeile),
so that ich nicht jedes Produkt einzeln ueber das Eingabefeld hinzufuegen muss.

Kontext (verifiziert im Code): Die Einkaufsliste hat mehrzeiliges Einfuegen bereits seit #108 (SmartAddInput.tsx + MultilinePasteConfirmDialog.tsx, inkl. Bestaetigungsdialog aus #87) - der Vorratsschrank (PantryPage.tsx) hat dafuer aktuell keine Entsprechung; Produkte lassen sich dort nur einzeln ueber das normale Eingabefeld oder per Barcode-Scan hinzufuegen.

Acceptance criteria:

  • Im Vorratsschrank-Eingabefeld fuehrt das Einfuegen/Eintippen mehrerer durch Zeilenumbruch getrennter Namen zum selben Bestaetigungsdialog wie bei der Einkaufsliste (Vorschau der erkannten Zeilen, Bestaetigen legt fuer jede Zeile ein Produkt an).
  • Jede Zeile wird ueber die bestehende Einzel-Erstellungs-Pipeline (wie ein normal eingetipptes Produkt) angelegt, inklusive vorhandener Mengen-/Kategorie-Erkennung, soweit das bestehende Smart-Add-Muster das bereits leistet.
  • Eine einzelne eingetippte Zeile (kein Zeilenumbruch) verhaelt sich exakt wie bisher - keine Regression fuer den heutigen Einzel-Eintrag-Anwendungsfall.

Out of scope for this story:

  • Aenderungen am mehrzeiligen Einfuegen der Einkaufsliste selbst.
  • KI-gestuetzte Kategorie-/Mengen-Vorschlaege ueber das bereits vorhandene Mass hinaus.

Open questions: (escalate to human if unanswered)

  • Keine - reine Uebertragung eines bereits zweimal bewaehrten Musters (Todo- und Einkaufslisten-Mehrzeilen-Einfuegen) auf den Vorratsschrank.
## Story: Vorratsschrank - Mehrzeiliges Einfuegen zum schnellen Erfassen mehrerer Produkte **As a** Mitglied, das nach dem Grosseinkauf mehrere Produkte auf einmal in den Vorratsschrank eintraegt, **I want to** eine mehrzeilige Liste von Produktnamen einfuegen/eintippen koennen (ein Name pro Zeile), **so that** ich nicht jedes Produkt einzeln ueber das Eingabefeld hinzufuegen muss. **Kontext (verifiziert im Code):** Die Einkaufsliste hat mehrzeiliges Einfuegen bereits seit #108 (SmartAddInput.tsx + MultilinePasteConfirmDialog.tsx, inkl. Bestaetigungsdialog aus #87) - der Vorratsschrank (PantryPage.tsx) hat dafuer aktuell keine Entsprechung; Produkte lassen sich dort nur einzeln ueber das normale Eingabefeld oder per Barcode-Scan hinzufuegen. **Acceptance criteria:** - [ ] Im Vorratsschrank-Eingabefeld fuehrt das Einfuegen/Eintippen mehrerer durch Zeilenumbruch getrennter Namen zum selben Bestaetigungsdialog wie bei der Einkaufsliste (Vorschau der erkannten Zeilen, Bestaetigen legt fuer jede Zeile ein Produkt an). - [ ] Jede Zeile wird ueber die bestehende Einzel-Erstellungs-Pipeline (wie ein normal eingetipptes Produkt) angelegt, inklusive vorhandener Mengen-/Kategorie-Erkennung, soweit das bestehende Smart-Add-Muster das bereits leistet. - [ ] Eine einzelne eingetippte Zeile (kein Zeilenumbruch) verhaelt sich exakt wie bisher - keine Regression fuer den heutigen Einzel-Eintrag-Anwendungsfall. **Out of scope for this story:** - Aenderungen am mehrzeiligen Einfuegen der Einkaufsliste selbst. - KI-gestuetzte Kategorie-/Mengen-Vorschlaege ueber das bereits vorhandene Mass hinaus. **Open questions:** (escalate to human if unanswered) - Keine - reine Uebertragung eines bereits zweimal bewaehrten Musters (Todo- und Einkaufslisten-Mehrzeilen-Einfuegen) auf den Vorratsschrank.
lena self-assigned this 2026-09-10 21:31:33 +02:00
Author
Collaborator

Claiming this for the current autonomous cycle. Plan: mirror the Shopping list multiline-paste pattern (SmartAddInput.tsx + MultilinePasteConfirmDialog.tsx from #108) onto PantryPage.tsx - reusing the existing single-product creation pipeline per line, no new backend command needed. Single-line input keeps current behavior unchanged.

Claiming this for the current autonomous cycle. Plan: mirror the Shopping list multiline-paste pattern (SmartAddInput.tsx + MultilinePasteConfirmDialog.tsx from #108) onto PantryPage.tsx - reusing the existing single-product creation pipeline per line, no new backend command needed. Single-line input keeps current behavior unchanged.
Author
Collaborator

Done. Implemented in 215d80b5.

Scope: PantryPage.tsx product input now recognizes a multi-line paste (2+ non-blank lines) into an otherwise-empty field, showing the same confirmation dialog Shopping/Todo already use (#108), then creating one pantry product per line sequentially (with a "Line X of Y" progress indicator) through the exact same CreatePantryProductCommand pipeline the existing single-item add button already uses - quantity defaults to 1, category left unset, no smart matching/dedup (the pantry add box never had that, unlike Shopping SmartAddInput). A single-line paste/type is unaffected.

Tests: 5 new PantryPage.test.tsx cases (dialog appears on 2+ line paste, not intercepted when field already has text, Cancel creates nothing, sequential per-line creation with progress, single-line paste is not treated as a batch). Full frontend suite green (134 files / 1287 tests). Backend build green (0 errors); no backend changes needed for this story. Backend Testcontainers-based tests still blocked by this sandbox's standing Docker-unavailable limitation (confirmed via stack-trace grep, not a regression). Self-review + security-review skill: no findings (frontend-only, reuses an already-authorized existing command, no new attack surface).

Local review container could not be rebuilt this cycle - Docker daemon unreachable in this sandbox (open //./pipe/dockerDesktopLinuxEngine), same standing limitation as prior cycles.

Done. Implemented in `215d80b5`. Scope: PantryPage.tsx product input now recognizes a multi-line paste (2+ non-blank lines) into an otherwise-empty field, showing the same confirmation dialog Shopping/Todo already use (#108), then creating one pantry product per line sequentially (with a "Line X of Y" progress indicator) through the exact same CreatePantryProductCommand pipeline the existing single-item add button already uses - quantity defaults to 1, category left unset, no smart matching/dedup (the pantry add box never had that, unlike Shopping SmartAddInput). A single-line paste/type is unaffected. Tests: 5 new PantryPage.test.tsx cases (dialog appears on 2+ line paste, not intercepted when field already has text, Cancel creates nothing, sequential per-line creation with progress, single-line paste is not treated as a batch). Full frontend suite green (134 files / 1287 tests). Backend build green (0 errors); no backend changes needed for this story. Backend Testcontainers-based tests still blocked by this sandbox's standing Docker-unavailable limitation (confirmed via stack-trace grep, not a regression). Self-review + security-review skill: no findings (frontend-only, reuses an already-authorized existing command, no new attack surface). Local review container could not be rebuilt this cycle - Docker daemon unreachable in this sandbox (`open //./pipe/dockerDesktopLinuxEngine`), same standing limitation as prior cycles.
lena closed this issue 2026-09-10 21:39:14 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
robert/todo#184
No description provided.