Files
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

4.2 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
02-jawnosc-cen 01 api
xml
rewrite-rules
wp-cron
transient
admin-page
dane.gov.pl
phase provides
01-historia-cen tabela wp_price_history + cron dzienny apartamenty_record_prices + pola ACF
publiczny endpoint /ceny-mieszkan.xml z cenami i historią cen
publiczny endpoint /ceny-mieszkan.md5
publiczny endpoint /dane-gov-pl.xml (katalog XSD-compliant)
publiczny endpoint /dane-gov-pl.md5
strona wp-admin
Narzędzia → Jawność Cen
added patterns
WP rewrite rules + query_vars dla custom XML endpoints
Transient cache z inwalidacją przez cron
XML generowany jako czysty PHP string z htmlspecialchars(ENT_XML1)
created modified
docs/jawnosc-cen.md
wp-content/plugins/elementor-addon/elementor-addon.php
XML jako czysty PHP string zamiast DOMDocument — brak zależności od ext-dom
Transient cache 1h — inwalidowany przez istniejący cron dzienny
Wszystko w jednym pliku pluginu — zgodnie z boundaries planu
Endpointy XML przez add_rewrite_rule() + query_vars + template_redirect
Cache przez set_transient/get_transient z delete_transient w cronie
~30min 2026-03-12T00:00:00Z 2026-03-12T00:30:00Z

Faza 02 Plan 01: Jawność Cen — XML Endpoints — Summary

Publiczne endpointy XML cen apartamentów + katalog dane.gov.pl + strona admina do zgłoszenia do Ministerstwa.

Performance

Metric Value
Duration ~30 min
Started 2026-03-12
Completed 2026-03-12
Tasks 3 auto + 1 checkpoint
Files modified 1 (elementor-addon.php)
Files created 1 (docs/jawnosc-cen.md)

Acceptance Criteria Results

Criterion Status Notes
AC-1: Endpoint cen mieszkań dostępny Pass /ceny-mieszkan.xml zwraca HTTP 200, Content-Type: application/xml, struktura poprawna
AC-2: MD5 companions poprawne Pass /ceny-mieszkan.md5 i /dane-gov-pl.md5 zwracają 32-znakowy lowercase hex
AC-3: Katalog dane.gov.pl zgodny z XSD Pass /dane-gov-pl.xml zawiera , URL w wskazuje na /ceny-mieszkan.xml
AC-4: Strona administracyjna z URL-ami Pass Narzędzia → Jawność Cen widoczne, URL-e i przyciski działają

Accomplishments

  • Cztery publiczne endpointy XML wdrożone przez WP rewrite rules — bez konfiguracji serwera
  • Transient cache 1h z automatyczną inwalidacją przy cronie dziennym
  • Strona admina z URL-ami gotowymi do skopiowania i zgłoszenia do Ministerstwa
  • Dokumentacja klienta w docs/jawnosc-cen.md — co i jak zgłosić do dane.gov.pl

Files Created/Modified

File Change Purpose
wp-content/plugins/elementor-addon/elementor-addon.php Modified +250 linii: rewrite rules, XML generators, template_redirect, admin page
docs/jawnosc-cen.md Created Instrukcja dla klienta: co zbudowano + kroki po stronie Ministerstwa

Decisions Made

Decision Rationale Impact
XML przez czysty PHP string (htmlspecialchars ENT_XML1) zamiast DOMDocument Brak gwarancji że ext-dom jest dostępne na hostingu Bezpieczniejsze, działa wszędzie
Cache transient 1h, inwalidowany przez cron Cron i tak działa raz dziennie — cache nie ma sensu trzymać dłużej niż 1h w razie ręcznych zmian Balans między wydajnością a świeżością danych
Wszystko w elementor-addon.php Zgodnie z boundaries — nie tworzyć osobnych plików Mniej plików do zarządzania

Deviations from Plan

None — plan wykonany dokładnie zgodnie ze specyfikacją.

Issues Encountered

None.

Next Phase Readiness

Ready:

  • Faza 02 kompletna — oba plany tej fazy nie istnieją (był tylko 02-01)
  • Milestone v0.1 czeka na: plan 01-02 (widget HTML + CSS popup + JS handler)

Concerns:

  • Plan 01-02 z fazy 01-historia-cen wciąż oczekuje na APPLY — należy go wykonać

Blockers:

  • None dla fazy 02
  • Plan 01-02 (faza 01) nadal nie wykonany — jeśli popup historii cen jest wymagany do v0.1

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