Design new dashboard

Changed

Context

The current dashboard is a view with several attachments, stacked vertically.

Several hacks are used in the view, like moving more links to the header, or setting the log display title in the overdue footer.

Finding a chore to log can be difficult. And it's not clear what is scheduled.

Current system (2026-10-22, local copy)

  • Front page /chores-dashboard = views.view.chores_dashboard page display, with five attachments above it: Daily, Today, Pinned, Overdue, New, then the log list.
  • 77 chores (25 top-level, 52 sub chores), 374 chore logs, 39 chores overdue (8 of them more than 180 days late), 14 never logged, 2 pinned.
  • Due dates are derived only: field_next_due_date = last log date + frequency (process_chorenextdue). Nothing lets you pick a day for a chore.
  • Logging opens the chore log form in a dialog (views_add_button).

How the mockup fits

Mockup panel Fit What exists, what is missing
Today list, tick to complete Good Due dates exist. Missing: one-tap logging with undo
Stat cards, "5 of 12 done" Good Derivable from due dates, scheduled dates and today's logs
Sub-chore progress and checklist Good Chore hierarchy + ChoreLogTree already attach same-day logs. "Children never complete the parent" matches the separate Mark as complete
Upcoming / Backlog / Overdue New concept Needs scheduling
Room rotation New concept Rooms exist as locations (children of Apartment, plus Lobby and Garage); nothing assigns them to days
Calendar Partial Existing calendars show past logs only
Quick Add / Add Task Partial Add chore dialog exists; no first date
Done times, icons, notes, weather, Reports Poor field_log_date is date-only; no icon data; chore_log has no notes field

A good fit once scheduling is added; most other panels are views over existing data. The mockup shows 2 overdue chores, which hides the real problem: a large stale backlog. Scheduling plus a backlog is what works it down.

Ideas

  • field_scheduled_date on chores stores only a chosen day; Today, Backlog and Upcoming are derived from it, the due date and today's logs (#339). Logging does not clear it, so undo reverts cleanly and no cron is needed.
  • One-tap log and undo modeled on StickyToggleController (#340).
  • Separate view block displays in a layout instead of attachments with title hacks (#341).

Decisions

  • Build in mantra_starter and supporting modules (views, layouts, the theme's SDC components). No custom styling work; layouts can be added or changed.
  • Manage from a desktop, log from a phone.
  • Scheduling drives the dashboard: a chore shows on Today only on the day it is due or scheduled, otherwise in Upcoming or Backlog.
  • A missed scheduled day sends the chore back to the backlog; no roll-over.
  • Ticking logs instantly with today's date, no dialog; unticking or Undo deletes that log. The full form stays for photos and back-dating.
  • A parent's checklist shows its due or overdue sub chores; the parent needs its own Mark as complete.
  • No snooze.
  • Pin becomes Add to Today; the current pins are converted.
  • Chores with no due date (never logged, As needed, Once not done) live in the backlog, grouped by room, until scheduled or logged.
  • Adding chores: light touch only, an optional first date. The full Quick Add panel is deferred.
  • Room rotation: a fixed weekday per room, as a follow-up after the first version (#345).
  • First version: Today with stat cards, the chore checklist, Upcoming / Backlog / Overdue with calendar.
  • Out of scope: done times, icons, weather, Reports, Settings.

Questions

  • Should a chore log get a notes field, like the mockup's Notes box?
  • How far ahead should Upcoming look (for example 14 days)?
  • Do "This week" and "This month" count chores, or every time a chore comes due?
  • Does the chore checklist open as a dialog from Today, or on the chore page?

TODO

  • [ ] #339 Schedule chores and replace Pin with "Add to Today"
  • [ ] #340 Log a chore with one tap, and undo
  • [ ] #341 Build the Today dashboard with stat cards
  • [ ] #342 Chore checklist with Mark as complete
  • [ ] #343 Upcoming, Backlog and Overdue tabs with calendar
  • [ ] #344 Add an optional first date to the add chore form
  • [ ] #345 Room rotation by weekday (follow-up)

Done when

  • On a phone, / shows Today with the stat cards and progress.
  • Ticking a chore logs it without a dialog; unticking reverts its due date.
  • A chore scheduled for yesterday and not logged is in Backlog today.
  • Backlog is grouped by room.
  • A parent's checklist shows its due sub chores and stays open until marked complete.
  • No attachment title hacks remain in chores_dashboard.

Done

Generated concept with chat gpt.

Matched the concept against the current system, collected the owner's UX decisions, and split the first version into subtasks.

Task type
Project
Topics