Fixes static container admin edit flow by preserving id in hiddenFields and adding route-id fallback during save. Adds regression tests for edit/create id behavior, updates release docs (changelog/testing/CLAUDE), and appends SonarQube open issues to docs/TODO. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3.5 KiB
3.5 KiB
phase, plan, subsystem, tags, requires, provides, affects, tech-stack, key-files, key-decisions, patterns-established, duration, completed
| phase | plan | subsystem | tags | requires | provides | affects | tech-stack | key-files | key-decisions | patterns-established | duration | completed | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 15-scontainers-edit-save-fix | 01 | admin |
|
|
|
|
|
|
~20min | 2026-04-18 |
Phase 15 Plan 01: Scontainers edit save fix - Summary
Naprawiono regresje, przez ktora edycja kontenera statycznego tworzyla nowy rekord zamiast aktualizacji istniejacego ID.
Performance
| Metric | Value |
|---|---|
| Duration | ~20min |
| Completed | 2026-04-18 |
| Tasks | 3 completed |
| Files modified | 2 |
Acceptance Criteria Results
| Criterion | Status | Notes |
|---|---|---|
| AC-1: Edycja nie tworzy nowego kontenera | Pass | id jest zawsze przenoszone przez hiddenFields + fallback z URL przy braku w POST |
| AC-2: Tworzenie nowego kontenera nadal dziala | Pass | Dla create id=0, action pozostaje /admin/scontainers/save/ |
| AC-3: API legacy JSON pozostaje bez zmian | Pass | Sciezka values (legacy) nie byla modyfikowana |
Accomplishments
- Przeniesiono
iddohiddenFieldswScontainersController::buildFormViewModel(), co eliminuje gubienieidw formularzu tabowanym. - Dodano defensywny fallback na
idz parametru trasy wScontainersController::save(). - Dodano 2 testy regresyjne dla mapowania
idi create-flow.
Files Created/Modified
| File | Change | Purpose |
|---|---|---|
autoload/admin/Controllers/ScontainersController.php |
Modified | Stabilne przekazywanie id dla update oraz fallback route id |
tests/Unit/admin/Controllers/ScontainersControllerTest.php |
Modified | Testy regresyjne dla hiddenFields i create flow |
Decisions Made
| Decision | Rationale | Impact |
|---|---|---|
Uzyc hiddenFields zamiast FormField::hidden('id') |
Hidden field w tabbed form moze nie byc renderowany w aktywnej strukturze pol | Brak tworzenia duplikatow przy edycji |
Dodac fallback id z URL w save() |
Dodatkowa odpornosc na brak id w payloadzie |
Bezpieczny update dla /admin/scontainers/save/id={id} |
Deviations from Plan
Brak istotnych odchylen implementacyjnych.
Skill audit:
/feature-dev- pominiety na prosbe uzytkownika (override zapisany w STATE.md)/koniec-pracy- wymaganie zmapowane na.claude/commands/koniec-pracy.md
Issues Encountered
| Issue | Resolution |
|---|---|
Brak test.ps1 w workspace |
Test uruchomiony bezposrednio przez php phpunit.phar ... |
Verification Results
php phpunit.phar tests/Unit/admin/Controllers/ScontainersControllerTest.php- Wynik:
OK (6 tests, 20 assertions)
Next Phase Readiness
Ready:
- Problem zapisu scontainers naprawiony na poziomie kontrolera.
- Testy regresyjne zabezpieczaja krytyczny przypadek.
Concerns:
- Manualna weryfikacja UI edycji/create nadal wskazana po stronie panelu admin.
Blockers:
- None.
Phase: 15-scontainers-edit-save-fix, Plan: 01 Completed: 2026-04-18