CORE views
Definice views.
Třídy
- class DownloadThumbnailSmall
Popis není k dispozici.
- class DownloadThumbnailLarge
Popis není k dispozici.
- class UpdateFileView
Třída pohledu pro zobrazení stránky pro nahrazení souboru.
Metody:
- get()
- post()
- get_context_data()
- class UploadFileView
Třída pohledu pro zobrazení stránky s uploadem souboru.
Metody:
- get_zaznam()
- get_context_data()
- dispatch()
- post()
- class BasePostUploadView
Abstraktní třída pro zpracování nahrávání souborů.
Poskytuje společnou logiku pro upload nového souboru i nahrazení existujícího souboru. Implementuje kompletní workflow pro validaci nahrávaných souborů včetně kontroly MIME typů, antivirové kontroly a detekce šifrovaných souborů. Potomci musí implementovat metodu handle_upload() pro specifické zpracování.
Popis procesu:
Kontrola přítomnosti souboru v requestu
Validace MIME typu a detekce šifrování
Antivirová kontrola nahrávaného obsahu
Předání validovaného souboru potomkům pro konkrétní zpracování
Atributy:
http_method_names(list): Povolené HTTP metody - pouze POSTsource_url(str): URL zdroje souboru (pokud je specifikována)fedora_transaction(FedoraTransaction): Instance transakce pro práci s Fedora repositoryoriginal_filename(str): Původní název nahrávaného souboru
Metody:
- post()
Zpracuje POST request s nahrávaným souborem.
Metoda provádí kompletní validaci nahrávaného souboru před jeho uložením: - Kontroluje přítomnost souboru v requestu - Validuje MIME typ a detekuje šifrované soubory - Provádí antivirovou kontrolu obsahu - Deleguje finální zpracování na potomky prostřednictvím handle_upload()
Argumenty:
request(HttpRequest): Django HTTP request objekt obsahující nahrávaný soubor*args: Poziční argumenty předané z URL dispatcheru**kwargs: Klíčové argumenty z URL patternu (např. ident_cely, typ_vazby)
Návratová hodnota:
JsonResponse: JSON odpověď s výsledkem operace
Stavové kódy odpovědi:
200: Soubor byl úspěšně validován a zpracován400: Validační chyba (chybějící soubor, šifrovaný, virus, neplatný MIME typ)500: Neznámá chyba při zpracování
- handle_upload()
Abstraktní metoda pro implementaci konkrétního zpracování nahraného souboru.
Tato metoda musí být implementována potomky třídy. Je volána z post() metody po úspěšné validaci souboru (MIME typ, antivirus). Potomci zde implementují specifickou logiku pro nové nahrání nebo aktualizaci existujícího souboru.
Argumenty:
request(HttpRequest): Django HTTP request objekt s informacemi o uživateli a sessionssoubor(TemporaryUploadedFile): Nahraný soubor z requestusoubor_data(BytesIO): Binární obsah souboru jako BytesIO objekt*args: Poziční argumenty z URL dispatcheru**kwargs: Klíčové argumenty z URL (např. ident_cely, typ_vazby, file_id)
Návratová hodnota:
JsonResponse: JSON odpověď s výsledkem operace nahrání
Výjimky:
NotImplementedError: Pokud potomek tuto metodu neimplementuje
- _append_duplicate_message()
Přidá informaci o duplicitním souboru do odpovědi.
Kontroluje, zda v systému již existuje soubor se stejným SHA-512 hashem. Pokud ano, přidá do response_data varovnou zprávu s informací o duplicitě včetně identifikátoru záznamu, ke kterému je duplicitní soubor připojen.
Argumenty:
response_data(dict): Slovník s daty odpovědi, do kterého bude přidána zprávaduplikat(QuerySet): QuerySet s duplicitními soubory (Soubor objekty)
Návratová hodnota:
dict: Upravený response_data slovník s přidanou duplicitní zprávou. Pokud není nalezen žádný duplikát, vrací nezměněný slovník.
Klíče odpovědi:
duplicate(tuple): Tuple obsahující zprávu o duplicitě ve formátu: „Soubor {original_filename} byl již nahrán k záznamu {parent_ident}. Zpráva…“
- _append_rename_message()
Přidá informaci o přejmenování souboru do odpovědi.
Pokud byl soubor během uploadu přejmenován (typicky kvůli úpravě přípony pro soulad s MIME typem), přidá do response_data informační zprávu.
Argumenty:
response_data(dict): Slovník s daty odpovědi, do kterého bude přidána zprávarenamed(bool): True pokud došlo k přejmenování, False jinaknew_name(str): Nový název souboru po přejmenování
Návratová hodnota:
dict: Upravený response_data slovník s přidanou zprávou o přejmenování. Pokud nedošlo k přejmenování (renamed=False), vrací nezměněný slovník.
Klíče odpovědi:
file_renamed(tuple): Tuple obsahující zprávu o přejmenování ve formátu: „Soubor {original_filename} byl přejmenován na {new_name}“
- _unknown_error_response()
Vrátí JSON odpověď s chybovou zprávou a HTTP status 500 pro neočekávané chyby při zpracování souboru, které nejsou pokryty specifickými error handlery.
Návratová hodnota:
JsonResponse: JSON odpověď s chybovou zprávou a HTTP status 500
- class NewFileUploadView
Pohled pro nahrání nového souboru k záznamu (projekt, dokument, samostatný nález).
Popis procesu:
Kontrola oprávnění uživatele (nebo anonymního přístupu pro projekty)
Rozlišení typu záznamu a generování názvu souboru
Validace a případná úprava přípony souboru podle MIME typu
Odstranění GPS dat z obrázků samostatných nálezů
Uložení do Fedora repository
Vytvoření záznamu v databázi s metadaty
Detekce duplicit podle SHA-512 hashe
Zaznamenání události nahrání do historie
URL parametry:
ident_cely(str): Identifikátor záznamu, ke kterému má být soubor nahrántyp_vazby(str): Typ vazby - „projekt“, „dokument“, „model3d“, nebo „pas“
Metody:
- handle_upload()
Implementuje nahrání nového souboru k záznamu.
Provádí kompletní workflow pro vytvoření nového souboru včetně kontroly oprávnění, generování názvu, uložení do repository a vytvoření databázového záznamu. Podporuje anonymní upload pro oznámení a automaticky zpracovává metadata obrázků.
Argumenty:
request(HttpRequest): HTTP request s informacemi o uživateli a sessionsoubor(TemporaryUploadedFile): Nahraný soubor z requestusoubor_data(BytesIO): Binární obsah souboru*args: Poziční argumenty z URL**kwargs: Obsahuje ‚ident_cely‘ (identifikátor záznamu) a ‚typ_vazby‘ (typ vazby)
Návratová hodnota:
JsonResponse: JSON odpověď s výsledkem operace
Stavové kódy odpovědi:
200: Soubor úspěšně nahrán400: Chyba při nahrávání (transakční konflikt, MIME typ, atd.)403: Nedostatečná oprávnění nebo překročen limit souborů500: Neexistující záznam nebo jiná interní chyba
- _resolve_object_and_name()
Rozliší typ záznamu, zkontroluje oprávnění a vygeneruje standardizovaný název souboru.
Na základě ident_cely a typ_vazby načte odpovídající záznam z databáze, ověří konzistenci mezi typ_vazby a skutečným typem objektu, zkontroluje oprávnění uživatele k nahrání souboru a vygeneruje standardizovaný název souboru podle příslušných konvencí.
Argumenty:
request(HttpRequest): HTTP request s informacemi o uživateliident_cely(str): Úplný identifikátor záznamu (např. „C-202400001“)filename(str): Původní název nahrávaného souborutyp_vazby(str): Typ vazby - „projekt“, „dokument“, „model3d“, nebo „pas“
Návratová hodnota:
tuple | JsonResponse: Při úspěchu vrací tuple (objekt, new_name): - objekt (Projekt|Dokument|SamostatnyNalez): Instance nalezeného záznamu - new_name (str): Vygenerovaný standardizovaný název souboru Při chybě vrací JsonResponse s chybovou zprávou a status kódem 403/500
- class UpdateExistingFileUploadView
Pohled pro nahrazení existujícího souboru novou verzí.
Rozdíly oproti NewFileUploadView:
Vždy vyžaduje přihlášení uživatele (LoginRequiredMixin)
Nepodporuje projekty (pouze dokument, model3d, pas)
Zachovává původní název souboru, aktualizuje pouze příponu
Aktualizuje existující záznam v Fedora repository místo vytváření nového
V historii zaznamenává jako novou verzi, ne nový soubor
URL parametry:
typ_vazby(str): Typ vazby - „dokument“, „model3d“, nebo „pas“ident_cely(str): Identifikátor záznamu, ke kterému soubor patřífile_id(int): Primary key existujícího Soubor objektu
Metody:
- handle_upload()
Implementuje aktualizaci existujícího souboru novou verzí.
Provádí kompletní workflow pro nahrazení obsahu existujícího souboru včetně validace vazeb, aktualizace v repository a databázi. Zachovává původní název souboru (s možnou úpravou přípony) a vytváří novou verzi v historii.
Argumenty:
request(HttpRequest): HTTP request s informacemi o přihlášeném uživatelisoubor(TemporaryUploadedFile): Nový nahraný soubor z requestusoubor_data(BytesIO): Binární obsah nového souboru*args: Poziční argumenty z URL**kwargs: Obsahuje ‚typ_vazby‘, ‚ident_cely‘ a ‚file_id‘
Návratová hodnota:
JsonResponse: JSON odpověď s výsledkem operace
Stavové kódy odpovědi:
200: Soubor úspěšně aktualizován400: Chyba vazby, transakční konflikt, MIME typ nebo neplatný typ_vazby403: Nedostatečná oprávnění k nahrazení souboru500: Chybějící vazba nebo jiná interní chyba
Výjimky:
Http404: Pokud soubor s daným file_id neexistuje (get_object_or_404) ZaznamSouborNotmatching: Pokud soubor nepatří k danému záznamu
- _check_update_permissions()
Zkontroluje platnost typu vazby a oprávnění uživatele k nahrazení souboru.
Na základě typ_vazby ověří, zda je nahrazení souboru povoleno pro daný typ záznamu, a zkontroluje oprávnění uživatele pomocí check_permissions.
Argumenty:
request(HttpRequest): HTTP request s informacemi o uživatelityp_vazby(str): Typ vazby - „dokument“, „model3d“, nebo „pas“ident_cely(str): Úplný identifikátor záznamufile_id(int): Primary key existujícího souboru
Návratová hodnota:
bool | JsonResponse: True pokud je vše v pořádku, JsonResponse s chybovou zprávou při problému
- class ExportMixinDate
Mixin pro získaní názvu exportovaného souboru.
Metody:
- get_export_filename()
- class PermissionFilterMixin
Popis není k dispozici.
Metody:
- check_filter_permission()
- filter_by_permission()
- add_status_lookup()
- add_ownership_lookup()
- add_accessibility_lookup()
- class SearchListView
Třída pohledu pro tabulky záznamů, která je použita jako základ pro jednotlivé pohledy.
Metody:
- create_export()
- init_translations()
- _get_sort_params()
- get_context_data()
- get_queryset()
- get()
- class StahnoutDataHistorickaView
Třída pohledu pro stažení historické verze souboru nebo metadat z Fedory
Metody:
- get()
- class RosettaFileLevelMixinWithBackup
Třída podledu pro práci s prekladmi doplnena o backup osubory.
Metody:
- po_file_path()
Based on the url kwargs, infer and return the path to the .po file to be shown/updated.
Throw a 404 if a file isn’t found.
- class TranslationImportView
Třída pohledu pro import prekladových souboru.
Metody:
- form_valid()
- get_context_data()
- handle_uploaded_file()
- class TranslationFileListWithBackupView
Třída pohledu pro zobrazení prekladových souboru s backup souborami.
Metody:
- get_context_data()
- class TranslationFormWithBackupView
Třída pohledu pro zobrazení formulaře s prekladmi i pro backup soubory
Metody:
- get_context_data()
- class TranslationFileDownloadBackup
Třída pohledu pro stahování prekladových souboru is backup souborami.
Metody:
- get()
- class TranslationFileSmazatBackup
Třída pohledu pro smazání backup prekladových souboru.
Metody:
- get()
- post()
Funkce
- index(request)
Funkce podledu pro zobrazení hlavní stránky.
- delete_file_DZ(request, typ_vazby, ident_cely, pk)
Funkce pohledu pro smazání souboru z dropzone. Funkce maže jak záznam v DB tak i soubor na disku.
- delete_file(request, typ_vazby, ident_cely, pk)
Funkce pohledu pro smazání souboru. Funkce maže jak záznam v DB tak i soubor na disku.
- get_finds_soubor_name(find, filename, add_to_index)
Funkce pro získaní jména souboru pro samostatný nález.
- get_projekt_soubor_name(projekt, file_name)
Funkce pro získaní jména souboru pro projekt.
- check_stav_changed(request, zaznam)
Funkce pro oveření jestli se zmenil stav záznamu pri uložení formuláře oproti jeho načtení.
- redirect_ident_view(request, ident_cely)
Funkce pro získaní správneho redirectu na záznam podle ident%cely záznamu.
- prolong_session(request)
Funkce pohledu pro prodloužení prihlášení.
- post_ajax_get_pas_and_pian_limit(request)
Funkce pohledu pro získaní heatmapy.
- check_soubor_vazba(typ_vazby, ident, id_zaznamu)
Popis není k dispozici.