Files
f7cloud_mobile/docs/app-map/tasks.diff.md
T

111 lines
9.8 KiB
Markdown

# Diff: Задачи (Tasks) — итерация 1 (2026-07-13)
Ff_app: **24.6%** · Fd_app: **52.7%** (среднее по 8 экранам, невзвешенно) · n-a: 0
> Прогресс P1 (коммиты `23f7565`/`e405dad`/`bd56c4b`): умные коллекции выведены в панель
> (агрегат + счётчики + открытие) + 3-state видимость (Скрыта/Видима/Авто) в настройках с
> персистом в SharedPreferences. **P1 закрыт в коде.** Пункты `done` = сделано в коде, **ждёт
> девайс-сверки** (тест-аккаунт — блокер лида); подтверждённого второго прогона ещё не было.
Сверка веб (`nextcloud/tasks v0.17.1` + тема) ↔ натив (`feature/tasks`: `TasksScreen`,
`TasksComponents`, `TasksViewModel`, `TasksRepository`, `TasksSmartLists`). Метки: `[Ф|Д]`
(функционал/дизайн) · `[open|done|n-a]`. Это первый прогон — счётчики честно низкие: натив
покрывает базовый CRUD + группировку + движок умных списков (в коде, не в UI). Живую визуал-сверку
на forbion (`bmob-*`, mail/085) добавлю следующим проходом — сейчас diff из кода.
Прошу приоритизацию: предлагаемый порядок P1→P5 в конце.
---
## Экран 1. Панель навигации (списки + умные коллекции) — Ff 28.6% · Fd 80%
Ф (14, open 10):
- [Ф][done] умные коллекции в панели (Важное/Сегодня/Неделя/Все/Текущие/Завершённые) — выведены
(`23f7565`), тап открывает агрегированный вид; ждёт девайс-сверки
- [Ф][done] счётчики-бейджи на коллекциях
- [Ф][done] открыть реальный список
- [Ф][open] «Добавить список» (MKCALENDAR) — сейчас мёртвая кнопка
- [Ф][open] выбор цвета при создании списка
- [Ф][open] drag-сортировка списков
- [Ф][open] drag задачи на коллекцию (retag priority/complete/today/week)
- [Ф][open] открыть Корзину
- [Ф][done] открыть Настройки
- [Ф][open] «⋯» списка: поделиться · [Ф][open] изменить · [Ф][open] копировать ссылку ·
[Ф][open] экспорт · [Ф][open] удалить/unshare
Д (5, open 1): [Д][done] композиция (коллекции показаны) · [Д][done] иконки коллекций ·
[Д][done] вид счётчика · [Д][done] активный пункт (фон) · [Д][open] порядок (в вебе коллекции
выше списков и кнопки «Добавить»; в нативе кнопка «Добавить» сверху) · строка списка (40dp/иконка)
## Экран 2. Список задач — Ff 38.9% · Fd 75%
Ф (18, open 11):
- [Ф][done] создать задачу (быстрый ввод) · [Ф][open] создать несколько из вставки
- [Ф][open] фильтр по меткам · [Ф][open] сброс фильтра
- [Ф][open] выбор порядка сортировки (10 вариантов) · [Ф][done] направление ↑/↓
- [Ф][open] «Загрузить завершённые» (по списку/всем)
- [Ф][done] чекбокс выполнения · [Ф][done] открыть деталь · [Ф][done] поиск по тексту
- [Ф][done] добавить подзадачу · [Ф][done] удалить задачу
- [Ф][open] «⋯»: переключить важность (star) · [Ф][open] показать/скрыть подзадачи ·
[Ф][open] показать/скрыть завершённые подзадачи
- [Ф][open] индикатор pin · [Ф][open] индикатор «есть заметка»
Д (8, open 2): [Д][done] группировка по сроку · [Д][done] зона завершённых · [Д][done] строка
задачи · [Д][done] бейдж даты · [Д][done] пусто-состояние · [Д][done] чекбокс ·
[Д][open] звезда приоритета в строке · [Д][open] иконки/вид меню сортировки-фильтра
## Экран 3. Деталь задачи — Ff 30% · Fd 66.7%
Ф (20, open 14):
- [Ф][done] правка заголовка · [Ф][done] срок · [Ф][open] дата начала · [Ф][open] «весь день»
- [Ф][open] статус (Требует действия/В процессе/Отменено/Очистить) · [Ф][open] классификация
- [Ф][done] приоритет · [Ф][open] %-выполнения (слайдер)
- [Ф][open] метки · [Ф][open] локация · [Ф][open] URL · [Ф][open] смена списка задачи
- [Ф][open] напоминания (до старта/до срока/дата-время) · [Ф][done] заметка/описание
- [Ф][open] закрепить (pin) · [Ф][open] показать в Календаре · [Ф][open] показать в Deck
- [Ф][open] экспорт · [Ф][done] удалить · [Ф][done] переключить выполнение
Д (6, open 2): [Д][done] лейаут шита · [Д][open] вкладки Подробно/Заметки · [Д][done] pill-поля ·
[Д][done] нативные пикеры · [Д][done] типографика · [Д][open] слайдеры приоритет/%
## Экран 4. Параметры задач (Настройки) — Ff 50% · Fd 100%
Ф (2, open 1): [Ф][open] список по умолчанию (в UI есть, ещё не персистится) ·
[Ф][done] видимость коллекций — **3-state (Скрыта/Видима/Авто) + персист SharedPreferences +
влияет на панель** (`bd56c4b`); ждёт девайс-сверки
Д (2, open 0): [Д][done] композиция шита · [Д][done] контрол 3-state (Скрыта/Видима/Авто)
## Экран 5. Правка/создание списка — Ff 0% · Fd 0% (экрана нет в нативе)
Ф (3, open 3): [Ф][open] имя списка · [Ф][open] цвет · [Ф][open] сохранить (PROPPATCH)
Д (1, open 1): [Д][open] модалка правки
## Экран 6. Шаринг списка — Ff 0% · Fd 0% (нет в нативе)
Ф (4, open 4): [Ф][open] поиск пользователей/групп · [Ф][open] выдать доступ ·
[Ф][open] список получателей · [Ф][open] отозвать
Д (1, open 1): [Д][open] модалка шаринга
## Экран 7. Корзина — Ff 0% · Fd 0% (нет в нативе)
Ф (4, open 4): [Ф][open] список удалённых · [Ф][open] восстановить · [Ф][open] очистить ·
[Ф][open] сортировка по дате
Д (1, open 1): [Д][open] модалка/таблица корзины
## Экран 8. Диалоги создания — Ff 50% · Fd 100%
Ф (2, open 1): [Ф][done] создать задачу · [Ф][open] создать несколько из вставки
Д (1, open 0): [Д][done] диалог создания
---
## Итог и предлагаемый приоритет
Ff_app = (28.6+38.9+30+50+0+0+0+50)/8 = **24.6%**;
Fd_app = (80+75+66.7+100+0+0+0+100)/8 = **52.7%**. Обе далеко от 98% — Задачи требуют нескольких
итераций. Крупные функциональные дыры (по влиянию на Ff):
- **P1 — Умные коллекции в UI** (`TasksListNavView` + счётчики + 3-state видимость с персистом).
**СДЕЛАНО в коде** (`23f7565`/`e405dad`/`bd56c4b`: коллекции+счётчики+открытие + 3-state
видимость + персист SharedPreferences). Ждёт девайс-сверки/подтверждающего прогона.
- **P2 — Управление списками**: рабочее «Добавить список» + цвет, «⋯» списка (переименовать/цвет/
удалить/экспорт/копировать ссылку), шаринг. Часть — core DAV (PROPPATCH/MKCALENDAR/share) —
**согласую с тобой ДО** (образец у calendar). Мой модуль + core-точки.
- **P3 — Богатая деталь**: старт-дата/весь день, статус, %-слайдер, метки, локация/URL, смена
списка, напоминания, pin. Метки/напоминания — крупные подсистемы; уточню объём.
- **P4 — Сортировка (10 порядков) + фильтр по меткам** вместо тумблера; «Загрузить завершённые».
- **P5 — Корзина** (DAV trashbin) — навигация/core, вероятно твой ход.
Вопросы к тебе: (1) порядок P1–P5 ок? (2) метки (tags) и напоминания (VALARM) — беру целиком в
`feature/tasks` или это кросс-модульное (метки шарятся с Календарём)? (3) Корзину относить в мой
модуль или это core/навигация? (4) экраны 5/6/7 считать полноценными (тянут среднее в 0) или
частью экрана навигации — уточни методику усреднения для «отсутствующих» экранов.