ver. 0.276: ShopOrder migration, Integrations cleanup, global admin search

This commit is contained in:
2026-02-15 16:37:57 +01:00
parent c0030c3cf3
commit 7cc0cadd6d
34 changed files with 2196 additions and 1063 deletions

View File

@@ -4,6 +4,44 @@ Logi zmian z migracji na Domain-Driven Architecture. Najnowsze na gorze.
---
## ver. 0.277 (2026-02-15) - Stabilizacja ShopOrder + Integrations + Global Search
- **ShopOrder (stabilizacja po migracji)**
- FIX: `Domain\Order\OrderRepository::listForAdmin()` - poprawa zapytan SQL (count/list), bezpieczne fallbacki i poprawne zwracanie listy zamowien w `/admin/shop_order/list/`
- FIX: wyrównanie wysokości komórek w `components/table-list` (`vertical-align` + lokalny override dla `.text-right` w tabeli)
- **Integrations (cleanup)**
- CLEANUP: usunieta fasada `autoload/admin/factory/class.Integrations.php`
- UPDATE: przepięcie wywołań na `Domain\Integrations\IntegrationsRepository` w: `cron.php`, `shop\Order`, `admin\Controllers\ShopPaymentMethodController`, `admin\Controllers\ShopStatusesController`, `admin\Controllers\ShopTransportController`, `admin\controls\ShopProduct`
- **Admin UX**
- NOWE: globalna wyszukiwarka w top-barze (obok "Wyczysc cache") dla produktow i zamowien
- NOWE: endpoint `/admin/settings/globalSearchAjax/` (`SettingsController::globalSearchAjax`)
- FIX: wsparcie wyszukiwania po pełnym imieniu i nazwisku (np. "Jan Kowalski") + poprawka escapingu SQL w `CONCAT_WS`
- TEST:
- Pelny suite: **OK (385 tests, 1246 assertions)**
- Test punktowy: `SettingsControllerTest` **OK (7 tests, 10 assertions)**
---
## ver. 0.276 (2026-02-15) - ShopOrder
- **ShopOrder** - migracja `/admin/shop_order/*` na Domain + DI + nowe widoki
- NOWE: `Domain\Order\OrderRepository` (lista admin z filtrowaniem/sortowaniem, szczegóły, historia statusów, notes, save admin, summary, trustmate, delete)
- NOWE: `Domain\Order\OrderAdminService` (operacje aplikacyjne admin: status/paid/unpaid/resend email/send to apilo/delete)
- NOWE: `admin\Controllers\ShopOrderController` (DI) z akcjami `list/view_list`, `details/order_details`, `edit/order_edit`, `save/order_save`, `notes_save`, `order_status_change`, `order_resend_confirmation_email`, `set_order_as_paid`, `set_order_as_unpaid`, `send_order_to_apilo`, `toggle_trustmate_send`, `delete/order_delete`
- UPDATE: routing DI (`admin\Site`) rozszerzony o modul `ShopOrder`
- UPDATE: menu admin przepiete na kanoniczny URL `/admin/shop_order/list/`
- UPDATE: lista zamówień przepięta z legacy grid na `components/table-list` (`shop-order/orders-list`)
- UPDATE: `shop-order/order-details` i `shop-order/order-edit` przebudowane bez `gridEdit` + wydzielenie JS do `*-custom-script.php`
- UPDATE: `shop\Order::order_statuses()` przepiete na `Domain\ShopStatus\ShopStatusRepository`
- UPDATE: `admin\controls\Dashboard` pobiera statusy przez `Domain\ShopStatus\ShopStatusRepository`
- CLEANUP: usuniete legacy `autoload/admin/controls/class.ShopOrder.php`, `autoload/admin/factory/class.ShopOrder.php`, `admin/templates/shop-order/view-list.php`
- TEST:
- NOWE: `tests/Unit/Domain/Order/OrderRepositoryTest.php`
- NOWE: `tests/Unit/admin/Controllers/ShopOrderControllerTest.php`
- Testy punktowe: **OK (8 tests, 49 assertions)**
---
## ver. 0.275 (2026-02-15) - ShopCategory
- **ShopCategory** - migracja `/admin/shop_category/*` na Domain + DI + nowe endpointy AJAX

View File

@@ -115,6 +115,8 @@ Zamówienia sklepu (źródło danych dla list i szczegółów klientów w panelu
**Aktualizacja 2026-02-15 (ver. 0.274):** moduł `/admin/shop_clients/*` korzysta z `Domain\Client\ClientRepository` przez `admin\Controllers\ShopClientsController`.
**Aktualizacja 2026-02-15 (ver. 0.276):** moduł `/admin/shop_order/*` korzysta z `Domain\Order\OrderRepository` przez `admin\Controllers\ShopOrderController`; usunięto legacy `admin\controls\ShopOrder` i `admin\factory\ShopOrder`.
## pp_banners
Banery.

View File

@@ -253,6 +253,19 @@ autoload/
- `cron.php` automatycznie ponawia zalegle syncy (`Order::process_apilo_sync_queue()`).
- `shop\Order::set_as_paid()` wysyla mapowany typ platnosci Apilo (z mapowania metody platnosci), bez stalej wartosci `type`.
**Aktualizacja 2026-02-15 (ver. 0.276):**
- Dodano modul domenowy `Domain/Order/OrderRepository.php`.
- Dodano serwis aplikacyjny `Domain/Order/OrderAdminService.php`.
- Dodano kontroler DI `admin/Controllers/ShopOrderController.php`.
- Modul `/admin/shop_order/*` dziala na nowych widokach (`orders-list`, `order-details`, `order-edit`).
- Usunieto legacy: `autoload/admin/controls/class.ShopOrder.php`, `autoload/admin/factory/class.ShopOrder.php`, `admin/templates/shop-order/view-list.php`.
**Aktualizacja 2026-02-15 (ver. 0.277):**
- Dodano globalna wyszukiwarke admin w `admin/templates/site/main-layout.php` (produkty + zamowienia).
- Dodano endpoint AJAX `SettingsController::globalSearchAjax()` w `autoload/admin/Controllers/SettingsController.php`.
- Usunieto fasade `autoload/admin/factory/class.Integrations.php`.
- Wywołania integracji przepiete bezposrednio na `Domain/Integrations/IntegrationsRepository.php`.
### Routing admin (admin\Site::route())
1. Sprawdź mapę `$newControllers` → utwórz instancję z DI → wywołaj
2. Jeśli nowy kontroler nie istnieje (`class_exists()` = false) → fallback na `admin\controls\`

View File

@@ -156,6 +156,7 @@ grep -r "Product::getQuantity" .
| 25 | ShopProduct (mass_edit) | 0.274 | DI kontroler + routing dla `mass_edit`, `mass_edit_save`, `get_products_by_category`, cleanup legacy akcji |
| 26 | ShopClients | 0.274 | DI kontroler + routing dla `list/details`, nowe listy na `components/table-list`, cleanup legacy controls/factory |
| 27 | ShopCategory | 0.275 | CategoryRepository + DI kontroler + routing, endpointy AJAX (`save_categories_order`, `save_products_order`, `cookie_categories`), cleanup legacy controls/factory/view |
| 28 | ShopOrder | 0.276 | OrderRepository + OrderAdminService + DI kontroler + routing + nowe widoki (`orders-list`, `order-details`, `order-edit`) + cleanup legacy controls/factory/view-list |
### Product - szczegolowy status
- ✅ getQuantity (ver. 0.238)
@@ -170,15 +171,14 @@ grep -r "Product::getQuantity" .
- [ ] getProductImg
### 📋 Do zrobienia
- Order
- ShopProduct (factory)
## Kolejność refaktoryzacji (priorytet)
1-27: ✅ Cache, Product, Banner, Settings, Dictionaries, ProductArchive, Filemanager, Users, Pages, Integrations, ShopPromotion, ShopCoupon, ShopStatuses, ShopPaymentMethod, ShopTransport, ShopAttribute, ShopProductSets, ShopProducer, ShopProduct (mass_edit), ShopClients, ShopCategory
1-28: ✅ Cache, Product, Banner, Settings, Dictionaries, ProductArchive, Filemanager, Users, Pages, Integrations, ShopPromotion, ShopCoupon, ShopStatuses, ShopPaymentMethod, ShopTransport, ShopAttribute, ShopProductSets, ShopProducer, ShopProduct (mass_edit), ShopClients, ShopCategory, ShopOrder
Nastepne:
28. **Order**
29. **ShopProduct (factory)**
## Form Edit System

View File

@@ -36,7 +36,13 @@ Alternatywnie (Git Bash):
Ostatnio zweryfikowano: 2026-02-15
```text
OK (377 tests, 1197 assertions)
OK (385 tests, 1246 assertions)
```
Aktualizacja po stabilizacji ShopOrder / Integrations / Global Search (2026-02-15, ver. 0.277):
```text
Pelny suite: OK (385 tests, 1246 assertions)
SettingsControllerTest: OK (7 tests, 10 assertions)
```
Aktualizacja po migracji ShopClients (2026-02-15, ver. 0.274) - testy punktowe:
@@ -54,11 +60,18 @@ Pelny suite po migracji ShopCategory (2026-02-15, ver. 0.275):
OK (377 tests, 1197 assertions)
```
Aktualizacja po migracji ShopOrder (2026-02-15, ver. 0.276) - testy punktowe:
```text
OK (8 tests, 49 assertions)
```
Nowe testy dodane 2026-02-15:
- `tests/Unit/Domain/Client/ClientRepositoryTest.php`
- `tests/Unit/admin/Controllers/ShopClientsControllerTest.php`
- `tests/Unit/Domain/Category/CategoryRepositoryTest.php`
- `tests/Unit/admin/Controllers/ShopCategoryControllerTest.php`
- `tests/Unit/Domain/Order/OrderRepositoryTest.php`
- `tests/Unit/admin/Controllers/ShopOrderControllerTest.php`
## Struktura testow