============================= Neuen Arbeitsablauf erstellen ============================= Wir wollen nun für unsere beiden Artikeltypen spezifische Arbeitsabläufe erstellen. Hierzu fügen wir in ``src/vs.registration/vs/registration/profiles/default/`` die Datei ``workflows.xml`` mit folgendem Inhalt hinzu:: Anschließend werden die verschiedenen Stadien und Übergänge der neuen Arbeitsabläufe definiert. Dazu werden die Ordner ``src/vs.registration/vs/registration/profiles/default/workflows/registrant_workflow/`` und ``src/vs.registration/vs/registration/profiles/default/workflows/registration_workflow/`` erstellt. Der Name der Ordner muss dabei exakt der in ``workflows.xml`` angegebenen ID entsprechen. In jedem dieser Ordner wird dann die Datei ``definition.xml`` angelegt. Für den Artikeltyp ``registrant`` sieht sie z.B. so aus:: Zunächst werden allgemeine Angaben zum Arbeitsablauf wie ID, Titel, Variablenname und initialer Status gemacht. Der Variablenname ``state_variable`` sollte dabei immer ``review_state`` sein. Anschließend werden die Rechte (*Permissions*) angegeben, die durch den Arbeitsablauf geändert werden sollen:: Delete objects Modify portal content View Nun werden die verschiedenen Stadien definiert. Dabei wird für jedes Stadium in ``exit-transition`` angegeben, welche Übergänge möglich sind und eine Zuweisung der Rollen und Rechte vorgenommen:: Manager Owner Manager Manager ... Den Übergängen werden ID, Titel und Auslöser (``trigger``) zugewiesen. ``trigger`` kann dabei die Werte ``USER`` oder ``AUTOMATIC`` annehmen. Der ````-Tag enthält den Namen, der in Plone’s *Status*-Menü angezeigt wird und die URL, auf die diese Aktion verlinkt. Üblicherweise wird hier das ``content_status_modify``-Skript verwendet. Schließlich wird der Übergang noch geschützt durch die Angabe im ````-Tag:: Confirm ... Der Arbeitsablauf kann mittels ``i18n:``-Attributen internationalisiert werden. Dabei besteht prinzipiell Zugriff auf alle verwendeten Zeichenketten. Siehe auch :doc:`../../internationalisierung/uberschreiben-von-plone-ubersetzungen`. .. _`Changing workflow state – quickly – on CMF/Plone content`: http://glenfant.wordpress.com/2010/04/02/changing-workflow-state-quickly-on-cmfplone-content/