71 lines
3.5 KiB
Markdown
71 lines
3.5 KiB
Markdown
# Plan Refaktoryzacji CRM PRO
|
|
|
|
## Cel
|
|
- Przenieść logikę biznesową i dostęp do danych z warstwy `factory` do `autoload/Domain/*`.
|
|
- Zachować kompatybilność wsteczną przez warstwy adapterów/fasad (`controls`, `factory`) podczas migracji.
|
|
- Kończyć każdy etap migracji testami regresyjnymi.
|
|
|
|
## Aktualny status
|
|
- Ostatnia aktualizacja: 2026-02-06
|
|
- Etap: 2 w toku (standaryzacja kontrolerów)
|
|
- Obszar Czas pracy: zmigrowany i ustabilizowany
|
|
|
|
## Etap 1: Tasks / Czas pracy (ZROBIONE)
|
|
- Dodano `autoload/Domain/Tasks/WorkTimeRepository.php`.
|
|
- `factory\Tasks::work_time_clients()` deleguje teraz do repozytorium Domain.
|
|
- Usunięto limit 3 miesięcy: repozytorium zwraca wszystkie istotne miesiące.
|
|
- Uwzględniono statusy zadań:
|
|
- `do rozliczenia` (`3`)
|
|
- `do sprawdzenia` (`1`)
|
|
- Usunięto zależność `\factory\Projects` z `WorkTimeRepository` (czas liczony bezpośrednio w repozytorium Domain).
|
|
- Dodano testy:
|
|
- `tests/Domain/Tasks/WorkTimeRepositoryTest.php`
|
|
- `tests/run.php`
|
|
|
|
## Etap 2: Standaryzacja kontrolerów (W TOKU)
|
|
- [x] Dodano `autoload/Controllers/TasksController.php`.
|
|
- [x] Przeniesiono akcję czasu pracy do nowego kontrolera: `TasksController::workTime()`.
|
|
- [x] Zostawiono adapter kompatybilności w `autoload/controls/class.Tasks.php`.
|
|
- [x] Oznaczono starą metodę `controls\Tasks::work_time()` jako deprecated.
|
|
- [x] Nowy kontroler korzysta bezpośrednio z Domain (`WorkTimeRepository`) zamiast factory.
|
|
- [x] Dodano test kontrolera:
|
|
- `tests/Controllers/TasksControllerTest.php`
|
|
- [ ] Zmigrować kolejne metody z `controls\Tasks`:
|
|
- `main_view()`
|
|
- `main_view_by_ajax()`
|
|
|
|
## Etap 3: Porządki w UI Czasu pracy (ZROBIONE)
|
|
- Nowy zbiorczy widok rozliczeń jest aktywny.
|
|
- Usunięto zduplikowany/stary blok z `templates/tasks/work-time.php`.
|
|
- Akcja „zamknij zadanie” działa przez AJAX bez pełnego przeładowania strony.
|
|
- Dodano ładniejsze potwierdzenie (`jquery-confirm`) z fallbackiem.
|
|
- Poprawiono hierarchię wizualną (Bootstrap + style pomocnicze).
|
|
- Przeniesiono style widoku z inline `<style>` do `layout/style.scss` pod `#billing-summary`.
|
|
|
|
## Etap 4: Migracja domeny finansów (NASTĘPNY)
|
|
- Wyodrębnić `Domain/Finances/FinancesRepository.php`.
|
|
- Migrować małymi krokami (po 1-2 metody):
|
|
- `operation_save`
|
|
- `operation_delete`
|
|
- metody listujące
|
|
- Po każdej grupie metod dodawać testy.
|
|
|
|
## Etap 5: Uporządkowanie struktury widoków (NASTĘPNY)
|
|
- Ustandaryzować mapowanie widoków pod `autoload/Views/*` (iteracyjnie).
|
|
- Zachować działanie starych ścieżek templatek do końca pełnej migracji.
|
|
|
|
## Polityka testów
|
|
- Każda zmigrowana metoda/funkcja musi mieć co najmniej jeden test automatyczny.
|
|
- `tests/run.php` pozostaje prostym, głównym entrypointem testów projektu.
|
|
- Dla zachowań UI (aktualizacje AJAX) dodać testy integracyjne/e2e, gdy pojawi się narzędzie testowe.
|
|
|
|
## Zasady migracji
|
|
- Bez zmian typu big-bang.
|
|
- Jeden ograniczony obszar funkcjonalny na commit.
|
|
- Najpierw kompatybilność, adaptery usuwać dopiero po pełnej migracji.
|
|
## Ostatnie wdrozenia (2026-02-06)
|
|
- Popup zadania: dodano zarzadzanie zalacznikami (dodawanie, edycja nazwy, usuwanie).
|
|
- Upload zalacznikow: obsluga wielu plikow w jednym wyslaniu (attachments[] + multiple).
|
|
- UX uploadu: dodano loader na przycisku ("Wysylanie..."), blokade wielokliku i odblokowanie po zakonczeniu requestu.
|
|
- Poprawiono krytyczny blad JS: dodano brakujaca funkcje is_task_popup_works_time_open().
|
|
- Ujednolicono napisy UI dla popupu i listy zadan (usuniecie "krzaczkow" przez encje HTML tam, gdzie to potrzebne). |