fix: Custom fields delete bug — usunięcie wszystkich pól produktu nie działało

Dodano hidden marker custom_field_name_present w formularzu edycji produktu.
Zmieniono warunek w ProductRepository z array_key_exists('custom_field_name')
na array_key_exists('custom_field_name_present') — jQuery .serialize() pomijał
klucz pustej tablicy gdy wszystkie pola usunięte. Test jednostkowy dodany.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jacek
2026-04-16 22:51:57 +02:00
parent b03816e8ec
commit 1ef6dc9092
12 changed files with 318 additions and 19 deletions

View File

@@ -5,25 +5,25 @@
See: .paul/PROJECT.md (updated 2026-03-12)
**Core value:** Właściciel sklepu ma pełną kontrolę nad sprzedażą online w jednym systemie pisanym od podstaw, bez narzutów zewnętrznych platform.
**Current focus:** Phase 13 complete — basket logging + TTL token
**Current focus:** Phase 14 complete — custom fields delete bug fix
## Current Position
Milestone: Hotfix
Phase: 13basket logging + TTL token — Planning
Plan: 13-01 created, awaiting approval
Status: UNIFY complete, phase 13 finished
Last activity: 2026-03-25 — 13-01 UNIFY complete
Phase: 14custom fields delete bug — Complete
Plan: 14-01 complete
Status: UNIFY complete, phase 14 finished
Last activity: 2026-04-16 — 14-01 UNIFY complete
Progress:
- Phase 13: [██████████] 100% (COMPLETE)
- Phase 14: [██████████] 100% (COMPLETE)
## Loop Position
Current loop state (phase 13, plan 01):
Current loop state (phase 14, plan 01):
```
PLAN ──▶ APPLY ──▶ UNIFY
✓ ✓ ✓ [Phase 13 complete]
✓ ✓ ✓ [Phase 14 complete]
```
Previous phases:
@@ -38,6 +38,7 @@ Phase 10: PLAN ──▶ APPLY ──▶ UNIFY ✓ ✓ ✓ [COMPLETE — 2026-
Phase 11: PLAN ──▶ APPLY ──▶ UNIFY ✓ ✓ ✓ [COMPLETE — 2026-03-25]
Phase 12: PLAN ──▶ APPLY ──▶ UNIFY ✓ ✓ ✓ [COMPLETE — 2026-03-25]
Phase 13: PLAN ──▶ APPLY ──▶ UNIFY ✓ ✓ ✓ [COMPLETE — 2026-03-25]
Phase 14: PLAN ──▶ APPLY ──▶ UNIFY ✓ ✓ ✓ [COMPLETE — 2026-04-16]
```
## Accumulated Context
@@ -59,6 +60,7 @@ Phase 13: PLAN ──▶ APPLY ──▶ UNIFY ✓ ✓ ✓ [COMPLETE — 2026-
- 2026-03-25: Token zamówienia z jednorazowego na TTL 30 min — backward compat z plain string
- 2026-03-25: logOrder() — logowanie błędów zamówień do logs/logs-order-YYYY-MM-DD.log
- 2026-03-25: Redirect przy złym tokenie: /koszyk-podsumowanie zamiast /koszyk
- 2026-04-16: Custom fields delete fix — hidden marker `custom_field_name_present` zamiast `array_key_exists('custom_field_name')`
### Deferred Issues
None.
@@ -68,10 +70,10 @@ None.
## Session Continuity
Last session: 2026-03-25
Stopped at: Phase 13 UNIFY complete
Last session: 2026-04-16
Stopped at: Phase 14 UNIFY complete
Next action: /koniec-pracy or next feature
Resume file: .paul/phases/13-basket-logging-ttl-token/13-01-SUMMARY.md
Resume file: .paul/phases/14-custom-fields-delete-bug/14-01-SUMMARY.md
---
*STATE.md — Updated after every significant action*