diff --git a/.planning/REQUIREMENTS.md b/.planning/REQUIREMENTS.md index 6037f7c..3d09d54 100644 --- a/.planning/REQUIREMENTS.md +++ b/.planning/REQUIREMENTS.md @@ -87,7 +87,7 @@ Fuori dalla milestone v2.5, che è in pausa. Piano in - [ ] **HUB-13**: Whop → progetto + audit automatico. Dipende dal motore v2.5 (AUD-06→11) - [x] **HUB-14**: Rifiniture dall'uso reale del pannello — rinomina di un valore di tassonomia con propagazione alle fasi dei progetti, stato task "In revisione", tab pagamenti con ordine stabile e importi a mano, riordino task per trascinamento. *In prod 2026-08-20, migration `0019`.* - [x] **HUB-15**: Portale cliente — barra di avanzamento compatta e a tutta larghezza, card offerta senza accordion, "Valore dell'offerta" con override admin (`project_offers.offer_value_override`). *In prod 2026-08-21, migration `0020`. Serviva perché la somma dei prezzi di catalogo mostrava €20.250 su offerte vendute a 7.000 e 5.500.* -- [ ] **HUB-16**: Guardare a mano HUB-14 e HUB-15 in produzione — le scritture nuove (`reorderTasks`, `updatePaymentField`, `clearPaymentOverride`, `updateOfferValueOverride`) e il drag non sono mai state **cliccate**, e dal 2026-08-21 la verifica locale contro i dati veri non è più possibile +- [ ] **HUB-16**: Guardare a mano HUB-14 e HUB-15 in produzione. `updateOfferValueOverride` **è provata** (Caruso Speaker ha un override a 7.500 messo dal pannello); restano da cliccare `reorderTasks`, `updatePaymentField`, `clearPaymentOverride` e il drag, e dal 2026-08-21 la verifica locale contro i dati veri non è più possibile ## Backlog (ereditato, nessuno in corso) diff --git a/.planning/STATE.md b/.planning/STATE.md index 5d5ccca..7becf75 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -38,7 +38,7 @@ Phase 27 resta a metà — schema e fonti in prod, resto da scrivere. | C2 — TidyCal | ⛔ **[BLOCCANTE]** vedi sotto | | C3 — Alleggerire l'hub | ⏸️ senza perimetro | | Rifiniture — tassonomie, "In revisione", tab pagamenti, riordino task | ✅ in prod 2026-08-20 (migration `0019`) | -| Portale cliente — stepper compatto/full-width, card offerta | ✅ in prod 2026-08-21 (`0020`), **non provato a mano** | +| Portale cliente — stepper compatto/full-width, card offerta | ✅ in prod 2026-08-21 (`0020`); override provato su Caruso Speaker | | D — Whop → audit | ⏸️ dipende dal motore v2.5 | Progress: [███░░░░░░░] 25% (v2.5) diff --git a/STATUS.md b/STATUS.md index 7fd3a6d..70da891 100644 --- a/STATUS.md +++ b/STATUS.md @@ -118,16 +118,19 @@ rinomina riscriverebbe titoli di fasi veri. ✅ **Verificato quel che si poteva verificare.** Build verde, lint senza nuovi warning, migration `0020` applicata a prod **prima** del push e colonna riletta dal DB a conferma; -override tutti NULL, quindi il comportamento resta invariato finché non se ne imposta uno. -Deploy atterrato: l'immagine in esecuzione è taggata `44be190`, cioè HEAD. +deploy atterrato (l'immagine in esecuzione è taggata `44be190`, cioè HEAD). **La scrittura +dell'override è provata sul campo**: il 2026-08-21 in prod `Caruso Speaker / B` ha +`offer_value_override = 7500.00` a fronte di un calcolo di 20.250 — la `0020` aggiunge la +colonna e basta, non fa backfill, quindi quel numero è stato messo a mano dal tab Offerte. ⚠️ **Non reso a runtime, e va detto.** Le pagine non sono state aperte contro i dati veri: `.env.local` è scaduto **su tre fronti** — `ADMIN_PASSWORD`, `NEXTAUTH_SECRET` **e la password del DB** — e l'host che dichiara (`178.104.27.55:5432`) è chiuso dal firewall. Estrarre la password viva dal container è stato **bloccato dal classifier dei permessi**, e non è stato aggirato. Quindi: *scritto e buildato*, non *provato*. **Da fare a mano:** -aprire il portale di un cliente e guardare barra e card offerta, poi `/admin/projects/` -→ tab Offerte per impostare un override. Perché la verifica locale torni possibile serve +aprire il portale di un cliente e guardare barra e card offerta. **Resta un override da +mettere**: `Rossi Inc / B` è venduta a 7.000 e il portale le mostra ancora i 20.250 del +calcolo. (`Teckell / A`: calcolo e venduto coincidono a 200, non serve toccarla.) Perché la verifica locale torni possibile serve riallineare `.env.local` alle variabili di Coolify (vedi § Note tecniche). Cosa manca, e perché: