Vorratsschrank - Kaestchen vorne an jedem Produkt zum Auschecken (-1) + Sortieren ueber die Kopfzeile wie in der Einkaufsliste #219

Closed
opened 2026-09-29 08:48:50 +02:00 by lena · 3 comments
Collaborator

Story: Produkte im Vorratsschrank direkt per Kaestchen auschecken, Sortieren ueber die Kopfzeile

As a Vorratsschrank-Nutzer,
I want to vorne an jedem Produkt ein Kaestchen haben, das beim Anklicken die Menge um 1 reduziert, und das Verschieben/Sortieren - wie in der Einkaufsliste - ueber einen Schalter oben in der Kopfzeile ein- und ausschalten,
so that ich verbrauchte Produkte mit einem Tipp austragen kann, ohne Scanner oder Mengen-Dialog, und die Zeilen im normalen Betrieb nicht staendig Verschiebe-Griffe zeigen.

Wortlaut des Nutzers: "pantry: hier auch eine checkbox vorne erstellen / die option zum verschieben sollte wie in der einkaufsliste oben ueber die menueleiste anklickbar sein / wenn man die checkbox anklickt wird die Menge um 1 reduziert, wenn es nur die Menge 1 gab, dann verschwindet es von der Liste"

Hintergrund: Auf der Vorratsschrank-Seite gibt es aktuell keinen direkten Check-Out mehr - nur ueber den Kamera-Scanner bzw. die Scan-Station oder den Mengen-Dialog. Die Einkaufsliste hat bereits einen Sortiermodus-Schalter in der Kopfzeile (siehe #139); im Vorratsschrank ist Drag & Drop dagegen immer aktiv. Das Verschwinden bei Menge 0 ist seit #194 vorhanden (Produkt wird ausgeblendet, nicht geloescht) und soll hier wiederverwendet werden.

Acceptance criteria:

  • Jedes Produkt im Vorratsschrank zeigt vorne ein Kaestchen im gleichen Stil wie in der Einkaufsliste.
  • Ein Klick auf das Kaestchen fuehrt einen Check-Out aus (Menge -1) - derselbe Weg wie beim Scannen, also inklusive Aktivitaets-Eintrag, Soll-Menge-/Einkaufslisten-Logik und Rueckgaengig-Moeglichkeit im Scan-Station-Verlauf.
  • Hatte das Produkt Menge 1, verschwindet es danach aus der Liste (Verhalten aus #194), mit dem bestehenden Hinweis, wie man es zurueckholt.
  • Das Kaestchen bleibt nach dem Klick nicht dauerhaft angehakt, solange noch Bestand da ist (es ist eine Aktion "eins verbraucht", kein Erledigt-Status).
  • Verschiebe-Griffe/Drag & Drop sind standardmaessig aus und werden ueber einen Sortiermodus-Schalter in der Kopfzeile ein- und ausgeschaltet - gleiche Position, gleiches Symbol und gleiches Verhalten wie in der Einkaufsliste (#139).
  • Die bestehende Mehrfachauswahl (#187) funktioniert weiterhin; im Auswahlmodus darf das Auscheck-Kaestchen nicht mit dem Auswahl-Kaestchen verwechselbar sein (z. B. Auscheck-Kaestchen im Auswahlmodus ausblenden).
  • Funktioniert auch offline (der Check-Out ist bereits offline-faehig, siehe #97).
  • Nach dem Klick erscheint ein Hinweis mit einem "Rueckgaengig"-Knopf. Ein Klick darauf nimmt genau diesen Check-Out zurueck (Menge +1, Aktivitaets-Eintrag entfernt bzw. korrigiert - gleiche Wirkung wie das Rueckgaengig-Machen im Scan-Station-Verlauf). War das Produkt dadurch verschwunden, taucht es wieder in der Liste auf. Das gilt auch fuer den bestehenden "ist aufgebraucht und wurde ausgeblendet"-Hinweis.

Out of scope for this story:

  • Aenderungen an der Scan-Station oder am Kamera-Scanner.
  • Einchecken (+1) per Kaestchen.

Open questions: (escalate to human if unanswered)

  • Soll ein versehentlicher Klick direkt an der Zeile rueckgaengig gemacht werden koennen? Entschieden vom Menschen (2026-09-29): ja, mit einem "Rueckgaengig"-Knopf im Hinweis - siehe Acceptance Criteria.

Als Backlog-Item vom Nutzer eingereicht (per Chat, nicht im laufenden Loop-Zyklus geclaimt).

## Story: Produkte im Vorratsschrank direkt per Kaestchen auschecken, Sortieren ueber die Kopfzeile **As a** Vorratsschrank-Nutzer, **I want to** vorne an jedem Produkt ein Kaestchen haben, das beim Anklicken die Menge um 1 reduziert, und das Verschieben/Sortieren - wie in der Einkaufsliste - ueber einen Schalter oben in der Kopfzeile ein- und ausschalten, **so that** ich verbrauchte Produkte mit einem Tipp austragen kann, ohne Scanner oder Mengen-Dialog, und die Zeilen im normalen Betrieb nicht staendig Verschiebe-Griffe zeigen. Wortlaut des Nutzers: "pantry: hier auch eine checkbox vorne erstellen / die option zum verschieben sollte wie in der einkaufsliste oben ueber die menueleiste anklickbar sein / wenn man die checkbox anklickt wird die Menge um 1 reduziert, wenn es nur die Menge 1 gab, dann verschwindet es von der Liste" Hintergrund: Auf der Vorratsschrank-Seite gibt es aktuell keinen direkten Check-Out mehr - nur ueber den Kamera-Scanner bzw. die Scan-Station oder den Mengen-Dialog. Die Einkaufsliste hat bereits einen Sortiermodus-Schalter in der Kopfzeile (siehe #139); im Vorratsschrank ist Drag & Drop dagegen immer aktiv. Das Verschwinden bei Menge 0 ist seit #194 vorhanden (Produkt wird ausgeblendet, nicht geloescht) und soll hier wiederverwendet werden. **Acceptance criteria:** - [ ] Jedes Produkt im Vorratsschrank zeigt vorne ein Kaestchen im gleichen Stil wie in der Einkaufsliste. - [ ] Ein Klick auf das Kaestchen fuehrt einen Check-Out aus (Menge -1) - derselbe Weg wie beim Scannen, also inklusive Aktivitaets-Eintrag, Soll-Menge-/Einkaufslisten-Logik und Rueckgaengig-Moeglichkeit im Scan-Station-Verlauf. - [ ] Hatte das Produkt Menge 1, verschwindet es danach aus der Liste (Verhalten aus #194), mit dem bestehenden Hinweis, wie man es zurueckholt. - [ ] Das Kaestchen bleibt nach dem Klick nicht dauerhaft angehakt, solange noch Bestand da ist (es ist eine Aktion "eins verbraucht", kein Erledigt-Status). - [ ] Verschiebe-Griffe/Drag & Drop sind standardmaessig aus und werden ueber einen Sortiermodus-Schalter in der Kopfzeile ein- und ausgeschaltet - gleiche Position, gleiches Symbol und gleiches Verhalten wie in der Einkaufsliste (#139). - [ ] Die bestehende Mehrfachauswahl (#187) funktioniert weiterhin; im Auswahlmodus darf das Auscheck-Kaestchen nicht mit dem Auswahl-Kaestchen verwechselbar sein (z. B. Auscheck-Kaestchen im Auswahlmodus ausblenden). - [ ] Funktioniert auch offline (der Check-Out ist bereits offline-faehig, siehe #97). - [ ] Nach dem Klick erscheint ein Hinweis mit einem "Rueckgaengig"-Knopf. Ein Klick darauf nimmt genau diesen Check-Out zurueck (Menge +1, Aktivitaets-Eintrag entfernt bzw. korrigiert - gleiche Wirkung wie das Rueckgaengig-Machen im Scan-Station-Verlauf). War das Produkt dadurch verschwunden, taucht es wieder in der Liste auf. Das gilt auch fuer den bestehenden "ist aufgebraucht und wurde ausgeblendet"-Hinweis. **Out of scope for this story:** - Aenderungen an der Scan-Station oder am Kamera-Scanner. - Einchecken (+1) per Kaestchen. **Open questions:** (escalate to human if unanswered) - ~~Soll ein versehentlicher Klick direkt an der Zeile rueckgaengig gemacht werden koennen?~~ **Entschieden vom Menschen (2026-09-29): ja, mit einem "Rueckgaengig"-Knopf im Hinweis** - siehe Acceptance Criteria. --- Als Backlog-Item vom Nutzer eingereicht (per Chat, nicht im laufenden Loop-Zyklus geclaimt).
Author
Collaborator

Offene Frage vom Menschen beantwortet (2026-09-29): Ja, der Hinweis nach dem Auschecken bekommt einen "Rueckgaengig"-Knopf. Acceptance Criteria entsprechend ergaenzt.

Offene Frage vom Menschen beantwortet (2026-09-29): Ja, der Hinweis nach dem Auschecken bekommt einen "Rueckgaengig"-Knopf. Acceptance Criteria entsprechend ergaenzt.
lena self-assigned this 2026-09-29 11:06:36 +02:00
Author
Collaborator

Start: Claimed vom Autonomous Loop (2026-09-29). Plan: Auscheck-Kaestchen vorne an jeder Vorratsschrank-Zeile (nutzt den bestehenden Check-Out-Weg inkl. Offline-Queue), Sortiermodus-Schalter in der Kopfzeile wie in der Einkaufsliste, Hinweis mit Rueckgaengig-Knopf.

Start: Claimed vom Autonomous Loop (2026-09-29). Plan: Auscheck-Kaestchen vorne an jeder Vorratsschrank-Zeile (nutzt den bestehenden Check-Out-Weg inkl. Offline-Queue), Sortiermodus-Schalter in der Kopfzeile wie in der Einkaufsliste, Hinweis mit Rueckgaengig-Knopf.
Author
Collaborator

Erledigt (Commits 8e60fc2c, da7fe14e, 29839e88 auf master).

Umfang

  • Jede Vorratsschrank-Zeile hat vorne ein Kaestchen im Stil der Einkaufsliste. Ein Klick fuehrt den normalen Check-Out aus (Menge -1, Aktivitaets-Eintrag, Soll-Menge-/Einkaufslisten-Logik, offline-faehig). Das Kaestchen bleibt nie angehakt.
  • Bei Menge 1 verschwindet das Produkt (Verhalten aus #194), mit dem bestehenden Hinweis.
  • Der Hinweis nach dem Check-Out hat einen Rueckgaengig-Knopf (auch der "aufgebraucht und ausgeblendet"-Hinweis nach einem Kamera-Scan). Rueckgaengig wirkt wie das Loeschen des Eintrags im Scan-Station-Verlauf: Menge +1, Eintrag entfernt, ausgeblendetes Produkt taucht wieder auf.
  • Verschiebe-Griffe sind standardmaessig aus; Sortiermodus-Schalter in der Kopfzeile (gleiches Symbol, gleiche Position und gleiches Verhalten wie in der Einkaufsliste, #139).
  • Im Auswahlmodus (#187) ist das Auscheck-Kaestchen ausgeblendet.

Wichtige Entscheidungen

  • Neuer Befehl UndoPantryProductCheckOutCommand(PantryId, ProductId): findet den juengsten Check-Out-Eintrag des aktuellen Nutzers fuer dieses Produkt und gibt ihn an DeletePantryActivityEventCommand weiter. Die Antwort des Check-Outs bleibt unveraendert (Scanner/Offline-Queue teilen sie), und ein offline eingereihtes Rueckgaengig wird auf dem Server nach seinem Check-Out ausgefuehrt.
  • Wie beim Rueckgaengig im Scan-Station-Verlauf wird ein bereits auf die Einkaufsliste geschriebener Nachkauf-Eintrag nicht zurueckgenommen.

Tests

  • Backend: 4 neue Handler-Tests (Menge +1 und Eintrag entfernt, ausgeblendetes Produkt wieder sichtbar, nur der juengste Eintrag, Eintraege anderer Mitglieder und andere Arten werden ignoriert).
  • Frontend: Offline-Config-Test, 4 neue PantryPage-Tests (Sortiermodus-Schalter, Check-Out + Rueckgaengig, Ausblenden bei 1 + Zurueckholen, Auswahlmodus), 2 bestehende Tests an Sortiermodus/Rueckgaengig angepasst.
  • Lokal gruen: dotnet test Release (1273), vitest (1500), npm run build.
  • Security-Review: keine Befunde.
Erledigt (Commits 8e60fc2c, da7fe14e, 29839e88 auf master). **Umfang** - Jede Vorratsschrank-Zeile hat vorne ein Kaestchen im Stil der Einkaufsliste. Ein Klick fuehrt den normalen Check-Out aus (Menge -1, Aktivitaets-Eintrag, Soll-Menge-/Einkaufslisten-Logik, offline-faehig). Das Kaestchen bleibt nie angehakt. - Bei Menge 1 verschwindet das Produkt (Verhalten aus #194), mit dem bestehenden Hinweis. - Der Hinweis nach dem Check-Out hat einen Rueckgaengig-Knopf (auch der "aufgebraucht und ausgeblendet"-Hinweis nach einem Kamera-Scan). Rueckgaengig wirkt wie das Loeschen des Eintrags im Scan-Station-Verlauf: Menge +1, Eintrag entfernt, ausgeblendetes Produkt taucht wieder auf. - Verschiebe-Griffe sind standardmaessig aus; Sortiermodus-Schalter in der Kopfzeile (gleiches Symbol, gleiche Position und gleiches Verhalten wie in der Einkaufsliste, #139). - Im Auswahlmodus (#187) ist das Auscheck-Kaestchen ausgeblendet. **Wichtige Entscheidungen** - Neuer Befehl UndoPantryProductCheckOutCommand(PantryId, ProductId): findet den juengsten Check-Out-Eintrag des *aktuellen Nutzers* fuer dieses Produkt und gibt ihn an DeletePantryActivityEventCommand weiter. Die Antwort des Check-Outs bleibt unveraendert (Scanner/Offline-Queue teilen sie), und ein offline eingereihtes Rueckgaengig wird auf dem Server nach seinem Check-Out ausgefuehrt. - Wie beim Rueckgaengig im Scan-Station-Verlauf wird ein bereits auf die Einkaufsliste geschriebener Nachkauf-Eintrag nicht zurueckgenommen. **Tests** - Backend: 4 neue Handler-Tests (Menge +1 und Eintrag entfernt, ausgeblendetes Produkt wieder sichtbar, nur der juengste Eintrag, Eintraege anderer Mitglieder und andere Arten werden ignoriert). - Frontend: Offline-Config-Test, 4 neue PantryPage-Tests (Sortiermodus-Schalter, Check-Out + Rueckgaengig, Ausblenden bei 1 + Zurueckholen, Auswahlmodus), 2 bestehende Tests an Sortiermodus/Rueckgaengig angepasst. - Lokal gruen: dotnet test Release (1273), vitest (1500), npm run build. - Security-Review: keine Befunde.
lena closed this issue 2026-09-29 11:27:17 +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#219
No description provided.