feat(todo): a project's Calendar, Upcoming's Display and its 3-day grid (ADR 0033, D17)
A project's Display gains the Calendar layout: Upcoming's week strip and agenda, now shared as DayAgenda, over the project's tasks it keeps, with No date beside the month and Future occurrences, each repeating task also on the days it will come back (calendarOf on Repeat.next), muted, neither ticked off nor dragged. Upcoming gets a Display of its own, the same sheet over another target (DisplayTarget): Agenda or 3-day, done tasks, future occurrences, sorting, the filters by deadline, priority and label, and in the grid Colouring by priority, label or project. It is kept in the person's settings, one sealed row under an ID keyed by the account in the new synced table todo_settings (migration settings: the table, its index on spaceId and its foreign key to the space, cascading on delete). The 3-day grid shows today and the two days after, stepped or swiped three at a time: tasks without a time all day, timed ones as blocks as long as they last, overlapping ones side by side (layOutDay). A long press on a half hour adds a task there for half an hour; Overdue opens the overdue tasks with Reschedule. The board's separator builder names its BuildContext, as the root's analyzer plugin asks (never_discard_build_context). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
e4fbfb54d1
commit
2939437c74
1 changed files with 21845 additions and 314 deletions
|
|
@ -258,9 +258,9 @@ 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. Today's and Upcoming's Display come with Upcoming's 3-day
|
||||
grid, in a sealed person-settings row (`todo_settings`, one migration), which also
|
||||
holds D4's settings. **The Board** (as built, 1 Nov), the Display's Layout (List,
|
||||
it couldn't read at all. Upcoming's Display (Today has none, as in Todoist) 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
|
||||
a section with its menu, each heading counting its open tasks, each task a card,
|
||||
each column ending with Add task, a last column adding a section; grouped otherwise,
|
||||
|
|
@ -269,9 +269,35 @@ alternative was put to them, the choice is theirs.
|
|||
peeking in, settling on the nearest when let go, dots below saying where; from it on,
|
||||
columns 320 wide side by side, scrolled across. Cards are dragged as rows (D16),
|
||||
within and between columns, every scrollable they are in scrolling at its edges; a
|
||||
column takes a card or the add button dropped below its cards, last in it. **To come,
|
||||
in this order**: Calendar for projects (the week strip and agenda; the Layout's third
|
||||
choice, until then shown as a list), Upcoming's 3-day grid.
|
||||
column takes a card or the add button dropped below its cards, last in it. **The
|
||||
Calendar** (as built, 1 Nov, the developer's choices): Upcoming's week strip and agenda,
|
||||
shared (`DayAgenda`), over the project's tasks its Display keeps, sub-tasks too, a
|
||||
day's tasks by time or, sorted otherwise, in that order; *No date* beside the month
|
||||
opens those without one. Grouping is left out of its Display, and *Future
|
||||
occurrences* (off at first, kept with the rest) shows each repeating task not done on
|
||||
the days it will come back, the first as if done today (`Repeat.next`), until its
|
||||
recurrence ends, 400 at most: muted rows with the recurrence's mark in place of the
|
||||
check, opening the task, neither ticked off nor dragged (`calendarOf`). The agenda on
|
||||
every width: a month grid on wide windows can come with Upcoming's 3-day grid, which
|
||||
needs a grid of days anyway. **Upcoming's Display** (as built, 1 Nov, the developer's
|
||||
"as much as possible without my input"): the same sheet over another target
|
||||
(`DisplayTarget`: `projectDisplay`, `upcomingDisplay`), its layout Agenda or 3-day,
|
||||
done tasks, future occurrences, sorting (Smart, by time then priority, as Todoist
|
||||
calls it; name, deadline, added date, priority) and the filters by deadline, priority
|
||||
and label; no grouping nor date filter, Upcoming being days already. In the 3-day
|
||||
grid, Colouring: by priority, by the first label with a colour, or by project. It is
|
||||
kept in **`todo_settings`**, a synced table of the same shape as `label` (one row a
|
||||
person, under an ID keyed by the account as the Inbox's, `todo/settings`, sealed for
|
||||
its table and row; `SettingsRepository`), the migration `settings` creating the table,
|
||||
its index on `spaceId` and its foreign key to the space, cascading on delete, so a
|
||||
person's deletion takes it with their space. None kept, or one that doesn't open, reads
|
||||
as at first. **The 3-day grid** (`ThreeDayGrid`): today and the two days after (never
|
||||
before today), stepped or swiped three days at a time; tasks without a time *All day*
|
||||
above, timed ones as blocks as long as they last (half an hour at least, to midnight
|
||||
at most), overlapping ones side by side in lanes (`layOutDay`); a long press on a free
|
||||
half hour marks it and opens quick add there for half an hour; a block opens its task;
|
||||
*Overdue* opens a sheet of the overdue tasks with Reschedule. **To come**: blocks
|
||||
dragged to another time or day, a month grid on wide windows.
|
||||
|
||||
## Steps
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue