Balance/trend/charts follow the selected day; kcal weight is per-ride (stored) and settings weight auto-syncs to the latest weigh-in
This commit is contained in:
parent
6534d6601c
commit
dff9342c0d
5 changed files with 92 additions and 32 deletions
|
|
@ -0,0 +1,35 @@
|
|||
# Сессия 2026-09-22 - баланс/графики от выбранного дня + вес
|
||||
|
||||
По утверждённому плану `~/.claude/plans/merry-discovering-dream.md`.
|
||||
|
||||
## Часть 1 - окно от выбранного дня
|
||||
- `getRecentWeights/getDailyFoodTotals/getDailyActivityTotals` (db.js) получили опциональный
|
||||
`endDate` (по умолч. 'now'). Диапазон сменён с `date >= date('now','-N days')` на
|
||||
`date > date(<end>,'-N days') AND date <= date(<end>)` - ровно N дней, кончая на endDate
|
||||
(заодно чинит старый off-by-one N+1).
|
||||
- `renderToday` (main.js): BMR верхнего баланса `getRecentWeights(7, state.date)`; тренд
|
||||
`getDaily*(7, state.date)` (убрал костыль `slice(-7)`); `renderStatsCharts(...,refDate=state.date)`
|
||||
- все три запроса графиков и чипы 30/90 теперь от выбранного дня.
|
||||
- Единый BMR у баланс-графика оставлен (от веса выбранного дня); per-day BMR не делал.
|
||||
|
||||
## Часть 2 - вес
|
||||
### 2a синк настроек
|
||||
- `DB.addWeight`: после вставки `setProfileValue("weight_kg", latest.weight_kg)` - настройки
|
||||
всегда = последнее взвешивание. Колбэк модалки веса (main.js) обновляет `state.latestWeight`
|
||||
и `state.profile.weight_kg`.
|
||||
### 2b вес на момент поездки
|
||||
- Миграция `gps_sessions.rider_weight_kg REAL`. Новый сеттер `DB.setSessionRiderWeight` (отдельно
|
||||
от finishGpsSession, её зовёт и пересчёт).
|
||||
- Запись: при финализации трека (gps.js) сохраняется `GPS.recording.weightKg`.
|
||||
- Резолв веса везде первым берёт `session.rider_weight_kg`: `recalculateSession` (recorded+manual),
|
||||
`recomputeAllStats` (per-session в цикле), деталь трека (2 места), `recomputeStatsFor`, разбор
|
||||
повторов. Старые сессии (NULL) -> latest weigh-in (без регресса).
|
||||
|
||||
## Ответ пользователю (вопрос)
|
||||
Ккал брал вес из последнего взвешивания (не из настроек; настройки - запас). Теперь новые
|
||||
поездки хранят вес на момент записи, пересчёт использует его; настройки авто-синкаются с весом.
|
||||
|
||||
## Проверка
|
||||
- SQL-диапазон на десктоп-БД: `> date(end,'-7') AND <= date(end)` = ровно 7 дней, кончая на
|
||||
выбранном дне (старый `>=` давал 8). Подтверждено.
|
||||
- Дальше: десктоп (Xvfb) - листание дней двигает баланс/тренд/графики; вес-синк; затем APK+тело.
|
||||
Loading…
Add table
Add a link
Reference in a new issue