PID views

Definice views.

Třídy

class ApiView

Implementuje komponentu ApiView v rámci aplikace.

Metody:

__init__()

Inicializuje instanci třídy.

Parametry:

kwargs – Parametr kwargs se předává do volání __init__().

_get_value_from_cache()

Vrací value from cache.

Parametry:

key – Textový název nebo klíč key používaný v rámci operace.

Vrací:

Načtená data odpovídající zadaným vstupům.

_save_value_to_cache()

Uloží value to cache.

Parametry:
  • key – Textový název nebo klíč key používaný v rámci operace.

  • value – Parametr value předává se do volání set().

Vrací:

Výstup funkce odpovídající implementované logice.

api_call()

Zavolá API dotaz pro autocomplete (abstraktní metoda).

Parametry:
  • q – Vyhledávací dotaz od uživatele.

  • use_cache – Zda používat mezipaměť výsledků.

get()

Vrací JSON odpověď s autocomplete výsledky.

Při dotazu tvořeném jen mezerami vrátí prázdný seznam výsledků.

Parametry:
  • request – HTTP požadavek ze strany klienta.

  • args – Poziční argumenty z URL.

  • kwargs – Pojmenované argumenty z URL.

Vrací:

JSON odpověď s výsledky.

autocomplete_results()

Transformuje výsledky API na formát autocomplete (id, text).

Parametry:

results – Výsledky vrácené API voláním.

Vrací:

Seznam tuples (id, text) pro autocomplete.

get_list()

Vrací list. v aplikaci.

Vrací:

Vrací výsledek volání api_call().

class DoiAutocompleteView

Implementuje komponentu DoiAutocompleteView v rámci aplikace.

Metody:

_datacite_token_for_quoted_lucene()

Escapuje znaky v tokenu vkládaném do Lucene fráze v uvozovkách.

Parametry:

token – Část uživatelského dotazu.

Vrací:

Řetězec bezpečný pro vložení do "...*token*...".

_datacite_record_label()

Vrátí zobrazený název záznamu DataCite nebo ID záznamu.

Ošetřuje záznamy bez attributes, bez titles nebo s prázdným seznamem titulků a nekanonické typy polí v odpovědi API.

Parametry:

record – Položka z pole data odpovědi API.

Vrací:

Titulek, případně DOI z id; prázdný řetězec, pokud nelze nic odvodit.

_crossref_item_display_title()

Vrátí zobrazený název z položky odpovědi CrossRef /works (objekt v items).

Parametry:

item – Slovník s poli title a DOI dle API (DOI se v odpovědi předpokládá vždy).

Vrací:

První textový titulek, jinak řetězec DOI.

_api_call_cross_ref_doi()

Vyhledá DOI v CrossRef API pomocí přímého DOI.

U objektu message (jedna práce i položky ve výsledném seznamu) se předpokládá vždy pole DOI. Záložní vyhledávání podle názvu se záměrně neprovádí — DOI jako dotaz pro query.title vrací nesouvisející výsledky z CrossRef a blokuje dotaz na DataCite.

Parametry:

q – Vyhledávací dotaz (DOI).

Vrací:

Seznam [DOI, název] párů, nebo prázdný seznam pokud DOI v CrossRef neexistuje.

_doi_item_exists()

Ověří existenci DOI pomocí HTTP HEAD požadavku.

Parametry:

doi – Řetězec DOI předaný z api_call po shodě vstupu s CROSSREF_DOI_REGEX.

Vrací:

Seznam [DOI, DOI] pokud existuje, jinak prázdný seznam.

api_call()

Vyhledá DOI v CrossRef a DataCite API.

Dotaz je na začátku ořezán funkcí str.strip(); prázdný řetězec vrátí prázdný seznam bez volání externích služeb. Ověření existence přes doi.org (_doi_item_exists) proběhne jen pro vstup odpovídající CROSSREF_DOI_REGEX.

Parametry:
  • q – Vyhledávací dotaz.

  • use_cache – Parametr se kvůli shodné signatuře s ApiView.api_call předává z PidAutocompleteField, ale u této třídy se nepoužívá (mezipaměť Redis se nečte ani neukládá).

Vrací:

Seznam [DOI, název] párů.

class OrcidAutocompleteView

Implementuje komponentu OrcidAutocompleteView v rámci aplikace.

Metody:

api_call()

Vyhledá výzkumné pracovníky v ORCID API.

Parametry:
  • q – Vyhledávací dotaz.

  • use_cache – Zda používat cache.

Vrací:

Seznam [ORCID ID, jméno] párů.

class RorAutocompleteView

Implementuje komponentu RorAutocompleteView v rámci aplikace.

Metody:

api_call()

Vyhledá organizace v ROR API.

Parametry:
  • q – Vyhledávací dotaz.

  • use_cache – Zda používat cache.

Vrací:

Seznam [ROR ID, jméno] párů.

class WikiDataAutocompleteView

Implementuje komponentu WikiDataAutocompleteView v rámci aplikace.

Metody:

_statements_contain_human()

Zjistí, zda seznam výroků P31 obsahuje hodnotu Q5 (člověk).

Parametry:

statements – Seznam výroků vrácený REST API pro vlastnost P31.

Vrací:

True, pokud některý výrok odkazuje na položku Q5.

_get_item_result()

Načte položku podle identifikátoru a vrátí ji, pokud jde o člověka.

Popisek se vybírá v pořadí jazyků LABEL_LANGUAGES; bez použitelného popisku se vrací samotný identifikátor.

Parametry:

item_id – Identifikátor položky (např. Q7186).

Vrací:

Seznam s jedním [WikiData ID, jméno] párem, nebo prázdný seznam.

check_availability()

Ověří dostupnost Wikibase REST API jediným levným požadavkem.

Slouží jako kontrola dostupnosti (např. pro OsobaAdminForm), aniž by se spouštělo plné vyhledávání. Na rozdíl od api_call chyby nepolyká — při nedostupnosti API vyhazuje výjimku.

Vrací:

None.

Vyvolá:

requests.RequestException – Pokud je API nedostupné nebo vrátí chybový stav.

api_call()

Vyhledá osoby ve Wikidata pomocí Wikibase REST API.

Dotaz tvořený pouze identifikátorem položky (Q123, případně jako URL entity) se ověří koncovým bodem /entities/items; ostatní dotazy prohledávají popisky koncovým bodem /search/items. Výsledky jsou vždy omezeny na osoby (P31 = Q5). Chyby spojení se logují a vrací se prázdný seznam.

Parametry:
  • q – Vyhledávací dotaz (jméno, identifikátor Q nebo URL entity).

  • use_cache – Parametr se kvůli shodné signatuře s ApiView.api_call předává, ale u této třídy se nepoužívá (mezipaměť Redis se nečte ani neukládá).

Vrací:

Seznam [WikiData ID, jméno] párů.

class ContinuePidProcessing

Implementuje komponentu ContinuePidProcessing v rámci aplikace.

Metody:

_perform_client_action()

Provede akci na záznamu a publikuje do DataCite.

Parametry:
  • record – Záznam k publikaci (Lokalita, SamostatnyNalez nebo Dokument).

  • attribute_name – Atribut záznamu pro uložení DOI.

  • publish_callable_method – Callable pro publikaci.

  • set_callable_method – Callable pro nastavení stavu.

Vrací:

DOI nebo chybová zpráva.

process_record()

Zpracuje záznam pro publikaci/skrytí/smazání PID.

Parametry:
  • record – Záznam k publikaci.

  • result – Výsledek formuláře.

  • result – Textový název, klíč nebo zpráva result používaná v rámci operace.

  • kwargs – Parametr kwargs pracuje se s atributy get.

Vrací:

Vrací proměnná result.