CORE formuláře
Definice formulářů.
Třídy
- class SelectMultipleSeparator
Override nad widgetom na zobrazení multi selectu stejně v každém formuláři.
Metody:
- __init__()
Inicializuje instanci třídy.
- Parametry:
attrs – Kolekce
attrszpracovávaná touto funkcí.choices – Parametr
choicesse předává do volání__init__().
- class TwoLevelSelectField
Potrebná úprava metód pro Charfield ve formuláři, pokud se používa widget se zobrazením dvou-stupňového seznamu.
Metody:
- to_python()
Konvertuje vybranou hodnotu na Python objekt Heslar.
- Parametry:
selected_value – ID vybraného hesláře.
- Vrací:
Instance Heslar objektu nebo None.
- has_changed()
Určí, zda changed.
- Parametry:
initial – Stavová nebo časová hodnota initial používaná při rozhodování logiky.
data – Kolekce
datazpracovávaná touto funkcí.
- Vrací:
Vrací výsledek ověření nebo validačního pravidla.
- class HeslarChoiceFieldField
Potrebná úprava metód pro ChoiceField ve formuláři, pro správně zobrazení a spracováni predmetu specifikace.
Metody:
- clean()
Vrátí instanci Heslar objektu nebo spustí standardní vyčištění pole.
- Parametry:
selected_value – ID vybraného hesláře.
- Vrací:
Instance Heslar objektu nebo výsledek
`super().clean().
- to_python()
Konvertuje vybranou hodnotu na Python objekt Heslar.
- Parametry:
selected_value – ID vybraného hesláře.
- Vrací:
Instance Heslar objektu nebo None.
- has_changed()
Určí, zda changed.
- Parametry:
initial – Stavová nebo časová hodnota initial používaná při rozhodování logiky.
data – Kolekce
datazpracovávaná touto funkcí.
- Vrací:
Vrací výsledek ověření nebo validačního pravidla.
- class CheckStavNotChangedForm
Formulář pro kontrolu jestli se stav záznamu nezmenil mezi jeho načtením a odeslánim zmeny.
Celá logika je v clean metóde.
Metody:
- __init__()
Inicializuje instanci třídy.
- Parametry:
db_stav – Stavová hodnota načtená z databáze.
require_confirmation – Parametr
require_confirmationovlivňuje větvení podmínek.dokument_warnings – Parametr
dokument_warningspředává se do voláníappend(),HTML(), ovlivňuje větvení podmínek.args – Parametr
argsse předává do volání__init__().kwargs – Parametr
kwargsse předává do volání__init__().
- clean()
Ověří, že se stav záznamu nezměnil mezi načtením a odesláním.
- Vrací:
Ověřená data.
- Vyvolá:
forms.ValidationError – Vyvolá se s textem „State_changed“ pokud se stav změnil.
- class VratitForm
Formulář pro vrácení záznamu. Obsahuje jen text pole pro zdůvodnění vrácení.
Metody:
- __init__()
Inicializuje instanci třídy.
- Parametry:
args – Parametr
argsse předává do volání__init__().kwargs – Parametr
kwargsse předává do volání__init__().
- class VratitFormDokument
Implementuje komponentu
VratitFormDokumentv rámci aplikace.Metody:
- __init__()
Inicializuje instanci třídy.
- Parametry:
args – Parametr
argsse předává do volání__init__().kwargs – Parametr
kwargsse předává do volání__init__().
- class VratitFormAZ
Formulář pro vrácení záznamu Akce nebo Lokality. Obsahuje text pole pro zdůvodnění vrácení a výběr dokumentů pro vrácení.
Metody:
- __init__()
Inicializuje instanci třídy.
- Parametry:
args – Parametr
argsse předává do volání__init__().az – Parametr
azse předává do volánífilter(), pracuje se s atributystav,ident_cely, ovlivňuje větvení podmínek.kwargs – Parametr
kwargsse předává do volání__init__().
- class DecimalTextWideget
Třida pro formátování hodnoty velikosti souboru na 3 desetiná místa.
Metody:
- format_value()
Zformátuje hodnotu na 3 desetinná místa.
- Parametry:
value – Hodnota k zformátování.
- Vrací:
Zformátovaná hodnota nebo None.
- class OdstavkaSystemuForm
Formulář pro nastavení a úpravu odstávky.
Vrámci načítáni formuláře se doplní načítají hodnoty z template odstávky.
Metody:
- __init__()
Inicializuje instanci třídy.
- Parametry:
args – Parametr
argsse předává do volání__init__().kwargs – Parametr
kwargsse předává do volání__init__().
- class PermissionImportForm
Implementuje komponentu
PermissionImportFormv rámci aplikace.
- class PermissionSkipImportForm
Implementuje komponentu
PermissionSkipImportFormv rámci aplikace.
- class OptimisticLockingMixin
Mixin pro detekci souběžných úprav záznamu (optimistické zamykání).
Při inicializaci formuláře s existující instancí uloží aktuální hodnoty polí modelu do skrytého pole (výchozí název
optimistic_lock_data, lze přepsat atributemoptimistic_lock_field_name). Při odeslání formuláře lze pomocí metodyget_conflicting_fields()zjistit, která pole byla mezitím změněna v databázi.Pokud je na jedné stránce více formulářů sdílejících jeden POST, je nutné v každé podtřídě nastavit unikátní
optimistic_lock_field_name, aby nedošlo ke kolizi.Podtřída by měla skryté pole zahrnout do layoutu formuláře nebo ho vykreslit ručně v šabloně.
Metody:
- __init__()
Inicializuje mixin a přidá skryté pole pro optimistické zamykání.
- Parametry:
args – Parametry předané do nadřazeného
__init__.kwargs – Klíčové parametry předané do nadřazeného
__init__.
- _get_lock_fields()
Vrací seznam názvů polí formuláře zahrnutých do kontroly souběžných změn.
Zahrnuje DB modelová pole i pole z
optimistic_lock_instance_fields.- Vrací:
Seznam názvů polí, která jsou sledována a nejsou vyloučena.
- _serialize_instance_for_lock()
Serializuje hodnoty polí instance modelu do JSON řetězce.
- Parametry:
instance – Instance modelu, jehož hodnoty se serializují.
- Vrací:
JSON řetězec s hodnotami polí pro pozdější porovnání.
- get_conflicting_fields()
Porovná původní stav polí se stavem v databázi a vrátí seznam konfliktních polí.
Načte čerstvý stav záznamu z databáze a porovná ho s hodnotami uloženými při renderování formuláře v poli
optimistic_lock_field_name.- Vrací:
Seznam názvů polí, která byla mezitím změněna jinou úpravou.
- add_secondary_lock()
Přidá skryté pole se snapshotem stavu jiné instance modelu (secondary lock).
Použití: formulář pro vytvoření PIANu chrání i editaci souvisejícího DJ. Lze volat opakovaně s různými
field_namea uzamknout tak formulář proti více souvisejícím modelům najednou.- Parametry:
instance – Instance modelu, jejíž stav má být sledován.
field_name – Unikátní název skrytého pole pro snapshot.
lock_fields – Seznam DB polí instance pro porovnání (FK se serializují přes
*_id).
- _serialize_fields_for_lock()
Serializuje vybraná DB pole instance modelu do JSON řetězce.
Pole, která nejsou DB pole modelu, jsou ignorována. M2M pole se ukládají jako seřazený seznam PK, FK jako
*_idhodnota, datetime přesisoformat().- Parametry:
instance – Instance modelu, jehož pole se serializují.
lock_fields – Seznam DB polí, která se mají serializovat.
- Vrací:
JSON řetězec s hodnotami polí pro pozdější porovnání.
- get_secondary_conflicting_fields()
Vrátí seznam polí instance pod daným secondary lockem, která byla v DB mezitím změněna.
- Parametry:
field_name – Název skrytého pole použitý při
add_secondary_lock().- Vrací:
Seznam názvů polí, která byla mezitím změněna jinou úpravou.
- class BaseFilterForm
Implementuje komponentu
BaseFilterFormv rámci aplikace.Metody:
- clean()
Validuje rozmezí datumů v historii — startovní datum musí být dříve než koncové.
- Vrací:
Slovník s očistěnými daty formuláře.
- Vyvolá:
forms.ValidationError – Pokud je startovní datum pozdější než koncové.
- class TransaltionImportForm
Implementuje komponentu
TransaltionImportFormv rámci aplikace.Metody:
- clean()
Validuje nahraný PO soubor — kontroluje velikost a formát.
- Vrací:
Slovník s očistěnými daty formuláře.
- Vyvolá:
forms.ValidationError – Pokud je soubor příliš malý (< 1000 B) nebo nemá příponu
.po.
- class ImportDataAdminForm
Implementuje komponentu
ImportDataAdminFormv rámci aplikace.