feat: retire is_focus, merge dashboard weekly widget onto due_date - #286
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
(Replaces #285, which GitHub auto-closed when its base branch
feat/focus-queue-due-todaywas deleted after #284 merged — no content change, just retargeted atmain, which already contains #284.)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./todos/list page it lived on was retired; only "remove focus" survived, inline in the dashboard widget) — so there was no way to setis_focus=Trueat all anymore, just an unusable leftover.is_focusis retired outright (migration0018_remove_practicetodo_is_focus) and the dashboard's weekly widget now listsdue_date <= todaytasks — 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.todo_toggle_focus(view, URL, CSS.btn-focus-toggle/.is-focused) — fully dead once the field is gone.test_weekly_focus_widget.py— no test coverage existed forWeeklyFocusWidgetBuilderbefore this.CODE_STRUCTURE.md(pre-existing staleness from the P-050 phase-4 retirement, adjacent to what this touched), added aFEATURES.mdentry, updatedPROJECTS.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 stringstoggle-focusURL in the rendered HTML🤖 Generated with Claude Code