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:
45
.paul/MILESTONES.md
Normal file
45
.paul/MILESTONES.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# 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 |
|
||||
|
||||
---
|
||||
Reference in New Issue
Block a user