Problem
Brak widocznej w adminie historii edycji rekordów. Operator nie ma jak
wyjaśnić „kto usunął / zmienił to i to w tym rekordzie" — szczególnie dla
najczęściej ręcznie edytowanych typów: zgłoszenia publikacji i rekordy
wydawnictw, a także struktury (Uczelnia/Jednostka/Wydzial) i Autora.
Kierunek (ustalony)
Rozszerzyć istniejący django-reversion (VersionAdmin +
reversion-compare, już działa na Uczelnia) na zdefiniowany zbiór modeli.
Cel: rozliczalność edycji ludzkich (kto/kiedy/co + compare + revert), nie
total-audyt bazy. Odrzucono pghistory (total-audyt DB) i simple-history
(duplikacja tabel).
Krytyczne: integracja z trwającym soft-delete
Bez tego główny use-case („kto usunął, widoczne w Historii") cicho nie zadziała:
- soft-delete i restore w adminie muszą tworzyć rewizję reversion
(set_user + set_comment) — inaczej usunięcie nie pojawi się w zakładce Historia;
- wspólny punkt wstrzyknięcia
request.user dla reversion i SoftDeleteLog;
- MRO
VersionAdmin + mixin soft-delete, get_queryset → global_objects
(usunięty rekord otwieralny), ukrycie reversion „recover deleted".
Komplementarne do SoftDeleteLog (loguje zdarzenia delete/restore) — reversion
trzyma pełną oś edycji pól.
Status
Implementacja odłożona do po wdrożeniu soft-delete. Ustalenia i kontrakty
integracyjne spisane; referencje do kodu wymagają aktualizacji po soft-delete.
Spec
docs/superpowers/specs/2026-06-04-historia-zmian-reversion-design.md
(gałąź docs/historia-zmian-reversion)
Powiązane: spec soft-delete docs/superpowers/specs/2026-06-04-soft-delete-publikacje-i-autorzy-design.md
Problem
Brak widocznej w adminie historii edycji rekordów. Operator nie ma jak
wyjaśnić „kto usunął / zmienił to i to w tym rekordzie" — szczególnie dla
najczęściej ręcznie edytowanych typów: zgłoszenia publikacji i rekordy
wydawnictw, a także struktury (Uczelnia/Jednostka/Wydzial) i Autora.
Kierunek (ustalony)
Rozszerzyć istniejący
django-reversion(VersionAdmin+reversion-compare, już działa naUczelnia) na zdefiniowany zbiór modeli.Cel: rozliczalność edycji ludzkich (kto/kiedy/co + compare + revert), nie
total-audyt bazy. Odrzucono pghistory (total-audyt DB) i simple-history
(duplikacja tabel).
Krytyczne: integracja z trwającym soft-delete
Bez tego główny use-case („kto usunął, widoczne w Historii") cicho nie zadziała:
(
set_user+set_comment) — inaczej usunięcie nie pojawi się w zakładce Historia;request.userdla reversion iSoftDeleteLog;VersionAdmin+ mixin soft-delete,get_queryset → global_objects(usunięty rekord otwieralny), ukrycie reversion „recover deleted".
Komplementarne do
SoftDeleteLog(loguje zdarzenia delete/restore) — reversiontrzyma pełną oś edycji pól.
Status
Implementacja odłożona do po wdrożeniu soft-delete. Ustalenia i kontrakty
integracyjne spisane; referencje do kodu wymagają aktualizacji po soft-delete.
Spec
docs/superpowers/specs/2026-06-04-historia-zmian-reversion-design.md(gałąź
docs/historia-zmian-reversion)Powiązane: spec soft-delete
docs/superpowers/specs/2026-06-04-soft-delete-publikacje-i-autorzy-design.md