Skip to content

feat: retire is_focus, merge dashboard weekly widget onto due_date - #286

Merged
dholbach merged 1 commit into
mainfrom
feat/merge-focus-into-due-date
Jul 29, 2026
Merged

feat: retire is_focus, merge dashboard weekly widget onto due_date#286
dholbach merged 1 commit into
mainfrom
feat/merge-focus-into-due-date

Conversation

@dholbach

Copy link
Copy Markdown
Owner

Summary

(Replaces #285, which GitHub auto-closed when its base branch feat/focus-queue-due-today was deleted after #284 merged — no content change, just retargeted at main, which already contains #284.)

  • The dashboard's weekly widget star toggle (is_focus, P-028, week-scoped) and the Focus Queue's "due today" concept (due_date, P-050, added in feat: add a "Today" quick action to pull a Focus Queue task to the top #284) were two separate "important task" signals — exactly the overlap issue Focus Queue vs. dashboard's is_focus flag: overlapping "focus" concepts #281 flagged.
  • Turned out the star had already lost its only "add to focus" UI path back in P-050 phase 4 (the /todos/ list page it lived on was retired; only "remove focus" survived, inline in the dashboard widget) — so there was no way to set is_focus=True at all anymore, just an unusable leftover.
  • Rather than restoring a second star toggle, is_focus is retired outright (migration 0018_remove_practicetodo_is_focus) and the dashboard's weekly widget now lists due_date <= today tasks — the same signal the Focus Queue itself sorts on via the "Today" quick action from feat: add a "Today" quick action to pull a Focus Queue task to the top #284.
  • Removes todo_toggle_focus (view, URL, CSS .btn-focus-toggle/.is-focused) — fully dead once the field is gone.
  • Adds test_weekly_focus_widget.py — no test coverage existed for WeeklyFocusWidgetBuilder before this.
  • Docs: updated P-028/P-050 project docs with the retirement note, fixed a stale widget-builder inventory line in CODE_STRUCTURE.md (pre-existing staleness from the P-050 phase-4 retirement, adjacent to what this touched), added a FEATURES.md entry, updated PROJECTS.md.

Resolves #281.

Test plan

  • ./dev.py test my_practice.tests.test_weekly_focus_widget my_practice.tests.test_views_todo my_practice.tests.test_views_focus_queue my_practice.tests.test_dashboard_widgets my_practice.tests.test_views_dashboard my_practice.tests.test_i18n_coverage my_practice.tests.test_sync_focus_queue_tasks — all pass, including new due-today/overdue/future-due-date/no-due-date/completed coverage for the widget builder
  • ./dev.py test (full suite, Django + JS) and ./dev.py review (monthly automated checks: vulture dead-code, ruff unused symbols, pip-audit/npm-audit CVEs) — both clean
  • ./dev.py lint — ruff format/lint + Tailwind build all pass
  • ./dev.py i18n — fixed two entries makemessages fuzzy-guessed from similarly-worded existing strings
  • Manually verified via Django test client against the running dev container: clicking "Today" in the Focus Queue makes the task appear on the dashboard's "Due today" widget with no leftover star button or dead toggle-focus URL in the rendered HTML

🤖 Generated with Claude Code

The dashboard's weekly widget star toggle (is_focus, P-028) and the Focus
Queue's new "due today" concept (due_date, P-050) were two separate
"important task" signals — exactly the overlap flagged in issue #281.

Turned out the star had already lost its only "add to focus" UI path
back in P-050 phase 4 (the /todos/ list page it lived on was retired;
only "remove focus" survived, inline in the dashboard widget) — so
there was no way to set is_focus=True at all anymore, just an unusable
leftover.

Rather than restoring a second star toggle, is_focus is retired outright
(migration 0018) and the dashboard's weekly widget now lists due_date <=
today tasks, sharing the exact signal the Focus Queue itself already
sorts on (via the "Today" quick action). Removes todo_toggle_focus and
its URL/CSS; adds test_weekly_focus_widget.py (no coverage existed for
this builder before). Docs updated: P-028/P-050 project docs, a stale
CODE_STRUCTURE.md widget-builder inventory (pre-existing staleness from
P-050 phase 4 that this touched a nearby line of), FEATURES.md, and
PROJECTS.md.

Resolves #281.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@dholbach
dholbach merged commit e9bb077 into main Jul 29, 2026
1 check passed
@dholbach
dholbach deleted the feat/merge-focus-into-due-date branch July 29, 2026 21:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Focus Queue vs. dashboard's is_focus flag: overlapping "focus" concepts

1 participant