Files
wyszynskiego12.pagedev.pl/.paul/MILESTONES.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

46 lines
1.7 KiB
Markdown

# Milestones
Completed milestone log for this project.
| Milestone | Completed | Duration | Stats |
|-----------|-----------|----------|-------|
| v0.1 Initial Release | 2026-03-12 | 1 dzień | 2 fazy, 3 plany, 6 plików |
---
## ✅ v0.1 Initial Release
**Completed:** 2026-03-12
**Duration:** 1 dzień
### Stats
| Metric | Value |
|--------|-------|
| Phases | 2 |
| Plans | 3 |
| Files changed | 6 |
### Key Accomplishments
- Tabela `wp_price_history` z WP Cronem dziennym — automatyczny snapshot cen wszystkich apartamentów
- AJAX endpoint `apartamenty_get_price_history` zabezpieczony nonce — historia cen jako JSON
- Popup „Historia cen" w widgecie — vanilla JS, modal zgodny z projektem (Barlow, #192c44)
- Cztery publiczne endpointy XML: `/ceny-mieszkan.xml`, `/ceny-mieszkan.md5`, `/dane-gov-pl.xml`, `/dane-gov-pl.md5`
- Katalog XSD-compliant dla portalu dane.gov.pl z automatycznym URL przez `home_url()`
- Strona admina wp-admin → Narzędzia → Jawność Cen z URL-ami do skopiowania
- Transient cache XML (1h) z inwalidacją przy każdym cronie
- Dokumentacja klienta w `docs/jawnosc-cen.md` — instrukcja zgłoszenia do Ministerstwa
### Key Decisions
| Decyzja | Uzasadnienie |
|---------|--------------|
| Flat ACF meta keys zamiast `get_field('information')` | ACF zapisuje dane jako płaskie klucze — bezpośredni `get_post_meta` |
| INSERT IGNORE w cronie | Historia to snapshot — jeden rekord na apt na dzień, idempotentny |
| XML jako czysty PHP string (ENT_XML1) | Brak gwarancji ext-dom na hostingu |
| Transient 1h + inwalidacja przez cron | Balans między wydajnością a świeżością danych |
| Wszystko w elementor-addon.php | Scope limit z planu — brak osobnych plików |
---