docs(app-map): calendar.diff — P1+BYDAY done, Appointments=n-a (Ff 64.0/Fd 80.4 по 5 экранам) + STATUS
This commit is contained in:
@@ -1,8 +1,7 @@
|
||||
# Diff: Календарь (Calendar) — итерация 1 (2026-07-13)
|
||||
|
||||
Ff_app: **53.3%** · Fd_app: **67.0%** (среднее по 6 экранам, невзвешенно) · n-a: 0
|
||||
_(без экрана Appointments, если владелец сочтёт его мобильно-неприменимым: Ff_app **64.0%** /
|
||||
Fd_app **80.4%** по 5 экранам — вопрос лиду в конце.)_
|
||||
Ff_app: **64.0%** · Fd_app: **80.4%** (среднее по 5 экранам, невзвешенно) · n-a: Экран 5
|
||||
Appointments (решение лида mail/101 — организаторская фича, мобильно-неприменима, вне знаменателя).
|
||||
|
||||
> **P1 закрыт в коде** (итерация правок 1): разворот повторяющихся событий реализован —
|
||||
> `CalendarRecurrence` (генератор оккуренций RRULE на лету, без кэша и без `<c:expand>`,
|
||||
@@ -91,8 +90,11 @@ mail/085) добавлю следующим проходом — этот про
|
||||
[Д][done] секция импорта · [Д][open] отсутствуют секции General/Editing/Availability/CalDAV ·
|
||||
[Д][open] порядок и группировка пунктов по теме.
|
||||
|
||||
## Экран 5. Appointments / Расписание встреч — Ff 0.0% · Fd 0.0%
|
||||
Ф (10, open 10) — **раздел отсутствует в нативе целиком**:
|
||||
## Экран 5. Appointments / Расписание встреч — `n-a` (вне метрики, mail/101)
|
||||
Решение лида: организаторская фича (публикация слотов, внешние букинги) — десктоп/веб-воркфлоу,
|
||||
на мобильном клиенте неприменима, тянет тяжёлый UI. Экран целиком `n-a`, из знаменателя исключён,
|
||||
остаётся в финальном списке с обоснованием.
|
||||
Ф (10, все `n-a`) — раздел отсутствует в нативе (осознанно):
|
||||
- [Ф][open] список расписаний встреч · [Ф][open] «Создать расписание встреч»
|
||||
- [Ф][open] поля: имя/описание/местоположение/длительность/инкремент
|
||||
- [Ф][open] «Календарь бронирования» · [Ф][open] «Календари для проверки конфликтов»
|
||||
@@ -100,8 +102,7 @@ mail/085) добавлю следующим проходом — этот про
|
||||
- [Ф][open] «Создать комнату Talk» для встречи · [Ф][open] публичная страница бронирования
|
||||
(внешний гость: выбор слота → Подтвердить)
|
||||
Д (n/a пока — экран не реализован).
|
||||
> ВОПРОС ЛИДУ: Appointments мобильно-применимы или помечаем `n-a` (организаторская фича, чаще
|
||||
> десктоп)? От ответа зависит, входит ли экран в знаменатель (см. шапку — две метрики).
|
||||
> Решено (mail/101): `n-a` — вне знаменателя.
|
||||
|
||||
## Экран 6. Окно события — Ff 83.3% · Fd 92.0%
|
||||
Ф (30, open 5):
|
||||
@@ -148,8 +149,9 @@ pill-поля 40dp, шапка с крестиком/галочкой, высо
|
||||
## Предлагаемый порядок правок (жду приоритизацию лида)
|
||||
- **P1 — Разворот повторений в сетке/списке** (Экран 1, долг №2): ✅ **СДЕЛАНО в коде**
|
||||
(`CalendarRecurrence` + `eventOccursOnDay`, mail/072-совместимо: развёртка на лету, без кэша
|
||||
и `<c:expand>`; +11 тестов). Остаётся девайс-сверка (подтверждающий прогон). NB: `BYDAY=1MO`
|
||||
(месячный n-й день недели) в модели `RecurrenceRule` ещё не хранится — уходит в P2.
|
||||
и `<c:expand>`; +11 тестов). ✅ **`BYDAY=1MO` тоже починен** (коммит 492af61): `RecurrenceRule`
|
||||
хранит/сериализует ординал (раньше терялся в `toRrule`) + разворот n-го дня месяца +4 теста.
|
||||
Остаётся девайс-сверка (подтверждающий прогон).
|
||||
- **P2 — EXDATE + RECURRENCE-ID** (Экран 6, долг №3): чтение EXDATE (не показывать удалённые
|
||||
оккуренции) → выбор области правки/удаления «это / это и будущие» → запись без затирания серии.
|
||||
- **P3 — Настройки** (Экран 4): вынести веб-параметры (номера недель/выходные/задачи-в-календаре/
|
||||
|
||||
Reference in New Issue
Block a user