Skip to content

docs(soft-delete): spec wykonalności soft-delete dla 5 typów publikacji (ODŁOŻONE)#304

Closed
mpasternak wants to merge 1 commit into
devfrom
docs/soft-delete-spec
Closed

docs(soft-delete): spec wykonalności soft-delete dla 5 typów publikacji (ODŁOŻONE)#304
mpasternak wants to merge 1 commit into
devfrom
docs/soft-delete-spec

Conversation

@mpasternak

Copy link
Copy Markdown
Member

Dokumentacja-only. Dodaje spec wykonalności soft-delete dla
Wydawnictwo_Ciagle/Zwarte, Praca_Doktorska, Praca_Habilitacyjna,
Patent.

Status: ODŁOŻONE — na razie. To spec/rozpoznanie, nie zlecenie
implementacji. PR jedynie utrwala analizę, żeby nie wyparowała.

Refs #303

Co w środku

  • Choke-point w triggerze bpp_refresh_cache(): deleted_at IS NOT NULL
    traktowany jak DELETE → wszystko czytające przez Rekord/Cache_*
    czyści się jednym ruchem.
  • Odwrócenie zakresu dzięki django-soft-delete (już w repo, precedens
    zglos_publikacje): ekspozycja (API/dashboard/autocomplete/browse) czysta
    za darmo; kat. B (import/dedup/PBN) musi przejść na global_objects.
  • Kaskada/auto-undelete zweryfikowana w kodzie pakietu: strict=True
    wymaga, by dzieci były SoftDeleteModel → rekomendacja Projekt A
    (override delete(), *_Autor nietknięte, trigger odtwarza przy restore).
  • slug unique → warunkowy UniqueConstraint(deleted_at__isnull=True).
  • Szacunek ~2–3 tygodnie; otwarte decyzje + ryzyka spisane.

Plik

docs/superpowers/specs/2026-06-03-soft-delete-publikacje.md

Uwagi do mergowania

Zmiana czysto dokumentacyjna — nie rusza kodu, modeli ani migracji.
Bezpieczna do merge'a niezależnie od decyzji o samej funkcjonalności.

🤖 Generated with Claude Code

…ji (ODŁOŻONE)

Analiza wprowadzenia soft-delete dla Wydawnictwo_Ciagle/Zwarte,
Praca_Doktorska, Praca_Habilitacyjna, Patent. Status: świadomie
odłożone — to spec/rozpoznanie, nie zlecenie implementacji.

Kluczowe ustalenia:
- choke-point w triggerze bpp_refresh_cache(): "deleted_at IS NOT NULL"
  traktowany jak DELETE → wszystko czytające przez Rekord/Cache_* czyści
  się jednym ruchem,
- django-soft-delete już w repo (pyproject.toml), precedens w
  zglos_publikacje; domyślny manager ukrywa usunięte → kat. A czysta
  za darmo, kat. B (import/dedup/PBN) musi przejść na global_objects,
- kaskada/auto-undelete pakietu zweryfikowana w kodzie: strict=True
  wymaga by dzieci były SoftDeleteModel → rekomendacja Projekt A
  (override delete(), dzieci nietknięte, cache/trigger robi resztę),
- slug unique → warunkowy UniqueConstraint(deleted_at__isnull=True),
- szacunek ~2-3 tygodnie; otwarte decyzje spisane.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mpasternak

Copy link
Copy Markdown
Member Author

Zastąpiony przez #312 — pełny projekt wdrożeniowy (spec rozszerzony o autorów/PBN/log/admin) + 9 planów implementacyjnych TDD. Ten PR zawierał tylko wczesny feasibility-spec (publikacje, ODŁOŻONY).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant