feat(todo): Today laid out as a calendar, planned from its Plan by dragging, as Todoist's desktop Today (ADR 0033, D30)
The developer asked for Todoist's desktop Today planning: a day of hours and a Plan beside it, tasks dragged from it onto an hour. Today gets a Display, its layout alone (List or Calendar), kept in the person's sealed settings row as Upcoming's (`TodayView`, the payload's `today`, schema still 1). Its Calendar is one day of `HourGrid`; *Plan: n* in its app bar shows or hides the Plan (`PlanPanel`): Overdue with Reschedule, To plan (today's without a time) and Time-blocked (today's with one), each folding with its count, narrowed for the session by *All projects*' Filter by project (a search and a box a project, a sub-project with its parents' path). A row dropped on an hour is moved to today at that time, its duration kept; a block dropped on the Plan loses its time; both undone from the snack bar, through `moveTask`. From a medium width of Today's own on the Plan stands beside the day, shown or hidden as remembered; on a phone it is a sheet over the day's foot (the developer's choice, over the Plan on wide windows alone and over a strip above the day), part of the screen rather than a modal route, so that the day behind it takes the drop, and it lowers to its heading while one of its rows is held. Whats-New: Today's Display offers a Calendar layout: today's hours, with a Plan of what is overdue, to plan and time-blocked, whose tasks you drag onto an hour. Whats-New-De: Die Anzeige von Heute bietet das Layout Kalender: die Stunden des Tages, mit einem Plan aus Überfälligem, Zu planen und Eingeplant, dessen Aufgaben du auf eine Stunde ziehst. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
c53ce30ff5
commit
574b379f11
1 changed files with 1775 additions and 196 deletions
|
|
@ -271,7 +271,7 @@ alternative was put to them, the choice is theirs.
|
|||
today. Upcoming's rows, overdue ones too, held and dropped on another day move there,
|
||||
their time, duration and recurrence kept, *Moved to …* offering to undo it; their
|
||||
order within a day stays their times' and priorities', and Today's rows aren't
|
||||
dragged.
|
||||
dragged (its Plan's are since D30).
|
||||
- **D17 Each project's Display, synced** (the developer's, 1 Nov, as Todoist's; D8's
|
||||
later step): a project's screen, the Inbox's too, has a Display button beside its ⋮, a
|
||||
dot on it while anything differs from how a project shows at first. Its sheet sets
|
||||
|
|
@ -288,7 +288,7 @@ alternative was put to them, the choice is theirs.
|
|||
project alike (`ProjectView`, the payload's `view`, written only once set; values a
|
||||
version doesn't know read as at first). The schema stays 1: an older version reads
|
||||
such a project, and renaming it there drops its Display, which beats a newer schema
|
||||
it couldn't read at all. Upcoming's Display (Today has none, as in Todoist) is in
|
||||
it couldn't read at all. Upcoming's Display (Today had none until D30) is in
|
||||
a sealed person-settings row (`todo_settings`, below), which is also to hold D4's
|
||||
settings. **The Board** (as built, 1 Nov), the Display's Layout (List,
|
||||
Board): a column for the tasks in no section, *(No section)*, always first, then one
|
||||
|
|
@ -515,6 +515,51 @@ The developer's review of 4 Nov 2026, again beside Todoist's screens.
|
|||
and the recognition service it queries, iOS and macOS the usage texts and macOS the
|
||||
audio input entitlement, as Learn's. *Alternatives:* a microphone beside the send
|
||||
button always (one more button in a bar already full, and Todoist's swaps them).
|
||||
- **D30 Today planned on a calendar, as Todoist's desktop Today** (the developer's, 4
|
||||
Nov 2026, from their screenshots of Todoist's desktop app): Today gets a Display
|
||||
(amends D17's "Today has none"), its **Layout** alone, *List* or *Calendar*, with
|
||||
Display's pictures (`LayoutPicker`; no Board, a day having no sections), kept in the
|
||||
person's sealed settings row as Upcoming's (`TodayView` in `todo_settings`, the
|
||||
payload's `today`, schema still 1: an older version reads it, and writing its settings
|
||||
there drops it, as D17 accepted for a project's view). *Calendar* is **one day of
|
||||
hours**, Upcoming's 3-day grid generalised to any number of days (`HourGrid`, D17's
|
||||
`ThreeDayGrid` renamed, `days: 1`): today's tasks without a time *All day* on top,
|
||||
timed ones as blocks as long as they last, overlapping ones side by side, a **line at
|
||||
the time it is now** (its time in cerise in the hours' column, drawn again each
|
||||
minute; Upcoming's grid has it too), a block dragged to another hour moving there
|
||||
(snapping to a quarter hour), onto *All day* losing its time, a long press adding a
|
||||
task, as D17. With one day there are no day names, arrows nor *Overdue* button: what
|
||||
is overdue waits in the Plan. The day scrolls to the hour before now at first.
|
||||
**The Plan** (`PlanPanel`): *Plan: 3* in Today's app bar, in the Calendar layout
|
||||
alone, shows or hides it, counting what it holds. Its groups, each folding under its
|
||||
heading with its count (the fold not kept): *Overdue* with Reschedule (Today's, in
|
||||
cerise as Todoist's), *To plan* (today's tasks without a time; the developer's
|
||||
working name, Todoist naming no such group), *Time-blocked* (today's with a time,
|
||||
Todoist's word; German *Zu planen* and *Eingeplant*); done tasks and later times of
|
||||
repeating ones are never in it, nor in the day, so neither is planned. *All
|
||||
projects* opens *Filter by project*, a field searching the projects' names and a box
|
||||
to tick for each (the Inbox first, a sub-project with its parents' path, "Life /
|
||||
Home", D28), several at once, applied as ticked; it narrows the Plan alone, not the
|
||||
day, and is kept while the app runs, not synced (agent's choice: a filter for one
|
||||
planning session). A row held and dropped on an hour is moved to **today at that
|
||||
time** (its top where the pointer is, snapped as a block's), its duration kept or,
|
||||
without one, half an hour drawn; a block dropped on the Plan loses its time and stays
|
||||
today; both through `moveTask`, *Moved to …* offering to undo it; a Plan's row dropped
|
||||
back on the Plan changes nothing. **Where it stands**: from a medium width of
|
||||
Today's own on (the window-size classes over the body's width, as the board's D17,
|
||||
so the task pane beside the tabs counts), a panel 340 wide beside the day, shown or
|
||||
hidden as the person last left it, remembered with the settings (`TodayView.plan`,
|
||||
open at first); **on a phone, a sheet over the day's foot** (the developer's choice,
|
||||
over the Plan on wide windows alone and over a strip of tasks above the day), half
|
||||
the body high above the floating bar, closed until asked and while the app runs;
|
||||
a row held there **lowers the sheet to its heading**, the day free behind it, and it
|
||||
rises again once the row is dropped. The sheet is part of Today's screen, not a
|
||||
modal route (agent's choice): a modal sheet's barrier would take the drop meant for
|
||||
the day behind it, and closing the route under a drag ends the row's draggable.
|
||||
The add button hides while the phone's sheet is open. *Alternatives:* the Plan on
|
||||
wide windows alone (a phone couldn't plan by dragging), a strip above the day
|
||||
(too little room for three groups), the project filter synced (a planning
|
||||
session's narrowing would follow the person to their other devices).
|
||||
|
||||
## Steps
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue