Files
wyszynskiego12.pagedev.pl/.paul/phases/01-historia-cen/01-02-SUMMARY.md
Jacek Pyziak 972c69b136 feat(v0.1): historia cen + jawnosc cen — milestone Initial Release
Historia cen:
- Tabela wp_price_history z WP Cronem dziennym (snapshot cen)
- AJAX endpoint apartamenty_get_price_history (zabezpieczony nonce)
- Popup "Historia cen" w widgecie — vanilla JS, modal zgodny z projektem

Jawnosc cen:
- Endpointy /ceny-mieszkan.xml + /dane-gov-pl.xml (XSD-compliant)
- Pliki MD5 dla obu XML
- Strona admina: Narzedzia -> Jawnosc Cen z URL-ami do Ministerstwa
- Transient cache 1h z inwalidacja przez cron

Dokumentacja: docs/readme.md + docs/jawnosc-cen.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-12 15:40:29 +01:00

3.9 KiB

phase, plan, subsystem, tags, requires, provides, affects, tech-stack, key-files, key-decisions, patterns-established, duration, started, completed
phase plan subsystem tags requires provides affects tech-stack key-files key-decisions patterns-established duration started completed
01-historia-cen 02 ui
popup
modal
ajax
vanilla-js
scss
css
widget
phase plan provides
01-historia-cen 01 AJAX endpoint apartamenty_get_price_history + wp_localize_script (apartamentsData)
popup „Historia cen" z danymi AJAX na stronie /apartamenty/
przycisk .btn-historia-cen z data-post-id w widgecie
style .price-history-modal / .price-history-overlay w main.scss + main.css
JS handler
fetch AJAX → render modal → open/close
added patterns
Globalny popup (jeden egzemplarz poza pętlą while) wypełniany przez JS
Vanilla JS fetch + FormData zamiast jQuery AJAX
CSS class toggle (is-open) zamiast display inline
modified
wp-content/plugins/elementor-addon/widgets/apartaments.php
wp-content/plugins/elementor-addon/assets/css/main.scss
wp-content/plugins/elementor-addon/assets/css/main.css
wp-content/plugins/elementor-addon/assets/js/main.js
ID price-history-sqm zamiast price-history-price-m2 — spójna zmiana w HTML i JS
max-height + overflow-y:auto na .price-history-modal__table-wrap — scroll gdy dużo historii
Popup globalny poza pętlą — jeden egzemplarz na stronę, wypełniany przez JS
Vanilla JS fetch z FormData dla AJAX WordPress (bez jQuery)
~30min 2026-03-12T00:00:00Z 2026-03-12T00:30:00Z

Faza 01 Plan 02: Popup Historia Cen — Summary

Klikalny modal „Historia cen" na kartach apartamentów — AJAX, vanilla JS, CSS zgodny z projektem.

Performance

Metric Value
Duration ~30 min
Started 2026-03-12
Completed 2026-03-12
Tasks 3 auto + 1 checkpoint
Files modified 4

Acceptance Criteria Results

Criterion Status Notes
AC-1: Przycisk klikalny z data-post-id Pass .btn-historia-cen[data-post-id] w każdym wierszu
AC-2: Popup otwiera się z danymi Pass Tytuł, cena brutto, cena m², tabela historii z AJAX
AC-3: Popup zamyka się Pass X, klik overlay, Escape — wszystkie działają
AC-4: Stan ładowania i błędu Pass „Ładowanie..." przy otwarciu, „Brak danych" / „Błąd ładowania" przy problemach
AC-5: Pusta historia Pass <td colspan="3">Brak historii cen</td> gdy historia pusta

Accomplishments

  • Modal popup bez bibliotek zewnętrznych — vanilla JS + CSS
  • Jeden egzemplarz popupa na stronę (poza pętlą while) — poprawna architektura
  • Scroll w tabeli historii (max-height: 40vh; overflow-y: auto) gdy dużo wpisów
  • Stan ładowania i pełna obsługa błędów AJAX

Files Created/Modified

File Change Purpose
widgets/apartaments.php Modified Dodano .btn-historia-cen + data-post-id + popup HTML
assets/css/main.scss Modified Dodano style .price-history-overlay i .price-history-modal
assets/css/main.css Modified Skompilowana wersja CSS (append)
assets/js/main.js Modified Dodano obsługę AJAX + open/close popupa

Decisions Made

Decision Rationale Impact
ID price-history-sqm zamiast price-history-price-m2 Krótsza nazwa, spójna w HTML i JS Brak wpływu na działanie
max-height + overflow-y:auto na tabeli Ochrona przed bardzo długą historią cen Lepsze UX przy wielu wpisach

Deviations from Plan

Type Opis Impact
Auto-fixed ID price-history-price-m2price-history-sqm Kosmetyczna, HTML i JS spójne

Issues Encountered

None.

Next Phase Readiness

Ready:

  • Faza 01 kompletna — oba plany (01-01 i 01-02) ukończone
  • Milestone v0.1 ma ukończone obie fazy (01 i 02)

Concerns:

  • None

Blockers:

  • None

Phase: 01-historia-cen, Plan: 02 Completed: 2026-03-12