Skip to content

feat(profil-autora): sekcja osiągnięć z RAD-on OpenData (client-side, po ORCID)#478

Merged
mpasternak merged 3 commits into
feature/profil-autorafrom
feat/radon-profil-autora
Jul 8, 2026
Merged

feat(profil-autora): sekcja osiągnięć z RAD-on OpenData (client-side, po ORCID)#478
mpasternak merged 3 commits into
feature/profil-autorafrom
feat/radon-profil-autora

Conversation

@mpasternak

Copy link
Copy Markdown
Member

Cel

Sekcja „Osiągnięcia naukowe (RAD-on)" na podstronie autora (/autor/<pk|slug>/)
dla naukowców z ORCID — dane pobierane na żywo po stronie klienta z
publicznego RAD-on OpenData (radon.nauka.gov.pl), dopasowane po ORCID,
z podpisem „informacje pobrane z RAD-on".

Bazuje na PR #385 (rejestr sekcji bpp.profil_autora).

Co pokazuje (wszystko client-side, zweryfikowane po ORCID)

Blok Usługa RAD-on Weryfikacja
Stopnie / tytuły / zatrudnienie POST /scientist/search personalData.orcid
Projekty naukowe (z kwotami) GET /polon/projects projectManagers[].ORCID
Patenty i prawa ochronne GET /polon/products inventors[].persons[].relatedOrcid
Osiągnięcia artystyczne (+ nagrody) GET /polon/artisticAchievements authors[].orcid

Publikacje świadomie pominięte — są w bazie BPP.

Jak to działa

  • Odpytywacz RAD-on wydzielony do osobnego pakietu npm @iplweb/radon-opendata
    (repo: iplweb/radon-opendata, MIT, provenance) — bundlowany esbuildem do
    bundle.js (import w bundle-entry.js).
  • radon-profil.js znajduje kontener [data-radon-osiagniecia], dociąga dane
    po ORCID i renderuje przez textContent (anty-XSS); przy braku danych /
    błędzie kontener zostaje ukryty (degradacja per-blok, bez wyjątku).
  • Sekcja template_only w rejestrze — wpina się w istniejący układ bez migracji
    danych; brak zmian modelu.

RAD-on OpenData — ustalenia (przetestowane na żywo)

  • CORS otwarty na /opendata/* → fetch prosto z przeglądarki, bez proxy.
  • Usługa scientist (dane zintegrowane) zwraca ORCID w wyniku, choć nie
    pozwala po nim filtrować → szukamy po nazwisku, wybieramy po zgodnym ORCID
    (homonimy rozwiązane twardo).
  • Usługi POL-on projects/products/artisticAchievements filtrowalne po
    osobie (kierownik/wynalazca/autor), a rekord niesie ORCID do weryfikacji.

Testy

  • pytest (3): sekcja w katalogu; kontener renderuje się z data-orcid/
    data-nazwisko gdy autor ma ORCID; brak kontenera bez ORCID. Cała suita
    test_profil zielona (129 passed), zero regresji.
  • vitest (5, jsdom): render wyniku, brak innerHTML, parsowanie danych,
    degradacja przy błędzie. Cała suita JS zielona (51 passed).
  • Bundle esbuild buduje się z pakietem; @iplweb/radon-opendata@0.1.1
    zweryfikowany end-to-end na żywym API (Kowalczewski: dr 2016 / hab. 2023,
    projekty MINIATURA 47 861 zł / LIDER 1 413 625 zł, patenty).

Poza zakresem (świadomie)

Ludzie Nauki (CORS zamknięty / OAuth), publikacje, cache serwerowy, SCSS-owy
polish bloków (używa istniejącego author-info-section).

🤖 Generated with Claude Code

mpasternak and others added 3 commits July 7, 2026 21:31
Sekcja na podstronie autora pobierająca na żywo (client-side) dane z
RAD-on scientist/search dla autorów z ORCID: stopnie/tytuły/wykształcenie/
zatrudnienie/dyscypliny. Dopasowanie po nazwisku + weryfikacja po ORCID
(scientist zwraca personalData.orcid). CORS otwarty. Ludzie Nauki i
projekty/publikacje świadomie poza zakresem (CORS zamknięty / brak filtra
po osobie).

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

Odkryte usługi POL-on filtrowalne po osobie (wszystkie CORS otwarty,
client-side): polon/projects (po kierowniku, weryfikacja projectManagers[].ORCID),
polon/products (patenty, po wynalazcy, inventors[].persons[].relatedOrcid),
polon/artisticAchievements (po autorze, authors[].orcid, + nagrody).
Publikacje świadomie pominięte (są w bazie BPP).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Nowa sekcja template-only 'Osiągnięcia (RAD-on)' na podstronie autora,
widoczna dla autorów z ORCID. Dane pobierane na żywo w przeglądarce z
RAD-on OpenData przez @iplweb/radon-opendata (bundlowany esbuildem),
dopasowane po ORCID: stopnie/tytuły, projekty (z kwotami), patenty,
osiągnięcia artystyczne. Publikacje pominięte (są w bazie BPP).

- profil_autora: KLUCZ_RADON + wpis w KATALOG_SEKCJI (lewa kolumna)
- partial radon_osiagniecia.html: kontener [data-radon-osiagniecia],
  bramka po autor.orcid, podpis 'informacje pobrane z RAD-on'
- radon-profil.js: render przez textContent (anty-XSS), degradacja
  per-kontener bez wyjątku; wpięty w bundle-entry.js
- testy: 3 pytest (katalog + render kontenera) + 5 vitest (render/wire)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mpasternak
mpasternak merged commit 7598c91 into feature/profil-autora Jul 8, 2026
3 checks passed
@mpasternak
mpasternak deleted the feat/radon-profil-autora branch July 8, 2026 07:34
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