Skip to content

feat(setup-wizard): kreator pierwszego uruchomienia w 3 krokach (FD#499) - #879

Merged
mpasternak merged 9 commits into
devfrom
fix-fd499-kreator-3-kroki
Oct 21, 2026
Merged

mpasternak merged 9 commits into
devfrom
fix-fd499-kreator-3-kroki

Conversation

@mpasternak

@mpasternak mpasternak commented Oct 21, 2026 •

Copy link
Copy Markdown
Member

Fixes Freshdesk FD#499 — https://iplweb.freshdesk.com/a/tickets/499

Co się zmienia

Kreator pierwszego uruchomienia ma teraz 3 osobne kroki i pasek postępu „Krok N z 3”:

  1. Konto administratora. Działa bez zmian; do BPP-owego override'u admin_user.html doszedł tylko pasek postępu.
  2. Dane uczelni. Tylko nazwa, dopełniacz, skrót i „używaj wydziałów”, bez pól PBN. Automatyczne flagi PBN (pbn_integracja itd.) ustawiają się jak dotąd w UczelniaSetupForm.save().
  3. Integracja z PBN (/setup/step/pbn/, PbnSetupStep + PbnSetupView). Krok zaczyna się od pytania „Czy masz już nazwę i token aplikacji z PBN?” (?odpowiedz=):
    • „Tak, mam oba” → formularz: środowisko, nazwa, token (oba wymagane), zapis do uczelni z requestu (get_for_request).
    • „Jeszcze nie, uzupełnię to później” → informacja, gdzie wpisać dane później (link do Administracja → Uczelnia), plus instrukcja PBN i dokumentacja BPP.
    • „Nie wiem, o co chodzi” → wyjaśnienie prostym językiem: czym jest PBN, po co BPP się z nim łączy i kto wydaje nazwę i token. Na końcu przycisk „Rozumiem, pomiń na razie”.

Każda ścieżka kończy kreator. Brak danych PBN nie blokuje startu systemu.

Krok PBN — trwały krok kreatora (poprawka po teście ręcznym)

Pierwsza wersja zamykała kreator przy pierwszym requeście spoza /setup/. W praktyce przeglądarka sama pobiera /apple-touch-icon.png zaraz po wyrenderowaniu pytania o PBN, więc każda odpowiedź w kroku 3 dawała 404. Teraz:

  • PbnSetupStep jest zarejestrowanym krokiem silnika (/setup/step/pbn/, widok BPP przykrywa generyczny). is_complete() = żadna uczelnia nie ma Uczelnia.kreator_czeka_na_pbn (migracja 0491). Flagę zapala krok 2, gasi każda odpowiedź w kroku 3 (zapis albo pominięcie).
  • Uczelnie spoza kreatora (istniejące instalacje, dumpy, demo) mają False, więc ścieżka naprawcza middleware'u nie wraca z nimi do kreatora.
  • BppFirstRunWizardMiddleware: dopóki kreator niedokończony, kto nie ma dostępu do kolejnego kroku (anonim, nieważna sesja, nie-superuser), trafia na logowanie admina z next= na ten krok, a nie na niedokonfigurowaną stronę główną.
  • FIRST_RUN_WIZARD_SKIP_PREFIXES: ikony przeglądarki, /health/, /__ (django-dev-helpers), obok prefiksów z fix(setup-wizard): widgety dashboardu admina nie przekierowują do kreatora (#873) #878.
  • Usunięta zbędna ramka „Informacja” z kroku 2.
  • Baseline odświeżony (make baseline-update).

Inne zmiany

  • Strażnik test_pbn_url_bez_sztywnego_hosta: link do centrum pomocy PBN przeniósł się z uczelnia_setup.html do pbn_setup.html, więc whitelista wskazuje nowy plik.
  • SCSS dla paska postępu i przycisków wyboru. Lokalnie skompilowany sass-em i działa.
  • README aplikacji i PBN_INTEGRACJA.md zaktualizowane pod nowy przebieg.
  • Newsfragment +fd499.feature.md.

Testy

src/bpp_setup_wizard/tests.py: istniejące testy przepisane pod 3 kroki, plus nowe testy dla każdej ścieżki kroku PBN:

  • tylko pytanie, bez formularza,
  • „tak” → formularz, zapis, walidacja wymaganych pól,
  • „później” i „nie wiem” → treści i zakończenie kreatora, który potem nie wraca (404),
  • wymaganie superusera,
  • brak uczelni.

E2E przechodzi przez cały kreator w 3 krokach.

Lokalnie: src/bpp_setup_wizard/tests.py + strażnik URL-i PBN to 26 passed, w tym na świeżym kontenerze bez REUSE. Uwaga: przebieg był z BPP_SKIP_ASSETS_BUILD=1, bo yarn install w świeżym worktree wisi na sieci. Pełny przebieg z assetami i podgląd UI dojdą.

🤖 Generated with Claude Code

https://claude.ai/code/session_01TrXhGFUCo2sjzPZRMdwuuf

mpasternak and others added 9 commits October 21, 2026 21:24
Kreator ma teraz 3 kroki z paskiem postępu („Krok N z 3"):

1. Konto administratora (bez zmian w działaniu).
2. Dane uczelni — tylko nazwa, dopełniacz, skrót i wydziały; bez pól PBN.
3. Integracja z PBN — nowy widok /setup/pbn/, zaczyna się od pytania
   „Czy masz już nazwę i token aplikacji z PBN?":
   - „Tak, mam oba" → formularz (środowisko, nazwa, token — wymagane),
   - „Jeszcze nie, uzupełnię później" → informacja, gdzie wpisać dane
     (Administracja → Uczelnia) + link do instrukcji PBN,
   - „Nie wiem, o co chodzi" → krótkie wyjaśnienie PBN + „Rozumiem,
     pomiń na razie".

Krok PBN nie jest krokiem silnika django-first-run-wizard: krok uczelni
przekierowuje na niego po zapisie, a każda ścieżka stempluje
FirstRunWizardState.completed_at. Pominięcie nie wymaga flagi w bazie
(brak migracji), kreator już nie wraca, a istniejące instalacje i dumpy
bez danych PBN nie są wpychane z powrotem do kreatora.

Fixes Freshdesk FD#499
https://iplweb.freshdesk.com/a/tickets/499

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TrXhGFUCo2sjzPZRMdwuuf
Konflikt w src/bpp_setup_wizard/tests.py: oba commity dopisały testy na
końcu pliku — zostają oba zestawy. Test #873 sprawdza dodatkowo brak
znacznika strony kreatora, bo krok uczelni nazywa się teraz „Dane uczelni”.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TrXhGFUCo2sjzPZRMdwuuf
# Conflicts:
#	src/bpp_setup_wizard/tests.py
…y niedokończonym kreatorze (FD#499)

Przeglądarka sama pobiera /apple-touch-icon.png zaraz po wyrenderowaniu
pytania o PBN; middleware traktowało to jako wyjście z kreatora i stemplowało
zakończenie, więc każda odpowiedź w kroku 3 dawała 404.

- PbnSetupStep jako zarejestrowany krok silnika; is_complete() oparte o
  trwałą flagę Uczelnia.kreator_czeka_na_pbn (migracja 0491) — zapala ją
  krok 2, gasi odpowiedź w kroku 3. Uczelnie spoza kreatora mają False,
  więc ścieżka naprawcza nie wraca do kreatora.
- Widok kroku pod /setup/step/pbn/ (przykrywa generyczny widok silnika).
- BppFirstRunWizardMiddleware: przy niedokończonym kreatorze kto nie ma
  dostępu do kolejnego kroku (anonim, nieważna sesja, nie-superuser) trafia
  na logowanie admina z next= na krok, zamiast na niedokonfigurowaną stronę.
- SKIP_PREFIXES: ikony przeglądarki, /health/, /__ (django-dev-helpers).
- Usunięta zbędna ramka „Informacja" z kroku 2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…pr-879

# Conflicts:
#	src/bpp_setup_wizard/tests.py
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@mpasternak
mpasternak merged commit 559b437 into dev Oct 21, 2026
22 checks passed
@mpasternak
mpasternak deleted the fix-fd499-kreator-3-kroki branch October 21, 2026 20:07
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