nie można wycofać treści z archiwum
/
Eksport markdown
nie można wycofać treści z archiwum
Zapisz
Kopiuj do schowka
Pobierz plik .md
Wróć
# nie można wycofać treści z archiwum - Board: BIP - Łącznie: 0 zł - Nieukończone: 0 zł - Godziny: 0 h - Postęp: 0 z 0 zadań ## Opis Diagnoza - To nie jest błąd pojedynczej akcji, tylko obecny kontrakt workflow:w PagesTable i BipPublicationsTable jest akcja archive, ale brak akcji typu restore/unarchive(PagesTable.php,BipPublicationsTable.php)po statusie archived edycja nie resetuje rekordu do draft, bo shouldResetWorkflow() działa tylko dla review i published(EditPage.php,EditBipPublication.php)model zdarzeń workflow ma ACTION\_ARCHIVE, ale nie ma akcji przywrócenia(ContentWorkflowEvent.php)matryca uprawnień ma Archive, ale nie ma osobnej czynności „Przywrócenie z archiwum”(PermissionAction.php) - w PagesTable i BipPublicationsTable jest akcja archive, ale brak akcji typu restore/unarchive(PagesTable.php,BipPublicationsTable.php) - po statusie archived edycja nie resetuje rekordu do draft, bo shouldResetWorkflow() działa tylko dla review i published(EditPage.php,EditBipPublication.php) - model zdarzeń workflow ma ACTION\_ARCHIVE, ale nie ma akcji przywrócenia(ContentWorkflowEvent.php) - matryca uprawnień ma Archive, ale nie ma osobnej czynności „Przywrócenie z archiwum”(PermissionAction.php) Podstawa biznesowa - W baseline przejść stanów nie ma przejścia Archiwalna -> ..., więc archiwum jest potraktowane jako stan końcowy:Opublikowana -> Archiwalnabrak „powrotu z archiwum”(3\_funkcjonalnosci-systemu-cms-baseline.md) - Opublikowana -> Archiwalna - brak „powrotu z archiwum”(3\_funkcjonalnosci-systemu-cms-baseline.md) - Dla publicznego widoku:Page na /strona/{slug} wymaga published, a archiwalna treść idzie osobną ścieżką /archiwum/strona/{slug}(PublicBipHomeController.php,web.php)BipPublication obecnie i tak nie ma docelowego publicznego renderowania jak Page (to też wzmacnia odczucie „znikania”). - Page na /strona/{slug} wymaga published, a archiwalna treść idzie osobną ścieżką /archiwum/strona/{slug}(PublicBipHomeController.php,web.php) - BipPublication obecnie i tak nie ma docelowego publicznego renderowania jak Page (to też wzmacnia odczucie „znikania”). Dlaczego masz problem z obowiązkowymi treściami - System dziś pozwala zarchiwizować rekord nawet jeśli biznesowo jest „obowiązkowy”. - Nie ma ochrony typu „nie archiwizuj obowiązkowej treści”. - Nie ma ścieżki cofnięcia archiwizacji, więc obowiązkowy rekord może utknąć poza bieżącą publikacją. Rekomendowane rozwiązanie przed wdrożeniem 1. Dodać twardą blokadę archiwizacji dla is\_required = true (i analogicznie wycofania, jeśli ma dotyczyć). 2. Dodać nową akcję workflow Przywróć z archiwum dla ról publikacyjnych:proponowany kierunek: Archived -> Review (bez automatycznej publikacji, z zachowaniem rozdziału obowiązków),alternatywa: Archived -> Draft (więcej pracy redakcyjnej, ale bezpieczniej formalnie). 3. Dodać walidację spójności: przed archiwizacją sprawdzać, czy po zmianie zostanie co najmniej jedna opublikowana treść obowiązkowa danego typu. 4. Dla już zarchiwizowanych obowiązkowych rekordów: jednorazowa akcja naprawcza (przywrócenie do review), żeby nie robić ręcznych obejść. Dodatkowa uwaga: baseline ma też przejście Wycofana -> Robocza, a w aktualnym kodzie nie ma osobnej akcji, która to realizuje wprost. Warto to domknąć przy tej samej zmianie, żeby workflow był spójny. Jeśli chcesz, przygotuję teraz krótki plan wdrożenia (zakres plików + testy) w wariancie minimalnym, bez nadmiarowej przebudowy. ## Listy zadań ### Otwarte _Brak zadań_