Repository navigation
feat(chores): routine card button completes the whole routine while steps remain - #380
Conversation
…teps remain The card's fold button was inert until a routine finished, showing a faint chevron on an unfinished routine. It now completes the whole routine at once (ticking each remaining step through the normal step path, so the last tick completes the chore with the usual streak/on-time semantics), and folds the steps once finished. Past expiry, one parent approval covers all remaining steps (issue jherforth#279).
|
I'm okay with it. I mostly didn't want to ruin the timestamp on a routine when expanding it to examine it. |
|
One small thing: the two approve callbacks in Nit: the celebration could check |
Both approve callbacks in completeRoutine returned quietly when tickRemainingSteps gave false or 'expired', so a failed approval closed as if it worked and the routine stayed open. They now throw 'Not approved' (matching tickRoutineStep), so the dialog shows approveFailed, and the celebration checks done.completed. Addresses mrramam's review on jherforth#380.
|
@mrramam Good catch — fixed in ba46cf0. Both approve callbacks in |
ChoreWidget.jsx: keep jherforth#382's removal of the ChoreIconPicker import (the picker is in ChoreFormDialog now) and jherforth#380's routine imports. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rforth#382, jherforth#384) and origin/test/all-combined into test/all-combined Upstream: Stacks/display Modes/takeovers (jherforth#378), routine complete-all (jherforth#380), mirror re-measure (jherforth#381), shared New Chore dialog (jherforth#382), admin PIN chooses the mode helper (jherforth#384). Fork side: Open-Meteo provider, precipitation probability, bonus-chore return to pool, Google Tasks no-due-date fix, dock-hide-on-dialog, HA panel test seed. Conflicts (fork's jherforth#380/jherforth#382 branches vs upstream's merged versions): took upstream's refinements (scheduleOnly, tickRemainingStepsOrThrow); app.jsx combines both (dock stays hidden while dragging is false and a dialog is open). Auto-seed now strips the HA mode-helper link from seeded settings, so a new display never inherits another display's helper (jherforth#384: only the admin PIN chooses it). The Stacks tests pre-create their devices in before(), while no device has widgets yet, so auto-seed leaves them empty.
feat(chores): routine card button completes the whole routine while steps remain
Summary
A routine's card used to show a faint up-chevron while steps were still to do, and that button did nothing until the routine was finished — it only folded the steps away and back. That was confusing at the top level of the card: a control that looks tappable but is inert.
Now the button always does something: while any step remains, it is a check button that marks the whole routine done; once finished, it goes back to folding the steps away and back.
What it includes:
Screenshots (demo data):
Unfinished routine shows the check button instead of the faint chevron:

Tapping it completes all steps; the card folds to the finished state with streak and on-time chips:

Unticking one step reopens the routine with the other ticks kept:

The finished card's button still folds the steps away and back:

Expired routine: complete-all asks a parent once before ticking anything:


Verified with the client test suite green (routineSteps 8/8, full client suite 970 tests, i18n check passing) and an end-to-end pass covering: unfinished card shows the enabled check button; one tap completes all steps and folds the card to the finished chips; unticking a step reopens it with the other ticks kept; the finished button folds and unfolds the steps; an expired routine asks a parent once and completes only after approval.
Generated with Muse AI 🤖