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 attrs zpracovávaná touto funkcí.

  • choices – Parametr choices se 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 data zpracová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 data zpracová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_confirmation ovlivňuje větvení podmínek.

  • dokument_warnings – Parametr dokument_warnings předává se do volání append(), HTML(), ovlivňuje větvení podmínek.

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

  • kwargs – Parametr kwargs se 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 args se předává do volání __init__().

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

class VratitFormDokument

Implementuje komponentu VratitFormDokument v rámci aplikace.

Metody:

__init__()

Inicializuje instanci třídy.

Parametry:
  • args – Parametr args se předává do volání __init__().

  • kwargs – Parametr kwargs se 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 args se předává do volání __init__().

  • az – Parametr az se předává do volání filter(), pracuje se s atributy stav, ident_cely, ovlivňuje větvení podmínek.

  • kwargs – Parametr kwargs se 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 args se předává do volání __init__().

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

class PermissionImportForm

Implementuje komponentu PermissionImportForm v rámci aplikace.

class PermissionSkipImportForm

Implementuje komponentu PermissionSkipImportForm v 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 atributem optimistic_lock_field_name). Při odeslání formuláře lze pomocí metody get_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_name a 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 *_id hodnota, datetime přes isoformat().

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 BaseFilterForm v 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 TransaltionImportForm v 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 ImportDataAdminForm v rámci aplikace.