Form-Directives

Directives ermöglichen die Konfiguration der Formulare aus den Schemata

Dexterity verwendet plone.autoform um die auf z3c.form basierenden Hinzufügen- und Bearbeiten-Formulare zu konfigurieren. Somit lassen sich Schema mit Anmerkungen versehen, die das Formular konfigurieren.

Diese Anmerkungen können einfach mit Direktiven aus plone.directives.form und plone.directives.dexterity einem mit plone.directives.form.Schema erstellten Schema hinzugefügt werden.

Ein einfaches Beispiel kann so aussehen:

from zope import interface, schema
from plone.directives import form
…

class IExcludeFromNavigation(form.Schema):
    """Interface to exclude items from navigation.
    """

    form.fieldset('settings', label=u"Settings",
                  fields=['exclude_from_nav'])

    exclude_from_nav = schema.Bool(
                title=_(u'label_exclude_from_nav', default=u'Exclude from navigation'),
                description=_(u'help_exclude_from_nav', default=u'If selected, this item will not appear in the navigation tree'),
                default=False
                )

    form.omitted('exclude_from_nav')

Form-Directives

Im folgenden eine Übersicht über alle Form-Directives aus plone.directives.form:

Name Beschreibung
widget Spezifiziert ein alternatives Widget für ein Feld. Dabei wird der Feldname als Key und der Widget-Name als Value angegeben. Das Widget kann entweder eine Instanz aus z3c.form.widget sein oder ein Dotted Name eines Widgets.
omitted Spart ein oder mehrere Felder aus einem Formular aus. Als Parameter kann eine Sequenz der Feldnamen angegeben werden.
mode Folgende Modi sind möglich: input, display``oder ``hodden. Dabei wird der Feldname als Key und der Modus als Value angegeben.
order_before Spezifiziert, dass das betreffende Feld vor einem anderen gerendert werden soll. Ist das Feld in einem zusätzlichen Schema definiert (z.B. in einem Behavior), ist der Name z.B. ICategorization.language. Alternativ kann auch * verwendet werden um das Feld am Anfang des Formulars anzuzeigen.
order_after Spezifiziert, dass das betreffende Feld nach einem anderen gerendert werden soll. Ist das Feld in einem zusätzlichen Schema definiert (z.B. in einem Behavior), ist der Name z.B. ICategorization.language. Alternativ kann auch * verwendet werden um das Feld am Ende des Formulars anzuzeigen.
primary Markiert ein bestimmtes Feld als Primary Field in einem Schema. Dies wird beim Zugriff per WebDAV für das Marshalling des Objekts verwendet.
fieldset Erstellt ein Fieldset, das in Plone als Reiter im Bearbeiten- Formular angezeigt wird.

Security-Directives

Im folgenden die Security-Directives aus plone.directives.dexterity:

Name Beschreibung
read_permission Setzt die Zope3-Permission, die zum Lesen des Feldwerts erforderlich ist. Dabei wird der Feldname als Schlüssel und die Berechtigung als Wert angegeben.
write_permission Setzt die Zope3-Permission, die zum Schreiben des Feldwerts erforderlich ist. Dabei wird der Feldname als Schlüssel und die Berechtigung als Wert angegeben.