feat(v1.5): complete phases 40-43 workflow cleanup
This commit is contained in:
167
.paul/phases/40-remove-order-list-bulk-print/40-01-PLAN.md
Normal file
167
.paul/phases/40-remove-order-list-bulk-print/40-01-PLAN.md
Normal file
@@ -0,0 +1,167 @@
|
||||
---
|
||||
phase: 40-remove-order-list-bulk-print
|
||||
plan: 01
|
||||
type: execute
|
||||
wave: 1
|
||||
depends_on: []
|
||||
files_modified:
|
||||
- src/Modules/Orders/OrdersController.php
|
||||
- resources/views/orders/list.php
|
||||
- src/Modules/Printing/PrintApiController.php
|
||||
- src/Modules/Printing/PrintJobRepository.php
|
||||
- routes/web.php
|
||||
- DOCS/ARCHITECTURE.md
|
||||
- DOCS/TECH_CHANGELOG.md
|
||||
- DOCS/todo.md
|
||||
autonomous: true
|
||||
---
|
||||
|
||||
<objective>
|
||||
## Goal
|
||||
Zrealizowac punkt 40 z `DOCS/todo.md`: usunac przycisk `Drukuj etykiety` z widoku `/orders/list` wraz z calym mechanizmem bulk print, ktory byl uruchamiany z listy zamowien.
|
||||
|
||||
## Purpose
|
||||
Interfejs listy zamowien ma byc prostszy i zgodny z aktualnym procesem pracy (druk z poziomu szczegolow zamowienia / kolejek), bez dodatkowej akcji masowej, ktora ma zostac wycofana.
|
||||
|
||||
## Output
|
||||
Usuniety przycisk i JS bulk print w `orders/list`, wycofany endpoint bulk drukowania, oczyszczony backend z nieuzywanego kodu oraz zaktualizowana dokumentacja i status TODO.
|
||||
</objective>
|
||||
|
||||
<context>
|
||||
## Project Context
|
||||
@.paul/PROJECT.md
|
||||
@.paul/ROADMAP.md
|
||||
@.paul/STATE.md
|
||||
@DOCS/todo.md
|
||||
@DOCS/ARCHITECTURE.md
|
||||
@DOCS/DB_SCHEMA.md
|
||||
|
||||
## Prior Work (only if genuinely needed)
|
||||
@.paul/phases/19-ui-integration/19-01-SUMMARY.md
|
||||
|
||||
## Source Files
|
||||
@src/Modules/Orders/OrdersController.php
|
||||
@resources/views/orders/list.php
|
||||
@src/Modules/Printing/PrintApiController.php
|
||||
@src/Modules/Printing/PrintJobRepository.php
|
||||
@routes/web.php
|
||||
</context>
|
||||
|
||||
<skills>
|
||||
## Required Skills (from SPECIAL-FLOWS.md)
|
||||
|
||||
| Skill | Priority | When to Invoke | Loaded? |
|
||||
|-------|----------|----------------|---------|
|
||||
| `sonar-scanner` | required | Po APPLY, przed UNIFY | o |
|
||||
| /code-review | optional | Po implementacji, przed UNIFY | o |
|
||||
|
||||
**BLOCKING:** Required skills MUST be loaded before APPLY proceeds.
|
||||
|
||||
## Skill Invocation Checklist
|
||||
- [ ] `sonar-scanner` uruchomiony po APPLY
|
||||
- [ ] /code-review (opcjonalnie)
|
||||
</skills>
|
||||
|
||||
<acceptance_criteria>
|
||||
|
||||
## AC-1: Brak akcji bulk print na liscie zamowien
|
||||
```gherkin
|
||||
Given uzytkownik otwiera /orders/list
|
||||
When renderuje sie pasek akcji tabeli
|
||||
Then przycisk "Drukuj etykiety" nie jest dostepny
|
||||
And nie ma aktywnego JS, ktory wysyla bulk request do /api/print/jobs/bulk
|
||||
```
|
||||
|
||||
## AC-2: Mechanizm bulk print zostal wycofany z backendu
|
||||
```gherkin
|
||||
Given aplikacja po wdrozeniu
|
||||
When kod backendu jest przegladany pod endpoint bulk print
|
||||
Then trasa /api/print/jobs/bulk oraz jej obsluga nie wystepuja
|
||||
And nie zostaja referencje do logiki mapowania order_ids -> package_ids dla tego use case
|
||||
```
|
||||
|
||||
## AC-3: Dokumentacja i TODO sa aktualne
|
||||
```gherkin
|
||||
Given zmiana punktu 40 jest zakonczona
|
||||
When sprawdzane sa pliki dokumentacyjne
|
||||
Then ARCHITECTURE i TECH_CHANGELOG opisuja usuniecie bulk print z listy zamowien
|
||||
And punkt 40 w DOCS/todo.md jest oznaczony jako wykonany
|
||||
```
|
||||
|
||||
</acceptance_criteria>
|
||||
|
||||
<tasks>
|
||||
|
||||
<task type="auto">
|
||||
<name>Task 1: Usun akcje UI "Drukuj etykiety" z listy zamowien</name>
|
||||
<files>src/Modules/Orders/OrdersController.php, resources/views/orders/list.php</files>
|
||||
<action>
|
||||
Usun definicje `header_actions` z przyciskiem `js-bulk-print-labels` w `OrdersController::index()`.
|
||||
W `resources/views/orders/list.php` usun blok JavaScript odpowiedzialny za obsluge bulk print (`fetch('/api/print/jobs/bulk'...)`).
|
||||
Zachowaj pozostale skrypty listy (np. hover podgladu obrazkow).
|
||||
</action>
|
||||
<verify>rg -n "js-bulk-print-labels|/api/print/jobs/bulk|Drukuj etykiety" src/Modules/Orders/OrdersController.php resources/views/orders/list.php</verify>
|
||||
<done>AC-1 satisfied: UI i JS bulk print na /orders/list nie istnieja.</done>
|
||||
</task>
|
||||
|
||||
<task type="auto">
|
||||
<name>Task 2: Wycofaj endpoint bulk print i martwy kod backendowy</name>
|
||||
<files>src/Modules/Printing/PrintApiController.php, src/Modules/Printing/PrintJobRepository.php, routes/web.php</files>
|
||||
<action>
|
||||
Usun trase `POST /api/print/jobs/bulk` z `routes/web.php`.
|
||||
Usun metode `bulkCreateJobs()` z `PrintApiController`.
|
||||
Usun z repozytorium nieuzywana metode `findPackagesWithLabelsByOrderIds()` oraz powiazane referencje.
|
||||
Nie zmieniaj endpointu `POST /api/print/jobs` (druk pojedynczy musi zostac).
|
||||
</action>
|
||||
<verify>rg -n "/api/print/jobs/bulk|bulkCreateJobs|findPackagesWithLabelsByOrderIds" src routes</verify>
|
||||
<done>AC-2 satisfied: bulk mechanizm jest usuniety end-to-end.</done>
|
||||
</task>
|
||||
|
||||
<task type="auto">
|
||||
<name>Task 3: Aktualizuj dokumentacje techniczna i status TODO</name>
|
||||
<files>DOCS/ARCHITECTURE.md, DOCS/TECH_CHANGELOG.md, DOCS/todo.md</files>
|
||||
<action>
|
||||
Dodaj wpisy o dekomisji bulk print z listy zamowien.
|
||||
Oznacz punkt 40 jako wykonany.
|
||||
Opis ma wskazac, ze druk etykiet pozostaje dostepny przez mechanizmy jednostkowe (szczegoly zamowienia / przygotowanie przesylki).
|
||||
</action>
|
||||
<verify>rg -n "40\.|bulk print|Drukuj etykiety|/orders/list" DOCS/ARCHITECTURE.md DOCS/TECH_CHANGELOG.md DOCS/todo.md</verify>
|
||||
<done>AC-3 satisfied: dokumentacja i TODO sa zgodne ze stanem kodu.</done>
|
||||
</task>
|
||||
|
||||
</tasks>
|
||||
|
||||
<boundaries>
|
||||
|
||||
## DO NOT CHANGE
|
||||
- `database/migrations/*`
|
||||
- Endpointy API key dla klienta Windows (`/api/print/jobs/pending`, `/api/print/jobs/{id}/download`, `/api/print/jobs/{id}/complete`)
|
||||
- Mechanizm drukowania pojedynczej etykiety (`POST /api/print/jobs`)
|
||||
|
||||
## SCOPE LIMITS
|
||||
- Zakres obejmuje tylko usuniecie bulk print uruchamianego z `/orders/list`.
|
||||
- Bez redesignu tabeli zamowien i bez zmian w innych akcjach bulk.
|
||||
- Bez dodawania nowych funkcji drukowania.
|
||||
|
||||
</boundaries>
|
||||
|
||||
<verification>
|
||||
Before declaring plan complete:
|
||||
- [ ] `C:\xampp\php\php.exe -l src/Modules/Orders/OrdersController.php`
|
||||
- [ ] `C:\xampp\php\php.exe -l src/Modules/Printing/PrintApiController.php`
|
||||
- [ ] `C:\xampp\php\php.exe -l src/Modules/Printing/PrintJobRepository.php`
|
||||
- [ ] `C:\xampp\php\php.exe -l routes/web.php`
|
||||
- [ ] `rg -n "js-bulk-print-labels|/api/print/jobs/bulk|bulkCreateJobs" src resources/views routes`
|
||||
- [ ] Dokumentacja (`DOCS/ARCHITECTURE.md`, `DOCS/TECH_CHANGELOG.md`, `DOCS/todo.md`) zaktualizowana
|
||||
- [ ] All acceptance criteria met
|
||||
</verification>
|
||||
|
||||
<success_criteria>
|
||||
- Bulk print z listy zamowien zostal calkowicie usuniety (UI + backend)
|
||||
- Brak regresji w pojedynczym drukowaniu etykiet
|
||||
- Dokumentacja odzwierciedla nowy stan
|
||||
</success_criteria>
|
||||
|
||||
<output>
|
||||
After completion, create `.paul/phases/40-remove-order-list-bulk-print/40-01-SUMMARY.md`
|
||||
</output>
|
||||
131
.paul/phases/40-remove-order-list-bulk-print/40-01-SUMMARY.md
Normal file
131
.paul/phases/40-remove-order-list-bulk-print/40-01-SUMMARY.md
Normal file
@@ -0,0 +1,131 @@
|
||||
---
|
||||
phase: 40-remove-order-list-bulk-print
|
||||
plan: 01
|
||||
subsystem: ui
|
||||
tags: [orders, printing, cleanup, routing]
|
||||
requires:
|
||||
- phase: 19-ui-integration
|
||||
provides: bulk print from orders list and print queue API wiring
|
||||
provides:
|
||||
- removal of bulk print action from /orders/list
|
||||
- removal of /api/print/jobs/bulk endpoint and dead backend code
|
||||
affects: [orders-list, printing-api, technical-docs]
|
||||
tech-stack:
|
||||
added: [none]
|
||||
patterns: [feature decommission cleanup]
|
||||
key-files:
|
||||
created:
|
||||
- .paul/phases/40-remove-order-list-bulk-print/40-01-SUMMARY.md
|
||||
modified:
|
||||
- src/Modules/Orders/OrdersController.php
|
||||
- resources/views/orders/list.php
|
||||
- src/Modules/Printing/PrintApiController.php
|
||||
- src/Modules/Printing/PrintJobRepository.php
|
||||
- routes/web.php
|
||||
- DOCS/ARCHITECTURE.md
|
||||
- DOCS/TECH_CHANGELOG.md
|
||||
- DOCS/todo.md
|
||||
key-decisions:
|
||||
- "Bulk print from order list deprecated in favor of single-print flow"
|
||||
- "Proceed with APPLY via override without sonar-scanner (logged risk)"
|
||||
patterns-established:
|
||||
- "When decommissioning features, remove UI + route + controller + repository references"
|
||||
duration: 12min
|
||||
started: 2026-03-25T22:17:00+01:00
|
||||
completed: 2026-03-25T22:32:00+01:00
|
||||
---
|
||||
|
||||
# Phase 40 Plan 01: Remove Order List Bulk Print Summary
|
||||
|
||||
**Usunieto mechanizm bulk print z listy zamowien, pozostawiajac druk pojedynczej etykiety i API klienta Windows bez regresji.**
|
||||
|
||||
## Performance
|
||||
|
||||
| Metric | Value |
|
||||
|--------|-------|
|
||||
| Duration | 12 min |
|
||||
| Started | 2026-03-25T22:17:00+01:00 |
|
||||
| Completed | 2026-03-25T22:32:00+01:00 |
|
||||
| Tasks | 3 completed |
|
||||
| Files modified | 11 |
|
||||
|
||||
## Acceptance Criteria Results
|
||||
|
||||
| Criterion | Status | Notes |
|
||||
|-----------|--------|-------|
|
||||
| AC-1: Brak akcji bulk print na liscie zamowien | Pass | Usuniety przycisk `Drukuj etykiety` i JS bulk request z `orders/list.php`. |
|
||||
| AC-2: Mechanizm bulk print wycofany z backendu | Pass | Usunieta trasa `/api/print/jobs/bulk`, metoda kontrolera i martwa metoda repozytorium. |
|
||||
| AC-3: Dokumentacja i TODO aktualne | Pass | `DOCS/ARCHITECTURE.md`, `DOCS/TECH_CHANGELOG.md`, `DOCS/todo.md` zaktualizowane; punkt 40 oznaczony jako wykonany. |
|
||||
|
||||
## Accomplishments
|
||||
|
||||
- Oczyszczono UI listy zamowien z akcji bulk print i powiazanej logiki JS.
|
||||
- Oczyszczono backend drukowania z endpointu i kodu dedykowanego bulk print.
|
||||
- Zaktualizowano dokumentacje techniczna i status zadania 40 w TODO.
|
||||
|
||||
## Verification Results
|
||||
|
||||
- `C:\xampp\php\php.exe -l src/Modules/Orders/OrdersController.php` -> PASS
|
||||
- `C:\xampp\php\php.exe -l src/Modules/Printing/PrintApiController.php` -> PASS
|
||||
- `C:\xampp\php\php.exe -l src/Modules/Printing/PrintJobRepository.php` -> PASS
|
||||
- `C:\xampp\php\php.exe -l routes/web.php` -> PASS
|
||||
- `rg -n "js-bulk-print-labels|/api/print/jobs/bulk|bulkCreateJobs|findPackagesWithLabelsByOrderIds" src resources/views routes` -> PASS (brak wynikow)
|
||||
|
||||
## Files Created/Modified
|
||||
|
||||
| File | Change | Purpose |
|
||||
|------|--------|---------|
|
||||
| `.paul/phases/40-remove-order-list-bulk-print/40-01-SUMMARY.md` | Created | Podsumowanie UNIFY planu 40-01 |
|
||||
| `src/Modules/Orders/OrdersController.php` | Modified | Usuniecie przycisku bulk print z `header_actions` |
|
||||
| `resources/views/orders/list.php` | Modified | Usuniecie front-endowego mechanizmu bulk print |
|
||||
| `src/Modules/Printing/PrintApiController.php` | Modified | Usuniecie `bulkCreateJobs()` |
|
||||
| `src/Modules/Printing/PrintJobRepository.php` | Modified | Usuniecie martwej metody pomocniczej bulk print |
|
||||
| `routes/web.php` | Modified | Usuniecie trasy `POST /api/print/jobs/bulk` |
|
||||
| `DOCS/ARCHITECTURE.md` | Modified | Aktualizacja opisu flow listy zamowien |
|
||||
| `DOCS/TECH_CHANGELOG.md` | Modified | Wpis changelog dla fazy 40 |
|
||||
| `DOCS/todo.md` | Modified | Oznaczenie punktu 40 jako wykonany |
|
||||
| `.paul/STATE.md` | Modified | Aktualizacja APPLY/UNIFY i decyzji override |
|
||||
| `.paul/ROADMAP.md` | Modified | Status fazy 40 jako complete |
|
||||
|
||||
## Decisions Made
|
||||
|
||||
| Decision | Rationale | Impact |
|
||||
|----------|-----------|--------|
|
||||
| Usunac bulk print z listy zamowien end-to-end | Wymaganie biznesowe z TODO #40 i uproszczenie flow | Brak akcji masowej na `/orders/list`, mniejsza zlozonosc kodu |
|
||||
| Wykonac APPLY z override dla wymaganego `sonar-scanner` | Uzytkownik jawnie potwierdzil override | Ryzyko quality-check przeniesione do kolejnego etapu (odnotowane w STATE) |
|
||||
|
||||
## Deviations from Plan
|
||||
|
||||
### Summary
|
||||
|
||||
| Type | Count | Impact |
|
||||
|------|-------|--------|
|
||||
| Auto-fixed | 1 | Niski - poprawa sposobu edycji pliku z powodu problemu kodowania |
|
||||
| Scope additions | 0 | Brak |
|
||||
| Deferred | 1 | Niski - sonar przeniesiony poza APPLY |
|
||||
|
||||
**Total impact:** Minimalny, bez scope creep funkcjonalnego.
|
||||
|
||||
### Auto-fixed Issues
|
||||
|
||||
1. `apply_patch` nie dopasowal bloku JS w `orders/list.php` z powodu artefaktow kodowania; blok zostal bezpiecznie usuniety przez precyzyjna zamiane regex w PowerShell.
|
||||
|
||||
### Deferred Items
|
||||
|
||||
- `sonar-scanner` (required in SPECIAL-FLOWS) nieuruchomiony w APPLY 40-01 na podstawie jawnego `override`; decyzja wpisana do `STATE.md`.
|
||||
|
||||
## Next Phase Readiness
|
||||
|
||||
**Ready:**
|
||||
- Faza 40 domknieta technicznie i dokumentacyjnie.
|
||||
- Kod gotowy do planowania/wykonania fazy 41.
|
||||
|
||||
**Concerns:**
|
||||
- Warto uruchomic `sonar-scanner` przy kolejnym domknieciu loopa, aby zamknac gap quality.
|
||||
|
||||
**Blockers:**
|
||||
- None.
|
||||
|
||||
---
|
||||
*Phase: 40-remove-order-list-bulk-print, Plan: 01*
|
||||
*Completed: 2026-03-25*
|
||||
Reference in New Issue
Block a user