feat(mood): capture the five values without lengthening the quick check-in

- the five faces are untouched: pick one, save, done in a tap
- a closed section below them opens onto five sliders; picking a face
  suggests a pleasantness value and moving that slider takes the
  suggestion over, while the face selection stays where it is
- an untouched slider writes nothing, and clearing one takes the answer
  back rather than leaving a middle value behind
- the list's edit dialog shows and changes the same five, so nothing is
  written on one screen and invisible on the other
- correcting an entry no longer re-derives pleasantness when the label
  did not move, which used to overwrite a hand-set value on any edit
- factor ratings are no longer offered on a new entry and nothing was
  deleted: existing ratings still render, edit and feed the crosstab
- six locales, and the dimension table's keys are declared dynamic
This commit is contained in:
Marc-André Bombeck committed 2026-08-08 01:24:04 +02:00
1 parent 7eaede257e
commit 97582dedc0
13 files changed
+530 -67

No files matched your search

+10
View File
@@ -4213,6 +4213,16 @@ model MoodTag {
/// mood *factor* the user scores per entry (e.g. work, social, sleep
/// quality); the score rides on `MoodEntryTagLink.rating`. Keeps one
/// taxonomy + one ingestion path for both flavours.
///
/// v1.37 — `RATED` is frozen, not removed. The capture sheet stopped
/// offering factor ratings when the level-A columns arrived on `MoodEntry`:
/// a 1-5 score for "work stress" and a 0-10 stress self-state are different
/// questions, and asking both on one entry invites two answers to one
/// thing. Nothing was deleted — no tag row, no link, no rating — so every
/// existing score keeps rendering, keeps editing and keeps feeding the
/// factor crosstab. Re-enabling the offer on the create sheet is a decision
/// about what to ask, not a bug fix; do not restore it because it looks
/// like an omission.
kind String @default("BINARY") @map("kind") // "BINARY" | "RATED"
/// v1.12.0 — inclusive lower / upper bound of a RATED factor's scale
/// (e.g. 1..5, or 1..2 for a Yes/No factor). Ignored for BINARY tags.