feat(prezentacja): zakładka „Skompiluj” — zbiorczy raport (PRE-23) #31

Merged
gitea merged 1 commits from feat/pre23-compile-tab into master 2026-07-24 19:20:40 +00:00
Owner

Czwarta wskazówka partnerów. Nowa zakładka składa w jedno trzy kawałki liczone
w różnych miejscach: policzony horoskop, interpretację natalną z AI i wszystkie
zapamiętane predykcje okresowe.

Stacked na #30 (które stoi na #29) — potrzebuje magazynu predykcji.
Kolejność merge: #29#30#31; Gitea przekierowuje bazy same.

Układ raportu — dokładnie wg prośby

imię i nazwisko → wprowadzone dane → rysunek kosmogramu → interpretacja
natalna → predykcje okresowe.
Test pilnuje tej kolejności: to jedyna rzecz,
którą łatwo przestawić przy refaktorze, a partnerzy podali ją wprost.

Skąd materiał

Horoskop liczymy tu na nowo z danych formularza, zamiast go zapamiętywać. To
czysta funkcja wejścia — tanio powtórzyć, a odpada trzymanie w przeglądarce dużego
wyniku, który mógłby się rozjechać z aktualnym formularzem.

Interpretacja natalna — nowy natal.js, odpowiednik predictions.js. Natalna
jest jedna (dotyczy momentu urodzenia, nie okresu), więc ponowne wygenerowanie
podmienia slot zamiast dokładać wpis.

Predykcje — z magazynu z PRE-22.

compile.js czyta magazyny przez ich API (window.astrololoNatal /
astrololoPredictions), a nie sięgając wprost do localStorage — format danych ma
jednego właściciela: moduł, który je zapisuje. Test tego pilnuje.

Zakładka mówi, czego brakuje

Panel gotowości z trzema pozycjami i podpowiedzią, na której zakładce uzupełnić.
Bez tego użytkownik złożyłby niekompletny raport i dowiedział się o tym dopiero
po otwarciu PDF-a.

Bezpieczeństwo

Treść od modelu jest eskejpowana przed wstawieniem do DOM — to tekst
z zewnątrz, więc bez tego mielibyśmy wektor wstrzyknięcia.

Weryfikacja na żywej aplikacji

Dwie predykcje zapisane w Kalendarzu → natalna w Interpretacjach → obie odczytane
na Skompiluj (panel: brak horoskopu na żółto, dwa pozostałe na zielono) → po
złożeniu wszystkie trzy zielone, raport zaczyna się od „Jan Kowalski".
Kolejność sekcji sprawdzona na wyrenderowanym HTML: nagłówek 2931 < dane 3033
< kosmogram 3158 < natalna 26544 < predykcje 26575.

16 nowych testów. Poprawiłem też trzy własne, które łapały nazwy plików
w komentarzach zamiast w tagach skryptów. Całość: prezentacja 117 passed.

Zostaje ostatni punkt

PRE-24 — PDF przez LaTeX jako osobna usługa render. Zakładka jest gotowa,
dojdzie do niej przycisk generowania.

Czwarta wskazówka partnerów. Nowa zakładka składa w jedno trzy kawałki liczone w różnych miejscach: policzony horoskop, interpretację natalną z AI i wszystkie zapamiętane predykcje okresowe. > **Stacked na [#30](https://gitea.czernobog.pl/gitea/astrololo/pulls/30)** (które stoi na #29) — potrzebuje magazynu predykcji. > Kolejność merge: **#29 → #30 → #31**; Gitea przekierowuje bazy same. ## Układ raportu — dokładnie wg prośby **imię i nazwisko → wprowadzone dane → rysunek kosmogramu → interpretacja natalna → predykcje okresowe.** Test pilnuje tej kolejności: to jedyna rzecz, którą łatwo przestawić przy refaktorze, a partnerzy podali ją wprost. ## Skąd materiał **Horoskop liczymy tu na nowo** z danych formularza, zamiast go zapamiętywać. To czysta funkcja wejścia — tanio powtórzyć, a odpada trzymanie w przeglądarce dużego wyniku, który mógłby się **rozjechać z aktualnym formularzem**. **Interpretacja natalna** — nowy `natal.js`, odpowiednik `predictions.js`. Natalna jest **jedna** (dotyczy momentu urodzenia, nie okresu), więc ponowne wygenerowanie podmienia slot zamiast dokładać wpis. **Predykcje** — z magazynu z PRE-22. `compile.js` czyta magazyny **przez ich API** (`window.astrololoNatal` / `astrololoPredictions`), a nie sięgając wprost do localStorage — format danych ma jednego właściciela: moduł, który je zapisuje. Test tego pilnuje. ## Zakładka mówi, czego brakuje Panel gotowości z trzema pozycjami i podpowiedzią, **na której zakładce uzupełnić**. Bez tego użytkownik złożyłby niekompletny raport i dowiedział się o tym dopiero po otwarciu PDF-a. ## Bezpieczeństwo Treść od modelu jest **eskejpowana** przed wstawieniem do DOM — to tekst z zewnątrz, więc bez tego mielibyśmy wektor wstrzyknięcia. ## Weryfikacja na żywej aplikacji Dwie predykcje zapisane w Kalendarzu → natalna w Interpretacjach → obie odczytane na Skompiluj (panel: brak horoskopu na żółto, dwa pozostałe na zielono) → po złożeniu **wszystkie trzy zielone**, raport zaczyna się od „Jan Kowalski". Kolejność sekcji sprawdzona na wyrenderowanym HTML: nagłówek 2931 < dane 3033 < kosmogram 3158 < natalna 26544 < predykcje 26575. **16 nowych testów.** Poprawiłem też trzy własne, które łapały nazwy plików **w komentarzach** zamiast w tagach skryptów. Całość: **prezentacja 117 passed**. ## Zostaje ostatni punkt **PRE-24** — PDF przez LaTeX jako osobna usługa `render`. Zakładka jest gotowa, dojdzie do niej przycisk generowania.
gitea changed target branch from feat/pre22-saved-predictions to master 2026-07-24 18:27:45 +00:00
gitea added 1 commit 2026-07-24 18:27:45 +00:00
feat(prezentacja): zakladka „Skompiluj" — zbiorczy raport (PRE-23)
build / build (push) Successful in 52s
Testy / Testy warstwy logicznej (silnik) (push) Successful in 11m16s
Testy / Testy warstwy prezentacji (dostęp do baz) (push) Successful in 9m57s
Testy / Build obrazu silnika B (swisseph) (push) Successful in 32s
Testy / Kontrola składni wszystkich warstw (push) Failing after 8s
6c9029c496
Czwarta wskazowka partnerow. Nowa zakladka sklada w jedno trzy kawalki liczone
w roznych miejscach: policzony horoskop, interpretacje natalna z AI i wszystkie
zapamietane predykcje okresowe.

Uklad sekcji dokladnie wg prosby: imie i nazwisko -> wprowadzone dane ->
RYSUNEK kosmogramu -> interpretacja natalna -> predykcje okresowe. Test pilnuje
tej kolejnosci, bo to jedyna rzecz, ktora latwo przestawic przy refaktorze,
a partnerzy podali ja wprost.

Skad material:
- HOROSKOP liczymy TU NA NOWO z danych formularza, zamiast go zapamietywac.
  To czysta funkcja wejscia — tanio powtorzyc, a odpada trzymanie w przegladarce
  duzego wyniku, ktory moglby sie rozjechac z aktualnym formularzem.
- INTERPRETACJA NATALNA — nowy natal.js, odpowiednik predictions.js. Natalna jest
  JEDNA (dotyczy momentu urodzenia, nie okresu), wiec ponowne wygenerowanie
  podmienia slot zamiast dokladac wpis.
- PREDYKCJE — z magazynu z PRE-22.

compile.js czyta magazyny przez ICH API (window.astrololoNatal /
astrololoPredictions), a nie siegajac wprost do localStorage — format danych ma
jednego wlasciciela: modul, ktory je zapisuje. Test tego pilnuje.

Zakladka MOWI, CZEGO BRAKUJE: panel gotowosci z trzema pozycjami i podpowiedzia,
na ktorej zakladce uzupelnic. Bez tego uzytkownik zlozylby niekompletny raport
i dowiedzialby sie o tym dopiero po otwarciu PDF-a.

Tresc od modelu jest ESKEJPOWANA przed wstawieniem do DOM — to tekst z zewnatrz,
wiec bez tego mielibysmy wektor wstrzykniecia.

Weryfikacja na zywej aplikacji: dwie predykcje zapisane w Kalendarzu, natalna
w Interpretacjach, obie odczytane na Skompiluj (panel: brak horoskopu na zolto,
dwa pozostale na zielono). Po zlozeniu wszystkie trzy zielone, a raport zaczyna
sie od „Jan Kowalski" i danych wejsciowych. Kolejnosc sekcji sprawdzona na
wyrenderowanym HTML: naglowek 2931 < dane 3033 < kosmogram 3158 < natalna 26544
< predykcje 26575.

Testy: 16 nowych. Poprawione tez trzy wlasne testy, ktore lapaly nazwy plikow
w KOMENTARZACH zamiast w tagach skryptow. Calosc: prezentacja 117 passed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
gitea merged commit 6c9029c496 into master 2026-07-24 19:20:40 +00:00
gitea deleted branch feat/pre23-compile-tab 2026-07-24 19:20:41 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: gitea/astrololo#31