Skip to content

Historia zmian rekordów (django-reversion) — rozliczalność edycji + integracja z soft-delete #307

Description

@mpasternak

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:

  1. soft-delete i restore w adminie muszą tworzyć rewizję reversion
    (set_user + set_comment) — inaczej usunięcie nie pojawi się w zakładce Historia;
  2. wspólny punkt wstrzyknięcia request.user dla reversion i SoftDeleteLog;
  3. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions