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>
46 lines
1.7 KiB
Markdown
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 |
|
|
|
|
---
|