Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
276 commits
Select commit Hold shift + click to select a range
f4c74f2
Import wydziałów/jednostek z XLSX przez admin (django-import-export)
mpasternak Apr 28, 2026
c08498f
Merge branch 'dev' into feature/multi-hosted-config
mpasternak May 2, 2026
fc05b8d
AutorAutocomplete: 3 optgroupy zamiast filtra per-uczelnia
mpasternak May 2, 2026
9ea3acc
Merge branch 'dev' into feature/multi-hosted-config
mpasternak May 3, 2026
efee40f
Merge origin/dev into feature/multi-hosted-config
mpasternak May 21, 2026
60b781b
fix(tests): napraw 5+3 regresji po merge'u dev (siteblog API + Uczeln…
mpasternak May 21, 2026
e97e7b2
fix(demo_data): ensure_uczelnia ustawia site na pierwszy Site (Uczeln…
mpasternak May 21, 2026
9493e83
Merge remote-tracking branch 'origin/dev' into feature/multi-hosted-c…
mpasternak May 21, 2026
9add55c
feat(university-themes): nowe motywy uczelni MWSL/UAFM/VIZJA + brand …
mpasternak May 21, 2026
dadca2c
docs: usun pozostalosci po Sphinxie po migracji na MkDocs
mpasternak May 21, 2026
822db2e
fix(ci+docker): napraw hint check-flag dla PR + usun stale COPY notif…
mpasternak May 21, 2026
c1ea486
Merge branch 'dev' into feature/multi-hosted-config
mpasternak Jun 1, 2026
afbac59
Merge branch 'dev' into feature/multi-hosted-config
mpasternak Jun 1, 2026
e99f8cc
fix(migrations): scal liście grafu bpp (0417+0418 → 0419) po merge dev
mpasternak Jun 1, 2026
52fd4d4
Merge remote-tracking branch 'origin/dev' into feature/multi-hosted-c…
mpasternak Jun 1, 2026
077084b
fix(tests): zarejestruj conftest_multisite po django.setup() (#189)
mpasternak Jun 1, 2026
8591790
Merge remote-tracking branch 'origin/dev' into feature/multi-hosted-c…
mpasternak Jun 1, 2026
74764a6
Merge remote-tracking branch 'origin/dev' into feature/multi-hosted-c…
mpasternak Jun 1, 2026
a23966a
feat(uczelnia): udostępnij motywy vizja/mwsl/uafm w wyborze w adminie…
mpasternak Jun 2, 2026
1ca4ec3
docs(spec): motywy front-endu z jednej listy w settings (#189)
mpasternak Jun 2, 2026
2479cb4
feat(uczelnia): lista motywów z jednego źródła w settings, admin czyt…
mpasternak Jun 2, 2026
e8161fa
feat(uczelnia): dopisz nazwę uczelni w nawiasie do etykiety motywu (#…
mpasternak Jun 2, 2026
7b55922
Merge remote-tracking branch 'origin/dev' into feature/multi-hosted-c…
mpasternak Jun 2, 2026
fb60b60
Merge remote-tracking branch 'origin/dev' into feature/multi-hosted-c…
mpasternak Jun 2, 2026
e6f4012
fix(migrations): merge bpp i pbn_api po scaleniu dev
mpasternak Jun 2, 2026
ff5e251
Merge remote-tracking branch 'origin/dev' into feature/multi-hosted-c…
mpasternak Jun 2, 2026
db5171e
fix(pbn): wymuś jawną uczelnię w PBN-owych zadaniach w tle (multi-hos…
mpasternak Jun 2, 2026
e2498e3
fix(pbn): wysyłka oświadczeń bierze jawną uczelnię z requestu (multi-…
mpasternak Jun 2, 2026
7dc65b9
fix(pbn): kolejka eksportu używa uczelni z wpisu, nie get_default (mu…
mpasternak Jun 2, 2026
a585242
fix(pbn): pobieranie osób buduje klienta z właściwej uczelni (multi-h…
mpasternak Jun 2, 2026
ececfd2
docs(pbn): audyt multi-hosted i spec rozbicia PBNClient na warstwy
mpasternak Jun 2, 2026
cf27921
refactor(pbn): Faza 1 - wydziel czysta warstwe pbn_client (Warstwa 1)
mpasternak Jun 2, 2026
e28372c
refactor(pbn): Faza 2 - wytnij StatementsMixin (czysty silnik) do pbn…
mpasternak Jun 2, 2026
0821642
refactor(pbn): Faza 3A - czysty PBNClient w pbn_client, BppPBNClient …
mpasternak Jun 2, 2026
41a94f3
docs(pbn): zaktualizuj spec do Wariantu B (bez pakietu pbn_client_bpp)
mpasternak Jun 2, 2026
1eaf4d1
fix(pbn): Faza 3B - orchestracja czyta uczelnie z self.uczelnia, nie …
mpasternak Jun 2, 2026
79f79bb
docs(pbn): spec - zaznacz Faze 3B/test multi-hosted jako zrobione
mpasternak Jun 2, 2026
2e78ad1
fix(pbn): multi-hosted - ORCID i filtr autorow uzywaja uczelni z requ…
mpasternak Jun 2, 2026
2f2d137
fix(pbn): multi-hosted importer_publikacji - ImportSession.uczelnia s…
mpasternak Jun 2, 2026
7af1d56
fix(pbn): callerzy adaptera przekazuja jawna uczelnie (multi-hosted)
mpasternak Jun 2, 2026
612ca15
fix(multi-hosted): Faza 1 get_default cleanup - widoki/formularze
mpasternak Jun 2, 2026
a9a4cb7
fix(multi-hosted): Faza 2+3 - ImportManager propaguje uczelnie, impor…
mpasternak Jun 2, 2026
9664762
docs(multi-hosted): Faza 4 - oznacz config-reads (sloty per-uczelnia …
mpasternak Jun 2, 2026
83fac7a
fix(multi-hosted): Faza 5 - fallbacki builderow klienta -> .get() (po…
mpasternak Jun 2, 2026
9a1d31a
fix(multi-hosted): Faza 6 - taski metryk/oswiadczen fallback -> .get()
mpasternak Jun 2, 2026
d95e2df
fix(multi-hosted): Faza 7 - komendy CLI fallback get_default -> .get()
mpasternak Jun 2, 2026
257173e
fix(multi-hosted): Faza 8 - integrator data-compares (.get() + park r…
mpasternak Jun 2, 2026
f5f402c
test(multi-hosted): Faza 9 - guard sentinel na get_default poza white…
mpasternak Jun 2, 2026
7abf6e6
docs(multi-hosted): audyt - get_default cleanup ZREALIZOWANE (Fazy 1-…
mpasternak Jun 2, 2026
a834691
docs(multi-hosted): plan implementacji get_default cleanup
mpasternak Jun 2, 2026
6756b24
docs(multi-hosted): HANDOFF - stan pracy do wznowienia po reset sesji
mpasternak Jun 2, 2026
7f793af
fix(multi-hosted): lap Uczelnia.DoesNotExist w sprobuj_wyslac_do_pbn_…
mpasternak Jun 2, 2026
2aebb7b
docs(multi-hosted): spec - per-uczelnia liczenie slotow (write-side)
mpasternak Jun 2, 2026
576afe7
docs(multi-hosted): self-review spec per-uczelnia sloty
mpasternak Jun 2, 2026
85420bf
docs(multi-hosted): popraw spec - jednostka jest NOT NULL
mpasternak Jun 2, 2026
de02dc3
docs(multi-hosted): spec - federacja, callerzy rebuildu, kompat IPunk…
mpasternak Jun 2, 2026
48b8608
docs(multi-hosted): finalny design - ISlot(pub, uczelnia) opcjonalny …
mpasternak Jun 2, 2026
58daf3e
docs(multi-hosted): plan implementacji per-uczelnia sloty (write-side)
mpasternak Jun 2, 2026
9848dca
feat(multi-hosted): FK uczelnia na Cache_Punktacja_Dyscypliny + seria…
mpasternak Jun 2, 2026
47ac5d8
feat(multi-hosted): SlotMixin/Zwarte_Baza filtruja autorow po uczelni
mpasternak Jun 2, 2026
91a07ef
refactor(multi-hosted): Zwarte_Baza.__init__ uzywa super() (code review)
mpasternak Jun 2, 2026
e08766b
feat(multi-hosted): uczelnie_rekordu() na ModelZPrzeliczaniemDyscyplin
mpasternak Jun 2, 2026
f750a92
refactor(multi-hosted): ISlot opcjonalna uczelnia + rozstrzyganie + h…
mpasternak Jun 2, 2026
c03c57b
refactor(multi-hosted): noqa specificity + jasniejszy komunikat (code…
mpasternak Jun 2, 2026
d56ebf1
feat(multi-hosted): IPunktacjaCacher petla per uczelnia + tag + det. …
mpasternak Jun 2, 2026
764121d
feat(multi-hosted): przelicz_punkty_dyscyplin bez parametru + guard c…
mpasternak Jun 2, 2026
5c82a43
feat(multi-hosted): widok cache_punktacja_autora joinuje po uczelni
mpasternak Jun 2, 2026
c769576
test(multi-hosted): ukryte_statusy/wypadniecie uczelni/invariant sing…
mpasternak Jun 2, 2026
d961b2c
docs(multi-hosted): backfill per-uczelnia cache + regresja write-side
mpasternak Jun 2, 2026
876b6e8
Merge remote-tracking branch 'origin/dev' into feature/multi-hosted-c…
mpasternak Jun 2, 2026
c74e4ab
fix(multi-hosted): napraw regresje po merge dev (make tests)
mpasternak Jun 2, 2026
383f6a3
docs(CLAUDE): regula - uruchamiaj testy lokalnie; local make tests ||…
mpasternak Jun 3, 2026
18d0cd1
style(lint): ruff-format na plikach zmienionych vs dev
mpasternak Jun 3, 2026
c2bfb2c
fix(multi-hosted): 0425 backfilluje uczelnia (single) / failuje (mult…
mpasternak Jun 3, 2026
2032a31
docs(multi-hosted): HANDOFF - wątek 3 (sloty write-side) done + self-…
mpasternak Jun 3, 2026
77b7e5d
docs(multi-hosted): read-side discovery - ewaluacja2021 wygaszana (OU…
mpasternak Jun 3, 2026
8dbde71
docs(multi-hosted): spec R1 - slot read-side (widok+uczelnia, hybryda…
mpasternak Jun 3, 2026
cf2735c
docs(multi-hosted): plan implementacyjny R1 (slot read-side) - 10 tas…
mpasternak Jun 3, 2026
1dd2d5e
feat(multi-hosted): widok cache_punktacja_autora eksponuje uczelnia_id
mpasternak Jun 3, 2026
880f6d8
feat(multi-hosted): indeks (rekord_id, uczelnia, dyscyplina) na CPD
mpasternak Jun 3, 2026
939f760
feat(multi-hosted): helper uczelnia_dla_odczytu (hybryda site/superuser)
mpasternak Jun 3, 2026
cb2ade9
feat(multi-hosted): zbieraj_sloty przyjmuje uczelnia_id (zawężenie)
mpasternak Jun 3, 2026
29734f8
feat(multi-hosted): autorzy_z_punktami/zerowi filtrują po uczelni
mpasternak Jun 3, 2026
1c31d88
feat(multi-hosted): RaportSlotowUczelnia FK uczelnia + zawężona gener…
mpasternak Jun 3, 2026
014c484
refactor(multi-hosted): UtworzRaportSlotowUczelnia.form_valid deleguj…
mpasternak Jun 3, 2026
1735ba9
feat(multi-hosted): RaportSlotowAutor filtruje po uczelni oglądającego
mpasternak Jun 3, 2026
4d46a6e
feat(multi-hosted): oswiadczenia filtruje punktacje po uczelni
mpasternak Jun 3, 2026
a80c94c
feat(multi-hosted): API raport_slotow per uczelnia + adnotacje konsum…
mpasternak Jun 3, 2026
0160add
docs(multi-hosted): udokumentuj asymetrię skupia_pracownikow (read-side)
mpasternak Jun 3, 2026
fa83089
docs(multi-hosted): HANDOFF - R1 slot read-side ZROBIONE, R2 liczba_n…
mpasternak Jun 3, 2026
16e0cb3
feat(oidc): addytywne logowanie przez Keycloak (OIDC Authorization Co…
mpasternak Jun 3, 2026
e5a32ea
feat(oidc): dokonczenie logowania — wylogowanie z Keycloaka, .well-kn…
mpasternak Jun 3, 2026
b955c13
docs(multi-hosted): spec R2 - ewaluacja_liczba_n per-uczelnia (write+…
mpasternak Jun 3, 2026
044151c
docs(multi-hosted): plan implementacyjny R2 (liczba_n per-uczelnia) -…
mpasternak Jun 3, 2026
135821b
feat(multi-hosted): FK uczelnia na IloscUdzialow* + backfill (liczba_…
mpasternak Jun 3, 2026
cae0803
feat(multi-hosted): pipeline liczba_n zawężony per uczelnia (utils.py)
mpasternak Jun 3, 2026
af1b964
feat(multi-hosted): widoki liczba_n filtrują udziały po uczelni + nie…
mpasternak Jun 3, 2026
f85ea24
docs(multi-hosted): HANDOFF - R2 liczba_n ZROBIONE, integrator następny
mpasternak Jun 3, 2026
3411b15
docs(multi-hosted): spec integrator per-uczelnia (thread client.uczel…
mpasternak Jun 3, 2026
aab1896
feat(multi-hosted): integrator importuje per-uczelnia (client.uczelni…
mpasternak Jun 3, 2026
a982dbf
refactor(multi-hosted): _przetworz_afiliacje wymaga uczelnia (keyword…
mpasternak Jun 3, 2026
57f04db
docs(multi-hosted): korekta spec integratora - 3 sites (authors done …
mpasternak Jun 3, 2026
777265e
feat(multi-hosted): integrator scientists/command per-uczelnia (bez o…
mpasternak Jun 3, 2026
d675a2d
docs(multi-hosted): HANDOFF - integrator (D) ZROBIONE, drobne (E) nas…
mpasternak Jun 3, 2026
d1d5162
refactor(multi-hosted): usun test-only get_default fallback z adapter…
mpasternak Jun 3, 2026
3a35907
docs(multi-hosted): HANDOFF - drobne (E) ZROBIONE
mpasternak Jun 3, 2026
6c888f2
feat(multi-hosted): Cache_Punktacja_Dyscypliny.uczelnia NOT NULL + ad…
mpasternak Jun 3, 2026
c687ceb
fix(multi-hosted): wiele_hst liczone per-uczelnia (_dopasuj_kalkulato…
mpasternak Jun 3, 2026
d8e0350
docs(multi-hosted): HANDOFF - HST #1 + NOT NULL #5 + admin uczelnia Z…
mpasternak Jun 3, 2026
ee67eb9
fix(multi-hosted): verify.py liczy i naprawia Autor_Dyscyplina per-uc…
mpasternak Jun 3, 2026
2572066
docs(multi-hosted): HANDOFF - verify.py per-uczelnia ZROBIONE (brak o…
mpasternak Jun 3, 2026
88b688d
docs(multi-hosted): next-session handoff - 4 audyty (get_default/cele…
mpasternak Jun 3, 2026
09a03da
docs(multi-hosted): raport 4 audytów + backlog R3 w HANDOFF
mpasternak Jun 3, 2026
00e3dd4
docs(multi-hosted): specy R3a (widoki Rekord/Sumy) + R3b (publiczne a…
mpasternak Jun 3, 2026
7a00a76
feat(multi-hosted): helper scope_rekord_do_uczelni + guard single-ins…
mpasternak Jun 3, 2026
caa012c
feat(multi-hosted): raport poziom-uczelnia zawężony per uczelnia (R3a)
mpasternak Jun 3, 2026
75de645
feat(multi-hosted): browse lata/rok zawężone per uczelnia (R3a)
mpasternak Jun 3, 2026
27e92eb
feat(multi-hosted): OAI feed zawężony per uczelnia (R3a)
mpasternak Jun 3, 2026
0800073
feat(multi-hosted): ranking autorów zawężony po aktualnej jednostce u…
mpasternak Jun 3, 2026
24e0b0f
docs(multi-hosted): HANDOFF - R3a read-side widoki ZROBIONE, R3b nast…
mpasternak Jun 3, 2026
056e31d
docs(multi-hosted): plan implementacyjny R3a (6 tasków TDD, subagent-…
mpasternak Jun 3, 2026
7c3ad4e
docs(multi-hosted): plan R3b + uściślenie spec (autor = obecnie LUB w…
mpasternak Jun 3, 2026
c7ca60c
feat(multi-hosted): mixin UczelniaScopedAutocomplete + jednostka auto…
mpasternak Jun 3, 2026
0bca819
feat(multi-hosted): wydzial autocomplete per uczelnia (R3b)
mpasternak Jun 3, 2026
9875372
feat(multi-hosted): autor autocomplete kiedykolwiek-zwiazany per ucze…
mpasternak Jun 3, 2026
7035c53
docs(multi-hosted): HANDOFF - R3b autocomplety ZROBIONE; test admin-n…
mpasternak Jun 3, 2026
e48ccc5
fix(multi-hosted): UczelniaScopedAutocomplete mixin toleruje brak sel…
mpasternak Jun 3, 2026
f446fc2
feat(multi-hosted): PublicJednostkaAutocomplete per uczelnia (R3b fol…
mpasternak Jun 4, 2026
7f68d56
docs(multi-hosted): R3b follow-up - PublicJednostkaAutocomplete + fix…
mpasternak Jun 4, 2026
77524df
fix(multi-hosted): powiazania_autorow _pbn_root per-uczelnia (z reque…
mpasternak Jun 4, 2026
7be2b62
fix(multi-hosted): zbieraj_sloty CLI single-or-fail uczelnia + Autor.…
mpasternak Jun 4, 2026
cddd8ff
test(multi-hosted): lock integrator R2 delta (uczelnia=None -> brak a…
mpasternak Jun 4, 2026
d02fe62
docs(multi-hosted): higiena - self-review superseded, notka HST (writ…
mpasternak Jun 4, 2026
2531472
docs(multi-hosted): HANDOFF - B1-B5 ZROBIONE; brief next-session spec…
mpasternak Jun 4, 2026
3282385
fix(multi-hosted): przemapuj_zrodlo/przemapuj_zrodla_pbn enqueue z uc…
mpasternak Jun 4, 2026
4dd25a5
docs(multi-hosted): HANDOFF - B6 (kolejka PBN uczelnio-zależna, enque…
mpasternak Jun 4, 2026
1678618
feat(metryki): FK uczelnia + unique_together per uczelnia (D, task 1)
mpasternak Jun 4, 2026
735a44e
fix(metryki): napraw test unique_together + komentarz backfill 0-ucze…
mpasternak Jun 4, 2026
3a7b254
feat(metryki): StatusGenerowania per uczelnia, koniec singletonu (D, …
mpasternak Jun 4, 2026
0476069
refactor(metryki): cleanup StatusGenerowania docstring/save/import (D…
mpasternak Jun 4, 2026
eb315b8
fix(metryki): pipeline utils per uczelnia, naprawa knapsack leak + sl…
mpasternak Jun 4, 2026
e7b1312
perf/refactor(metryki): select_related uczelnia (N+1) + hoist uczelni…
mpasternak Jun 4, 2026
8375649
feat(metryki): taski Celery scope per uczelnia + status per uczelnia …
mpasternak Jun 4, 2026
d897938
refactor(metryki): _resolve_uczelnia helper + czytelny early-return n…
mpasternak Jun 4, 2026
be16406
feat(metryki): CLI oblicz_metryki scope per uczelnia single-or-fail (…
mpasternak Jun 4, 2026
678a3fc
test/refactor(metryki): pozytywna asercja u1 + options[] + import hou…
mpasternak Jun 4, 2026
df9bd96
feat(metryki): helper scope_metryki + generation view per uczelnia (D…
mpasternak Jun 4, 2026
1153991
feat(metryki): read-side lista + statystyki filtrowane per uczelnia (…
mpasternak Jun 4, 2026
aa0e9c7
fix(metryki): scope discipline_count subquery + uzywa_wydzialow po uc…
mpasternak Jun 4, 2026
7684534
feat(metryki): eksporty XLSX scoped per uczelnia (base_qs, Opcja A) (…
mpasternak Jun 4, 2026
1ee9b59
fix(metryki): scope widoczność kolumny dyscypliny w eksporcie + ujedn…
mpasternak Jun 4, 2026
5cd2d61
feat(metryki): detail ranking/inne_dyscypliny + pin_unpin redirect pe…
mpasternak Jun 4, 2026
d6cbecb
feat(metryki): admin pokazuje uczelnia w MetrykaAutora (parytet R2) (…
mpasternak Jun 4, 2026
b58d203
feat(metryki): MetrykaAutora.uczelnia NOT NULL po backfillu; StatusGe…
mpasternak Jun 4, 2026
589625d
test(metryki): hoist Uczelnia imports + spójne uczelnia wiring (D, ta…
mpasternak Jun 4, 2026
5ddd3fe
docs(metryki): popraw mylący komentarz 'Singleton' w StatusGenerowani…
mpasternak Jun 4, 2026
d947f0e
docs(multi-hosted): wątek D (ewaluacja_metryki per-uczelnia) ZROBIONY…
mpasternak Jun 4, 2026
e79328a
docs(multi-hosted): brief next-session — audyt pokrycia uczelnia (get…
mpasternak Jun 4, 2026
6a7cec6
fix(raport_slotow): raport zerowy zawęża 'existent' do uczelni ogląda…
mpasternak Jun 4, 2026
c1f2ad2
fix(oswiadczenia): wydruk oświadczeń 2022-25 per-uczelnia + uczelnia_…
mpasternak Jun 4, 2026
8b6ea82
fix(zglos_publikacje): wizard przekazuje uczelnię do formy/instancji …
mpasternak Jun 4, 2026
35c3be3
chore(bpp): usuń nieużywaną komendę wyczysc_baze (audyt uczelnia, tra…
mpasternak Jun 4, 2026
90a0f58
docs(pbn_api): komentarze per-uczelnia na modelach lustra PBN (audyt …
mpasternak Jun 4, 2026
4cd8a8a
fix(bpp): profil pokazuje metryki tylko z uczelni z requestu (audyt u…
mpasternak Jun 4, 2026
21b0e27
fix(bpp): LataAutocomplete zawężony do uczelni oglądającego (audyt uc…
mpasternak Jun 4, 2026
43beb74
fix(bpp): publiczny global-search nawigacyjny per-uczelnia (audyt ucz…
mpasternak Jun 4, 2026
e054a20
fix(bpp): tabela punktacji na stronie rekordu per-uczelnia (audyt ucz…
mpasternak Jun 4, 2026
81d1ba7
docs(multi-hosted): raport audytu pokrycia uczelnia + specy track 4/6
mpasternak Jun 4, 2026
c99452e
fix(pbn): SentData per-uczelnia — klucz wysyłki (object_id, content_t…
mpasternak Jun 4, 2026
45ae7c0
fix(pbn): graceful SentData lookup w detalu kolejki dla untagged mult…
mpasternak Jun 4, 2026
583d09b
fix(ewaluacja): Uczelnia.objects.first() → uczelnia z requestu/single…
mpasternak Jun 4, 2026
035fa6f
fix(ewaluacja): mutujące widoki browser_* używają get_for_request (tr…
mpasternak Jun 4, 2026
a9a55aa
docs(ewaluacja): popraw docstring solve_uczelnia po single-or-fail (t…
mpasternak Jun 4, 2026
ea4dd41
docs(multi-hosted): track 4 + 6 oznaczone jako ZROBIONE w raporcie au…
mpasternak Jun 4, 2026
e729c44
fix(pbn): scope lustra PBN per-uczelnia po institutionId — delete cro…
mpasternak Jun 4, 2026
77c12cf
docs(pbn): handoff track7 + notka federacyjnej wysyłki/kasowania oświ…
mpasternak Jun 4, 2026
cbe10e6
fix(pbn_integrator): napraw TypeError w integruj_publikacje_instytucj…
mpasternak Jun 4, 2026
f495532
feat(pbn): tag PublikacjaInstytucji_V2 per-uczelnia + link_do_pi per …
mpasternak Jun 4, 2026
c3e0e36
Merge origin/dev into feature/multi-hosted-config
mpasternak Jun 4, 2026
5161558
Merge origin/dev into feature/multi-hosted-config (re-merge)
mpasternak Jun 4, 2026
2b0cd07
Potential fix for pull request finding 'CodeQL / Incomplete URL subst…
mpasternak Jun 4, 2026
01bee92
fix(nowe_raporty): get_default() zamiast gołego get() w forms __init_…
mpasternak Jun 4, 2026
138361f
fix(nowe_raporty): uczelnia z request._uczelnia (bez "default"), None…
mpasternak Jun 4, 2026
9a84e5e
refactor(uczelnia): USUŃ get_default/default na trwałe; get_for_reque…
mpasternak Jun 4, 2026
6363718
fix(tests): napraw testy po usunięciu get_default (CI green)
mpasternak Jun 5, 2026
18a7651
fix(pbn): catch-all w workerach MUSI logować traceback + Rollbar
mpasternak Jun 5, 2026
cbfdb4c
Merge branch 'dev' into feature/multi-hosted-config
mpasternak Jun 5, 2026
fad07cf
test(pbn-import): test uczelnia_id z requestu respektuje walidację do…
mpasternak Jun 5, 2026
ccf41ce
test(pbn-integrator): dostosuj test logowania błędów workera do sygna…
mpasternak Jun 5, 2026
6de172f
style: ruff format 4 plików niesformatowanych na branchu (gejt Lint c…
mpasternak Jun 5, 2026
90f7ec3
test(multi-hosted): dodaj fixture typy_odpowiedzialnosci do testów la…
mpasternak Jun 5, 2026
2e23d75
Merge branch 'dev' (8c6eb3e) into feature/multi-hosted-config
mpasternak Jun 5, 2026
e3049a6
Potential fix for pull request finding 'CodeQL / Incomplete URL subst…
mpasternak Jun 5, 2026
340366b
fix(authserver): dodaj formdefaults do INSTALLED_APPS authservera
mpasternak Jun 5, 2026
caae838
fix(pbn-import): domyślna jednostka z formularza + gate-check multi-h…
mpasternak Jun 5, 2026
6cdbd6a
test(pbn-import): kontraktowy regres _setup_uczelnia_and_jednostka
mpasternak Jun 5, 2026
a0fb98e
test(cache): napraw order-dependent test index-seek po PK (#311)
mpasternak Jun 5, 2026
8d8a28d
Merge branch 'feature/multi-hosted-config' of github.com:iplweb/bpp i…
mpasternak Jun 5, 2026
f954de8
test(pbn-import): pokryj orkiestrator ImportManager (21% → 72%)
mpasternak Jun 5, 2026
4192c41
feat(pbn-import): zakładka „Log" + pobieranie tekstowego raw logu
mpasternak Jun 5, 2026
85b124a
feat(pbn-import): zakładka „Log" widoczna dla każdego statusu sesji
mpasternak Jun 5, 2026
710e568
perf(pbn-import): przytnij podgląd inline logu (ochrona przed mega dł…
mpasternak Jun 5, 2026
5a7985e
Add PBN import coverage tests (#332)
mpasternak Jun 5, 2026
1874678
feat(pbn-import): tytuły w obcych językach jako wiersze + obsługa za …
mpasternak Jun 5, 2026
360574f
fix(oidc): napraw logowanie OIDC + menu instytucjonalne per-uczelnia …
mpasternak Jun 5, 2026
95e0d99
fix(oidc): wyloguj sesję OIDC z Keycloaka także w trybie mieszanym z …
mpasternak Jun 5, 2026
4a0b45f
Merge branch 'dev' into feature/multi-hosted-config
mpasternak Jun 6, 2026
56f2600
Djangoql-iplweb 0.27.2
mpasternak Jun 6, 2026
c36a6a5
Potential fix for pull request finding 'CodeQL / Incomplete URL subst…
mpasternak Jun 6, 2026
4dcc560
Merged origin/dev
mpasternak Jun 6, 2026
db8064f
fix(pbn-import): odporny import publikacji + domyślny język (polski)
mpasternak Jun 6, 2026
91d5ef1
fix(autocomplete): autorzy — publiczny płaski + tylko uczelnia; nowy …
mpasternak Jun 6, 2026
29bd2de
feat(bpp): komenda wyczysc_publikacje_importu — selektywne czyszczeni…
mpasternak Jun 6, 2026
f51f30b
style: napraw lint changed-files (ruff + ruff-format) na branchu
mpasternak Jun 6, 2026
991d64f
fix(tests): consumer tests odporne na przeciekły event loop (sharding…
mpasternak Jun 6, 2026
8c86cf7
Monitorowanie progressu
mpasternak Jun 7, 2026
b833e93
fix(pbn-import): odporny openAccess + round-trip originalLanguage (#335)
mpasternak Jun 7, 2026
326dcff
fix(multihosted): wyplenij Uczelnia.objects.first() z runtime + walid…
mpasternak Jun 7, 2026
28609e3
PBN import: rozdzielenie pobierania od przetwarzania (#347)
mpasternak Jun 12, 2026
8aaf5d4
fix(pbn-import): dopasowanie autorów po nazwisku + odporne przypisywa…
mpasternak Jun 12, 2026
27f6beb
Merge remote-tracking branch 'origin/dev' into feature/multi-hosted-c…
mpasternak Jun 12, 2026
5a37da5
chore(migrations): merge migration po scaleniu dev (0430 + 0429_cache…
mpasternak Jun 12, 2026
73d8dd1
fix(security): zamknij 5 alertów CodeQL (open-redirect + ekspozycja w…
mpasternak Jun 12, 2026
09f437c
fix(security): stała w fallbacku redirectu paginacji (domknięcie CodeQL)
mpasternak Jun 12, 2026
2cd324e
Merge branch 'feature/multi-hosted-config' of github.com:iplweb/bpp i…
mpasternak Jun 12, 2026
6fc767e
Merge remote-tracking branch 'origin/dev' into feature/multi-hosted-c…
mpasternak Jun 12, 2026
de0f620
style(pbn-import): wyrównaj do lewej checkboxy i scalone komórki form…
mpasternak Jun 12, 2026
714b540
fix(ci): napraw testy po scaleniu dev (eksport jednostki, migracje, a…
mpasternak Jun 12, 2026
b1cd6d0
fix(deps): bump django 5.2.15 + pypdf 6.13.2 (pip-audit gate)
mpasternak Jun 12, 2026
354791f
Merge branch 'feature/multi-hosted-config' of github.com:iplweb/bpp i…
mpasternak Jun 16, 2026
be10b88
fix(auth): ukryj „zmianę hasła" i nie 500-uj przy logowaniu OIDC
mpasternak Jun 16, 2026
359600f
Merge remote-tracking branch 'origin/dev' into feature/multi-hosted-c…
mpasternak Jun 16, 2026
3ed67da
feat(oidc): instytucjonalny e-mail z wielu claimów + opt-in DEBUG zrz…
mpasternak Jun 18, 2026
c277a05
Make target
mpasternak Jun 18, 2026
c2dfca2
feat(generate_500_page): strony 500 per-domena (multi-hosted) + harde…
mpasternak Jun 18, 2026
c54cd9f
Cryptography
mpasternak Jun 17, 2026
62010d8
bump version v202606.1388 -> v202606.1389
mpasternak Jun 17, 2026
7c55dd3
## bpp 202606.1389 (2026-06-17)
mpasternak Jun 17, 2026
b60b28b
Bezpieczeństwo zależności: bumpy CVE + parytet skanera + sprzątanie i…
mpasternak Jun 17, 2026
30d4db9
bump version v202606.1389 -> v202606.1390
mpasternak Jun 17, 2026
e16474f
## bpp 202606.1390 (2026-06-17)
mpasternak Jun 17, 2026
05be9b8
Merge branch 'dev' into feature/multi-hosted-config
mpasternak Jun 18, 2026
964d9a2
Czyszczenie importu PBN: usunięcie martwego WebSocketa, perf logów, n…
mpasternak Jun 18, 2026
a2124bf
OIDC: mail-first claimy (konfigurowalne) + uczelnia-aware dopasowanie…
mpasternak Jun 18, 2026
eedc422
PBN import: obca jednostka per-uczelnia + gate-check (multi-hosted)
mpasternak Jun 18, 2026
e7716bc
Merge remote-tracking branch 'origin/dev' into feature/multi-hosted-c…
mpasternak Jun 18, 2026
69d0ac1
test(metryki): odflakuj test_profil_metryki — pinuj pola wejściowe Me…
mpasternak Jun 18, 2026
e10e879
fix(pbn_import): nie twierdź „przebiegł pomyślnie" dla pustego logu t…
mpasternak Jun 18, 2026
8a2867c
fix(multihosted): wyróżniaj „naszego" autora per-host, nie globalnie
mpasternak Jun 18, 2026
d3f1a90
fix(pbn): leniwe rozwiązywanie uczelni w PBNBaseCommand + Rollbar dla…
mpasternak Jun 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
10 changes: 10 additions & 0 deletions .env.docker
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,17 @@ STATIC_ROOT=/staticroot
DEBUG=true

# DJANGO_BPP_DB_PASSWORD=""

# Hostname (single-host deployment, backward compat).
# Dla multi-hosted użyj DJANGO_BPP_HOSTNAMES (poniżej) i pomiń tę zmienną.
DJANGO_BPP_HOSTNAME="bpp.localnet"

# Multi-hosted: comma-separated lista nazw hostów (jedna instalacja BPP
# obsługuje wiele uczelni/domen). Pierwsza pozycja jest używana jako
# canonical hostname (m.in. identyfikacja deployment'u w Rollbarze).
# Jeśli ustawisz DJANGO_BPP_HOSTNAMES, DJANGO_BPP_HOSTNAME jest ignorowany.
# Przykład:
# DJANGO_BPP_HOSTNAMES="bpp.uczelnia1.pl,bpp.uczelnia2.pl"
DJANGO_BPP_SECRET_KEY="ZMIEN_KONIECZNIE_PRZED_URUCHOMIENIEM_PRODUKCJI"

DJANGO_BPP_DB_NAME="bpp"
Expand Down
13 changes: 13 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,6 +1,19 @@
# Moduł ustawień Django (w docker-compose devowym używamy settings.local).
# DJANGO_SETTINGS_MODULE="django_bpp.settings.local"

#
# Konfiguracja hostów
#

# Single-host (backward compat). Pojedyncza nazwa hosta serwowanego przez BPP.
# DJANGO_BPP_HOSTNAME="bpp.example.org"

# Multi-hosted: comma-separated lista nazw hostów (jedna instalacja BPP
# obsługuje wiele uczelni/domen). Pierwsza pozycja jest używana jako
# canonical hostname (m.in. identyfikacja deployment'u w Rollbarze).
# Jeśli ustawisz DJANGO_BPP_HOSTNAMES, DJANGO_BPP_HOSTNAME jest ignorowany.
# DJANGO_BPP_HOSTNAMES="bpp.uczelnia1.pl,bpp.uczelnia2.pl"

# Jeżeli w pliku konfiguracyjnym podany zostanie URI do serwera LDAP,
# włączona zostanie autoryzacja LDAP. Będzie ona miała pierwszeństwo
# wobec autoryzacji z serwera bazowego tzn z bazy danych.
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/build-docker-images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,11 @@ jobs:
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
REF_NAME: ${{ github.ref_name }}
# head_ref jest ustawione tylko dla pull_request eventów — to nazwa
# branchu zrodlowego PR-a (ref_name na PR to "<PR>/merge" ktorego
# workflow_dispatch nie akceptuje). Uzywane do hintu w komunikacie
# "jak wymusic build".
HEAD_REF: ${{ github.head_ref }}
EVENT_NAME: ${{ github.event_name }}
REPO: ${{ github.repository }}
ACTOR: ${{ github.actor }}
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ jobs:

steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
persist-credentials: false

- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ htmlcov/
nosetests.xml
coverage.xml
coverage.json
coverage-*.json
cov_html/
*,cover

Expand Down
19 changes: 18 additions & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,23 @@ repos:
# diff-y indentacji na pre-commit, blokujac niezmienione pliki).
args: ["--lint"]
files: \.html$
exclude: ^(node_modules/|.*/migrations/|.*/staticroot/|src/django_bpp/static/500\.html$|src/bpp/static/500\.html$)
# Tech-debt z dev (dochodzi w merge'u origin/dev): templaty
# z wzorcem `{% if %}<a>{% else %}<a>{% endif %}content</a>`
# ktorego djlint nie potrafi sparsowac (H025 orphan tags) +
# pojedyncze H020 empty-tag. Pre-existing na dev, follow-up
# PR rozwiaze refactorem href-y do jednego wezla
# `<a href="?{% if x %}{{x}}&{% endif %}sort=...">`.
exclude: |
(?x)^(
node_modules/
| .*/migrations/
| .*/staticroot/
| src/django_bpp/static/500\.html$
| src/bpp/static/500\.html$
| src/rozbieznosci_if/templates/rozbieznosci_if/index\.html$
| src/rozbieznosci_pk/templates/rozbieznosci_pk/index\.html$
| src/snapshot_odpiec/templates/snapshot_odpiec/snapshotodpiec_list\.html$
)

- repo: https://github.com/pre-commit/pre-commit-hooks
rev: 'v6.0.0'
Expand All @@ -39,6 +55,7 @@ repos:
# base file. PyYAML's safe loader doesn't know
# Compose-specific tags, so check-yaml chokes on a file
# that `docker compose config` parses fine.
#
# mkdocs.yml uses `!!python/object/apply:pymdownx.slugs.slugify`
# (Python-object tag) — SafeLoader odmawia jego budowy, choć
# `mkdocs build --strict` parsuje plik bez problemu.
Expand Down
21 changes: 21 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -398,6 +398,27 @@ usuwajacy tagi starsze niz N dni.
- Fixtures in `src/conftest.py` and subdirectories
- Full suite timeout: at least 600000ms (10 minutes)

### Uruchamiaj testy LOKALNIE — nie spychaj wszystkiego na CI

**Domyślnie odpalaj testy na swojej maszynie.** „Środowiskowo-ciężkie",
„zostawmy to CI", „Playwright wymaga setupu" to NIE są powody, żeby pominąć
lokalny przebieg — to najwyżej powód, żeby najpierw zrobić warunki wstępne
(`make assets`, `make playwright-install`). Brak warunku wstępnego = wykonaj go,
nie pomijaj testu.

- **Praca nad zdalnym branchem / w PR:** odpalenie lokalnego `make tests`
**równolegle** z czekaniem na CI jest OK i **zalecane** — szybszy feedback,
łapiesz regresje zanim CI je zwróci, nie marnujesz rundy CI. Te dwa kanały się
nie wykluczają; rób oba.
- Pełne `make tests` przerywa się na pierwszym błędnym kroku (`make` zwraca na
Error 1), więc gdy `tests-without-playwright` padnie, kroki
`tests-only-playwright` i `js-tests` się NIE wykonają. Po naprawie Pythona
**dokończ** pozostałe kroki (albo ponów całe `make tests`), zamiast uznać je
za „pominięte".
- Jedyny akceptowalny powód, by czegoś nie odpalić lokalnie: fizyczny brak
możliwości (np. brak działającego Dockera dla testcontainers) — wtedy powiedz
to wprost, a nie „jest ciężkie".

### Testy Playwright (`src/integration_tests/`) lokalnie

Testy przeglądarkowe (np. `test_global_search.py`) **da się** odpalić
Expand Down
30 changes: 29 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@

BRANCH=`git branch | sed -n '/\* /s///p'`

.PHONY: help clean distclean tests test-durations release tests-without-playwright tests-only-playwright docker destroy-test-databases cache-delete buildx-cache-stats buildx-cache-prune buildx-cache-prune-aggressive buildx-cache-prune-registry buildx-cache-export buildx-cache-import buildx-cache-list bump-dev bump-release bump-and-start-dev migrate new-worktree clean-worktree generate-500-page build build-force build-base build-app-services build-appserver-base build-appserver build-workerserver build-beatserver build-authserver build-denorm-queue build-servers check-clean-tree prepare-claude prepare-developer-machine prepare-developer-machine-linux prepare-developer-machine-macos playwright-install
.PHONY: help clean distclean tests test-durations release tests-without-playwright tests-only-playwright docker destroy-test-databases cache-delete buildx-cache-stats buildx-cache-prune buildx-cache-prune-aggressive buildx-cache-prune-registry buildx-cache-export buildx-cache-import buildx-cache-list bump-dev bump-release bump-and-start-dev migrate new-worktree clean-worktree generate-500-page build build-force build-base build-app-services build-appserver-base build-appserver build-workerserver build-beatserver build-authserver build-denorm-queue build-servers docker-images-on-ci check-clean-tree prepare-claude prepare-developer-machine prepare-developer-machine-linux prepare-developer-machine-macos playwright-install

.DEFAULT_GOAL := help

Expand Down Expand Up @@ -530,6 +530,34 @@ gh-run-watch-docker-images: ## Obserwuj najnowszy run workflow "Docker - oficjal
gh-run-watch-docker-images-alt: ## Alternatywna wersja gh-run-watch-docker-images (pipe)
gh run list --workflow="Docker - oficjalne obrazy" --limit=1 --json databaseId --jq '.[0].databaseId' | xargs gh run watch

docker-images-on-ci: ## Wyślij build "Docker - oficjalne obrazy" na CI i obserwuj go
@BRANCH=$$(git rev-parse --abbrev-ref HEAD); \
UPSTREAM=$$(git rev-parse --abbrev-ref --symbolic-full-name "@{u}" 2>/dev/null || true); \
if [ -z "$$UPSTREAM" ]; then \
echo "BŁĄD: Gałąź $$BRANCH nie ma upstreamu. Wypchnij ją najpierw na remote."; \
exit 1; \
fi; \
if [ -n "$$(git status --porcelain)" ]; then \
echo "BŁĄD: Working tree zawiera niezcommitowane zmiany. Zcommituj lub stashuj je przed wysłaniem buildu na CI."; \
exit 1; \
fi; \
if [ "$$(git rev-parse HEAD)" != "$$(git rev-parse "$$UPSTREAM")" ]; then \
echo "BŁĄD: Lokalna gałąź $$BRANCH nie jest zsynchronizowana z $$UPSTREAM."; \
echo " Wypchnij zmiany przed wysłaniem buildu na CI."; \
exit 1; \
fi; \
echo "Wysyłam build Docker - oficjalne obrazy na CI dla gałęzi: $$BRANCH"; \
gh workflow run build-docker-images.yml --ref "$$BRANCH"; \
echo "Czekam na pojawienie się runu..."; \
sleep 3; \
RUN_ID=$$(gh run list --workflow="Docker - oficjalne obrazy" --branch="$$BRANCH" --limit=1 --json databaseId --jq '.[0].databaseId'); \
if [ -z "$$RUN_ID" ]; then \
echo "BŁĄD: Nie udało się znaleźć nowego runu workflow."; \
exit 1; \
fi; \
echo "Obserwuję run ID: $$RUN_ID"; \
gh run watch "$$RUN_ID"

##@ Wersjonowanie i release

sleep-3: ## `sleep 3` (helper używany w pipeline release)
Expand Down
1 change: 1 addition & 0 deletions conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ def pytest_configure(config):
# Load fixtures from submodules - must be at top-level conftest per pytest requirements
pytest_plugins = [
"fixtures.conftest_models",
"fixtures.conftest_multisite",
"fixtures.conftest_publications",
"fixtures.conftest_system",
"fixtures.conftest_browser",
Expand Down
5 changes: 5 additions & 0 deletions docker/bpp_base/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,11 @@ COPY src/bpp/static/scss/ src/bpp/static/scss/
COPY src/bpp/static/bpp/scss/ src/bpp/static/bpp/scss/
# JS for esbuild bundle
COPY src/bpp/static/bpp/js/ src/bpp/static/bpp/js/
# Notifications JS jest teraz dostarczane przez pakiet django-channels-broadcast
# (zainstalowany przez uv) — collectstatic w runtime stage zaciągnie pliki
# z venv-a. Stara apka src/notifications/ usunięta na dev w commicie
# 048c2cfa2 (refactor: usun src/notifications/ — dostarczane przez
# django-channels-broadcast).
# JS for esbuild bundle eksploratora powiązań (cytoscape-entry + moduły ES)
COPY src/powiazania_autorow/static/powiazania_autorow/js/ \
src/powiazania_autorow/static/powiazania_autorow/js/
Expand Down
34 changes: 17 additions & 17 deletions docs/administrator/konfiguracja-pbn.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,56 +30,56 @@ W formularzu edycji uczelni/instytucji znajdziesz następujące pola związane z

### Podstawowe ustawienia API

**Adres API w PBN**
**Adres API w PBN**
- **Pole:** `pbn_api_root`
- **Domyślna wartość:** `https://pbn-micro-alpha.opi.org.pl`
- **Opis:** Adres serwera testowego API PBN. W wersji produkcyjnej należy ustawić `https://pbn.nauka.gov.pl/`
- **Format:** Pełny adres URL (np. `https://pbn-micro-alpha.opi.org.pl`)

**Nazwa aplikacji w PBN**
**Nazwa aplikacji w PBN**
- **Pole:** `pbn_app_name`
- **Wymagane:** Tak
- **Opis:** Identyfikator aplikacji otrzymany przy rejestracji w PBN
- **Maksymalna długość:** 128 znaków

**Token aplikacji w PBN**
**Token aplikacji w PBN**
- **Pole:** `pbn_app_token`
- **Wymagane:** Tak
- **Opis:** Token bezpieczeństwa aplikacji otrzymany z PBN
- **Maksymalna długość:** 128 znaków
- **Uwaga:** Pole to zawiera dane poufne

**Odpowiednik w PBN**
**Odpowiednik w PBN**
- **Pole:** `pbn_uid`
- **Opis:** Instytucja w bazie PBN odpowiadająca Twojej uczelni
- **Uwaga:** Pole to zostanie automatycznie wypełnione po zaimportowaniu danych instytucji z PBN

Opcje eksportu danych
--------------------

**Kasuj oświadczenia rekordu przed wysłaniem do PBN**
**Kasuj oświadczenia rekordu przed wysłaniem do PBN**
- **Pole:** `pbn_api_kasuj_przed_wysylka`
- **Domyślnie:** Nie zaznaczone
- **Opis:** Gdy zaznaczone, system usunie wszystkie istniejące oświadczenia publikacji w PBN przed przesłaniem nowych danych

**Nie wysyłaj do PBN prac z punktami MNISW = 0**
**Nie wysyłaj do PBN prac z punktami MNISW = 0**
- **Pole:** `pbn_api_nie_wysylaj_prac_bez_pk`
- **Domyślnie:** Nie zaznaczone
- **Opis:** Blokuje wysyłanie do PBN publikacji bez punktów MNiSW

**Wysyłaj prace bez oświadczeń**
**Wysyłaj prace bez oświadczeń**
- **Pole:** `pbn_wysylaj_bez_oswiadczen`
- **Domyślnie:** Nie zaznaczone
- **Opis:** Umożliwia wysyłanie do PBN publikacji bez oświadczeń dyscyplinowych. Takie publikacje trafiają do repozytorium PBN zamiast do systemu ewaluacyjnego i nie zawierają informacji o dyscyplinach naukowych autorów

**Wysyłaj zawsze PBN UID uczelni jako afiliację**
**Wysyłaj zawsze PBN UID uczelni jako afiliację**
- **Pole:** `pbn_api_afiliacja_zawsze_na_uczelnie`
- **Domyślnie:** Zaznaczone
- **Opis:** Gdy zaznaczone, wszystkie publikacje będą afiliowane do uczelni, a nie do konkretnych jednostek organizacyjnych;
zachowanie to jest obecnie domyślne - pole używane było w czasach, gdy publikacja mogła być afiliowana na konkretną
jednostkę uczelni/instytucji w PBN (na Klinikę, Dział, Katedrę itp...).

**Użytkownik BPP dla PBN API**
**Użytkownik BPP dla PBN API**
- **Pole:** `pbn_api_user`
- **Opis:** Użytkownik systemu BPP odpowiedzialny za automatyczne operacje z PBN wykonywane przez procesy systemowe
- **Uwaga:** Ten użytkownik musi wykonać autoryzację w PBN, aby umożliwić automatyczne operacje (w tle)
Expand Down Expand Up @@ -123,35 +123,35 @@ Po skonfigurowaniu integracji zaleca się import podstawowych danych słownikowy

## Typowe problemy i rozwiązania

**Problem:** Komunikat "Brak nazwy aplikacji dla API PBN"
**Problem:** Komunikat "Brak nazwy aplikacji dla API PBN"
- **Rozwiązanie:** Wypełnij pole "Nazwa aplikacji w PBN" w ustawieniach uczelni

**Problem:** Komunikat "Brak tokena aplikacji dla API PBN"
**Problem:** Komunikat "Brak tokena aplikacji dla API PBN"
- **Rozwiązanie:** Wypełnij pole "Token aplikacji w PBN" w ustawieniach uczelni

**Problem:** Komunikat "Token aplikacji PBN nieprawidłowy"
**Problem:** Komunikat "Token aplikacji PBN nieprawidłowy"
- **Rozwiązanie:** Sprawdź poprawność skopiowanego tokena w PBN, upewnij się że nie ma dodatkowych spacji

**Problem:** Komunikat "Najpierw wykonaj autoryzację w PBN API"
**Problem:** Komunikat "Najpierw wykonaj autoryzację w PBN API"
- **Rozwiązanie:** Wykonaj proces autoryzacji opisany w sekcji "Autoryzacja w systemie PBN"

**Problem:** Brak możliwości wysyłania publikacji do PBN
**Problem:** Brak możliwości wysyłania publikacji do PBN
- **Rozwiązanie:** Upewnij się, że pole "Odpowiednik w PBN" jest wypełnione i że wykonano autoryzację użytkownika

## Operacje na publikacjach

Po skonfigurowaniu integracji możesz:

**Wysyłać pojedyncze publikacje do PBN:**
**Wysyłać pojedyncze publikacje do PBN:**
1. Otwórz publikację w panelu administracyjnym
2. Użyj przycisku **Wyślij do PBN** (jeśli dostępny)
3. System automatycznie wyśle publikację i pobierze z powrotem dane wraz z PBN UID

**Importować dane publikacji z PBN:**
**Importować dane publikacji z PBN:**
- System może automatycznie pobierać informacje o publikacjach już istniejących w PBN
- Możliwe jest też pobieranie abstraktów i innych metadanych

**Zarządzać oświadczeniami dyscyplin:**
**Zarządzać oświadczeniami dyscyplin:**
- System automatycznie wysyła oświadczenia dotyczące dyscyplin naukowych autorów
- Możliwa jest również wysyłka samych oświadczeń bez całej publikacji

Expand Down
2 changes: 1 addition & 1 deletion docs/administrator/ogolna.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ formularza, następnie zaznacz lub odznacz opcję "Publiczny" i zapisz rekord
powiązań autor + rekord dla danego roku, dla danego autora - we wszystkich rekordach, które
mają „starą” subdyscyplinę - na pustą.

4. **usunięcie przypisania** autora do dyscypliny (rekord `Autor_Dyscyplina`) powoduje ustawienie
4. **usunięcie przypisania** autora do dyscypliny (rekord `Autor_Dyscyplina`) powoduje ustawienie
wartości pustej (`NULL`) dla danego roku, dla danego autora - we wszystkich rekordach, do
których przypisany jest dany autor.

Expand Down
Loading
Loading