feat(profil-autora): sekcja osiągnięć z RAD-on OpenData (client-side, po ORCID)#478
Merged
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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)
POST /scientist/searchpersonalData.orcidGET /polon/projectsprojectManagers[].ORCIDGET /polon/productsinventors[].persons[].relatedOrcidGET /polon/artisticAchievementsauthors[].orcidPublikacje świadomie pominięte — są w bazie BPP.
Jak to działa
@iplweb/radon-opendata(repo:
iplweb/radon-opendata, MIT, provenance) — bundlowany esbuildem dobundle.js(import wbundle-entry.js).radon-profil.jsznajduje kontener[data-radon-osiagniecia], dociąga danepo ORCID i renderuje przez
textContent(anty-XSS); przy braku danych /błędzie kontener zostaje ukryty (degradacja per-blok, bez wyjątku).
template_onlyw rejestrze — wpina się w istniejący układ bez migracjidanych; brak zmian modelu.
RAD-on OpenData — ustalenia (przetestowane na żywo)
/opendata/*→ fetch prosto z przeglądarki, bez proxy.scientist(dane zintegrowane) zwraca ORCID w wyniku, choć niepozwala po nim filtrować → szukamy po nazwisku, wybieramy po zgodnym ORCID
(homonimy rozwiązane twardo).
projects/products/artisticAchievementsfiltrowalne poosobie (kierownik/wynalazca/autor), a rekord niesie ORCID do weryfikacji.
Testy
data-orcid/data-nazwiskogdy autor ma ORCID; brak kontenera bez ORCID. Cała suitatest_profilzielona (129 passed), zero regresji.innerHTML, parsowanie danych,degradacja przy błędzie. Cała suita JS zielona (51 passed).
@iplweb/radon-opendata@0.1.1zweryfikowany 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