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>
This commit is contained in:
118
.paul/phases/01-historia-cen/01-02-SUMMARY.md
Normal file
118
.paul/phases/01-historia-cen/01-02-SUMMARY.md
Normal file
@@ -0,0 +1,118 @@
|
||||
---
|
||||
phase: 01-historia-cen
|
||||
plan: 02
|
||||
subsystem: ui
|
||||
tags: [popup, modal, ajax, vanilla-js, scss, css, widget]
|
||||
|
||||
requires:
|
||||
- phase: 01-historia-cen
|
||||
plan: 01
|
||||
provides: AJAX endpoint apartamenty_get_price_history + wp_localize_script (apartamentsData)
|
||||
|
||||
provides:
|
||||
- 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
|
||||
|
||||
affects: []
|
||||
|
||||
tech-stack:
|
||||
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
|
||||
|
||||
key-files:
|
||||
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
|
||||
|
||||
key-decisions:
|
||||
- "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"
|
||||
|
||||
patterns-established:
|
||||
- "Popup globalny poza pętlą — jeden egzemplarz na stronę, wypełniany przez JS"
|
||||
- "Vanilla JS fetch z FormData dla AJAX WordPress (bez jQuery)"
|
||||
|
||||
duration: ~30min
|
||||
started: 2026-03-12T00:00:00Z
|
||||
completed: 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-m2` → `price-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*
|
||||
Reference in New Issue
Block a user