Base class
decore
Decore
Bases: object
app(title, desc=None, role=0, dev=True)
A function for opening a GUI dashboard application. It is used as a "Decorator".
Parameters:
Name | Type | Description | Default |
---|---|---|---|
title
|
str
|
The title of the app. |
required |
desc
|
str
|
The description of the app. |
None
|
role
|
int
|
The role specification is used to deliver only authorized elements to the framework. Role 0 allows the guest account to access the app immediately. Anything above 0 requires a login. |
0
|
dev
|
bool
|
The development mode activates the CORS headers, prepares the application for the first run, activates further dev features and enables the app to be tested on a local server. |
True
|
base(icon=None, title=None, desc=None, hide=False, role=0, model=Decore_model, private=False, stretch=False, navigation='main-top')
Eine Funktion zum registrieren einer Basis in der GUI-Dashboard-Anwendung. Sie wird als "Decorator" verwendet.
Die Basis ist das Trägerelement für die Ansicht und die Vorlage für die Datenquelle im Frontend.
:param str icon: Das Symbol der Basis. :param str title: Der Titel der Basis. :param str desc: Die Beschreibung der Basis. :param Model model: Das Datenmodell der Basis.
.. code-block:: python
@decore.base(icon='mdi-account', title='Person', desc='A basis for managing personal data', model=Person)
class Person_base:
pass
view(parent_id=None, icon=None, title=None, desc=None, hide=False, role=0, type='default', fields=[], filters=[], query={}, pag_type='client', pag_recs=16)
Eine Funktion zur Registrierung einer Ansicht. Sie wird als "Decorator" verwendet.
Eine Ansicht ist ein Container für die Anzeige von Daten.
:param str parent_id: Die ID des übergeordneten Elements. Nur zu setzen, wenn die Ansicht in einer anderen Basis gerendert werden soll.
:param str icon: Das Symbol der Ansicht.
:param str title: Der Titel der Ansicht.
:param str desc: Die Beschreibung der Ansicht.
:param str type: Gibt an wie die Datensätze angezeigt werden. Der Wert table
stellt die Datensätze in einer Tabelle dar.
:type type: Literal['default']
:param list fields: Die Felder, die in der Ansicht angezeigt werden.
:param list filters: Die Filter, die in der Ansicht angezeigt werden.
:param dict query: Die Abfrage, die in der Ansicht angezeigt wird.
:param str pag_type: Wählt die Methode wie die Datensätze der View geladen werden. Der Wert client
lädt alle Datensätze auf einmal und überlässt den Seitenaufbau dem Frontend.
:type pag_type: Literal['client']
:param int pag_recs: Gibt an wieviele Datensätze auf einer Seite der Ansicht angezeigt werden sollen. 16
ist die Standardeinstellung.
.. code-block:: python
@decore.view(icon='mdi-account', title='Person', desc='A view for managing personal data', type='table', fields=[Person.id, Person.name, Person.age], filters=[Person.name, Person.age], query={'name__eq': 'Kemo'}, pag_type='client', pag_recs=16)
def person_view():
pass
dialog(parent_id=None, icon=None, title=None, desc=None, hide=False, role=0, type='standard', activator='empty')
Eine Funktion zur Registrierung eines Dialogs. Sie wird als "Decorator" verwendet.
Der Dialog ist das Trägerelement für Widgets
:param str parent_id: Die ID des übergeordneten Elements. Nur zu setzen, wenn der Dialog in einer Ansicht einer anderen Basis gerendert werden soll.
:param str icon: Das Symbol des Dialogs.
:param str title: Der Titel des Dialogs.
:param str desc: Die Beschreibung des Dialogs.
:param str type: Gibt an wie der Dialog die Widgets darstellen wird. Der Wert standard
stellt die untergeordneten Widgets und Sub-Widgets untereinander dar.
:type type: Literal['standard']
:param str display: Der Anzeigetyp des Dialogs. Standardwert ist draw-half
.
:type display: Literal['modal', 'draw-half', 'draw-full']
:param str activator: Der Aktivatortyp des Dialogs. Über den Wert none
wird der Dialog sofort beim OnLoad Ereignis der View angezeigt. Der Wert default
stellt den Dialog im Top-Menu der View dar. Der Wert context
stellt den Dialog im Kontextmenü eines Items der View dar. Der Wert click
zeigt den Dialog dann an wenn man einen Datensatz anklickt.
:type activator: Literal['none', 'default', 'context', 'click']
.. code-block:: python
@decore.dialog(icon='mdi-account', title='Person', desc='A dialog for managing personal data', type='standard', display='drawer', activator='default-menu')
def person_dialog():
pass
widget(parent_id=None, icon=None, title=None, desc=None, hide=False, role=0, type='default', layout='ceta', fields=[])
Eine Funktion zur Registrierung eines Widgets. Sie wird als "Decorator" verwendet.
Ein Widget dient zur Darstellung und Interaktion mit dem Datensatz. Es erhält die Daten, die der Dialog-Aktivator vorgibt. Der Wert none
übergibt den letzten Datensatz der Datenbanktabelle. Der Wert default
übergibt einen nur mit Default-Werten gefüllten Datensatz. Beim Wert context
übergibt es den Datensatz, der im Kontextmenü der Ansicht ausgewählt wurde. Und click
übergibt den Datensatz, der angeklickt wurde.
Widgets, welche aus einer fremden Basis einem Dialog zugeordnet werden, ergänzen die relationalen Felder eines Default-Items der fremden Datenquelle mit den Daten des aktivierten Items. (Der Satz ist Scheiße zu verstehen, aber er trifft genau das, was es tut). In der Sample Anwendung verwende ich das beim Zuweisen von "Contracts" zu einer "Person".
Es gibt aber auch Widgets, die mehrere Datensätze darstellen können, wie im Beispiel davor werden hier auch die Relationen verwendet, um nur Daten abzubilden, die etwas mit dem gewählten Item zu tun haben.
:param str parent_id: Die ID des übergeordneten Elements. Nur zu setzen, wenn das Widget in einem Dialog einer anderen Basis gerendert werden soll.
:param str icon: Das Symbol des Widgets.
:param str title: Der Titel des Widgets.
:param str desc: Die Beschreibung des Widgets.
:param str type: Gibt an wie das Widget die Daten darstellen wird. Standardwert ist default
.
:type type: Literal['default', 'info', 'form', 'table']
:param list fields: Die Felder, die in dem Widget angezeigt werden.
.. code-block:: python
@decore.widget(icon='mdi-account', title='Person', desc='A widget for managing personal data', type='form', layout='cera', fields=[Person.name, Person.age])
def person_widget():
pass
template(parent_id=None, icon=None, title=None, desc=None, hide=False, role=0)
Eine Funktion zur Registrierung einer Vorlage. Sie wird als "Decorator" verwendet.
Eine Vorlage ist HTML-Code der im Layout der View oder des Widgets gerendert wird.
:param str parent_id: Die ID des übergeordneten Elements. Nur zu setzen, wenn die Vorlage in einem Dialog einer anderen Basis gerendert werden soll. :param str icon: Das Symbol der Vorlage. :param str title: Der Titel der Vorlage. :param str desc: Die Beschreibung der Vorlage. :param str name: Der Name der Vorlage.
.. code-block:: python
@decore.template(icon='mdi-account', title='Person', desc='A html template', name='person_template')
def person_template():
pass
hook(parent_id=None, icon=None, title=None, desc=None, role=0)
Eine Funktion zur Registrierung eines "Hakens". Sie wird als "Decorator" verwendet.
Ein Haken ist eine Funktion zum abfangen des Load-Ereignisses der übergeordneten Komponente. Er kann dazu genutzt werden um vor dem Laden einer Komponente Bedingungen im Backend zu prüfen und gegebenenfalls den Pool zu manipulieren oder die Route zu ändern.
:param str parent_id: Die ID des übergeordneten Elements. Nur zu setzen, wenn der Haken in einem Dialog einer anderen Basis gerendert werden soll. :param str icon: Das Symbol des Hakens. :param str title: Der Titel des Hakens. :param str desc: Die Beschreibung des Hakens. :param str name: Der Name des Hakens.
.. code-block:: python
@decore.hook(icon='mdi-account', title='Person', desc='A hook to catch events')
def sample_hook(**kwargs):
pass
action(parent_id=None, icon=None, title=None, desc=None, hide=False, role=0, type='standard', activator='none', errors=True)
Eine Funktion zur Registrierung einer Aktion. Sie wird als "Decorator" verwendet.
Eine Aktion ist die tatsächliche Interaktion zwischen dem Benutzer und dem Backend.
:param str parent_id: Die ID des übergeordneten Elements. Nur zu setzen, wenn die Aktion in einem Widget einer anderen Basis gerendert werden soll.
:param str icon: Das Symbol der Aktion.
:param str title: Der Titel der Aktion.
:param str desc: Die Beschreibung der Aktion.
:param str type: Gibt an was die Aktion kann. Standardwert ist standard
.
:type type: Literal['standard', 'submit']
:param str activator: Gib an, wie die Aktion ausgelöst wird.
:type activator: Literal['default', 'context', 'click']
:param bool errors: Gibt an, ob die Aktion Validierungsfehler zurückgeben kann. Standardwert ist True
. (Im Augenblick wirkt sich das nur auf den Typen submit
aus.)
.. code-block:: python
@decore.action(icon='mdi-account', title='Person', desc='A action for managing personal data', type='submit')
def sample_action(**kwargs):
pass
Die Aktionen durchlaufen ein Modul, welches die erhaltenen Daten aufbereitet und als Keyword-Parameter an die dekorierte Funktion übergibt. Es ist alles in den kwargs
zu finden und man macht sich diese einfach verfügbar. Der Parameter item
ist ein Beispiel dafür und repräsentiert den vom Frontend zurückgegebenen Datensatz. Um herauszufinden, was alles noch in den kwargs
steckt, bitte den Debugger benutzen.
function(type='shot')
Eine Funktion zur Registrierung einer Funktion in der übergeordneten Base. Sie wird als "Decorator" verwendet.
Eine Funktion wird direkt nach der Zusammenstellung des Metadaten-Pool ausgeführt. Mit Funktionen kann man die Logik erweitern, Dinge vorbereiten oder Hintergrundaufgaben erledigen. Sie agieren als Instanzmethoden der Basis und erhalten damit den objektorientierten Ansatz.
:param str type: Gibt an wie eine Funktion ausgeführt wird. Mit dem Wert shot
wird sie nur einmal ausgeführt. Der Wert work
wird in einem Thread ausgeführt und kann somit Schleifen abarbeiten die niemals enden bis der Main-Thread endet.
:type type: Literal['shot', 'work']
.. code-block:: python
@decore.function(type='shot')
def sample_function(self):
pass