Nehmen wir den einfachen Fall. Auf einer Website soll ein Artikel veröffentlicht werden. Die AutorIn soll den Artikel zwar erstellen, aber nicht veröffentlichen dürfen. Die Freigabe zur Veröffentlichung soll durch eine andere Person erfolgen.
In Joomla und WordPress ist dieser einfache Fall bereits teilweise eingebaut. Die nach der Installation verfügbaren Benutzerrollen heissen in Joomla Author, Editor und Publisher, in WordPress Autor und Redakteur. Wenn diese Rollen zugeordnet werden, ist dieser einfache Fall theoretisch gelöst, allerdings nur bis zur ersten Veröffentlichung. Spätere Änderungen sind nicht vorgesehen.
Oft sind Websites, wenn man es genauer betrachtet, kleine oder grosse Plattformen innerhalb von Unternehmen, auf denen viele Personen Inhalte verwalten und die realen Arbeitsabläufe oft noch komplizierter sind als in diesem Beispiel.
Auf vielen Websites stehen auch nicht nur Artikel, sondern vielleicht Projekt- oder Produktbeschreibungen, vielleicht auch Filmrezessionen, Standorte oder ganz andere Inhalte. Solange man in einem Büro oder Gebäude sitzt, geht man daher oft einfach zur entsprechenden Person und sagt Bescheid, dass ein neuer Inhalt vorhanden ist, diskutiert ihn vielleicht gemeinsam und die Sache ist erledigt. Im Home Office geht das prinzipiell auch mittels Videochat, es kommt aber auf den Arbeitsplatz, den Umfang der Website und die Aufgaben an, ob diese Art der Zusammenarbeit gut funktioniert.
Da ich in letzter Zeit öfter nach solchen definierten Arbeitsabläufen gefragt wurde, möchte ich heute ein etwas komplexeres Beispiel vorstellen.
Ein Akteur erstellt ein Projekt
Das durchaus typische Beispiel handelt von Akteuren und Projekten. Nehmen wir an, es gibt eine Website, auf der Personen, nennen wir sie Akteure, ihre Projekte einstellen und präsentieren können.
Akteure und Projekte
Akteure und Projekte sind Inhaltstypen, die auf der Website öffentlich sichtbar sein sollen. Es gibt eine durchsuchbare Liste aller Akteure und eine durchsuchbare Liste aller Projekte. In der Einzeldarstellung des Projekts wird auf einen oder mehrere Akteure verlinkt. In der Einzeldarstellung der Akteure werden die Projekte, an denen der Akteur beteiligt ist, angezeigt und mit der Projektseite verlinkt.
User auf der Website
Bei jedem Akteur arbeiten eine oder mehrere Personen, die die Beschreibung von Akteur und Projekt erstellen und pflegen sollen. Die Personen, die die Website betreiben, wollen (oder müssen) kontrollieren, ob die Inhalte in Ordnung sind und geben sie dann zur Veröffentlichung frei. Wenn ein Inhalt, aus welchen Gründen auch immer, geändert wird, muss er neu freigegeben werden. Die existierende freigegebene Inhaltsversion soll aber trotz (noch nicht freigegebener) Änderung auf der Website öffentlich stehen bleiben.
Um Erstellung und Änderung zu ermöglichen, erhält jede Person ein Benutzerkonto auf der Website. Ausserdem werden die Benutzerrollen Akteur und Evaluation erstellt und den individuellen Benutzerkonten zugewiesen. Das System ist skalierbar und beliebig viele Personen können beliebig viele Akteure und Projekte erstellen und verwalten.
Zu kompliziert?
Es hört sich vielleicht kompliziert an, kommt aber sehr oft vor, denn sehr viele Geschäftsmodelle basieren auf dem Prinzip, Rechte zu verkaufen und/oder Aufgaben an Personen zu verteilen. Ausser Projekten könnten unsere Personen auch Musikdateien (Spotify), Produktbeschreibungen (eBay, Amazon) oder Veranstaltungen (Meetup) erstellen und verändern. Jede Plattform funktioniert auf diese Art und Weise.
Workflow definieren – Drupal 9
Nach soviel Vorrede nun zur Implementierung. Drupal 9 ermöglicht die Implementierung der Aufgaben ohne Programmierung und ohne die Installation zusätzlicher, evtl kostenpflichtiger, Module.
Vorarbeiten
Um das Workflow Beispiel nachvollziehen zu können, benötigst du eine aktuelle Drupal 9 Installation.
- Drupal 9 lässt sich bei uns ganz einfach mit dem Softaculous Apps Installer einrichten (siehe dazu auch den Blog Post vom 13.11.2017 Automatisierte Installation mit Softaculous)
- Die Inhaltstypen Projekt und Akteur müssen erstellt werden (siehe dazu auch den Blog Post vom 8.2.2016 Kunstarchiv mit Drupal 8 – Werke).
- Die Benutzerrollen Akteur und Evaluation müssen erstellt werden (siehe dazu auch den Blog Post vom 25.1.2016 Kunstarchiv mit Drupal 8 – Benutzer)
Das Workflows und das Content Moderation Module aktivieren
Die benötigten Module sind bereits in deiner Installation enthalten. Du musst die Module Workflows (Arbeitsabläufe) und Content Moderation nur aktivieren.


Arbeitsabläufe definieren
Das Wort Arbeitsablauf hört sich auf Deutsch nicht ganz so elegant an, wie die englische Bezeichnung Workflow, meint aber tatsächlich das Gleiche. Du kannst beliebig viele Arbeitsabläufe definieren.
Das Modul Content Moderation erstellt bei der Aktivierung einen Arbeitsablauf namens Editorial.

Ein Arbeitsablauf besteht aus Status, Übergängen, Inhalten auf die er sich bezieht und dem „Start-Status“. Nach einem Klick auf den Bearbeiten/Edit Button lassen sich die Details erkennen (siehe Screenshot).

- Der Beispiel Arbeitsablauf hat die Status Draft, Published und Archived.
- Um von einem zum anderen Status zu gelangen werden Übergänge definiert. Ein Übergang beschreibt die Möglichkeiten von welchem Status zu welchem Status gewechselt werden kann, beispielsweise vom Status Draft zu Published oder zu Published zu Archived.
- Im Beispiel wird der Arbeitsablauf noch nicht angewendet, es sind noch keine Elemente zugeordnet.
Um die oben gestellte Aufgabe zu lösen, kann der Beispiel- Arbeitsablauf ohne Veränderungen verwendet werden. Es müssen nur noch die Inhalts-Typen (Content-Typen) Akteur und Projekt zugeordnet werden.

Benutzer den Rollen zuordnen
Den beteiligten Benutzerkonten müssen die Rollen Akteur und Evaluation zugewiesen werden.

Benutzerrechte den Rollen zuweisen
Damit die unterschiedlichen Rechte greifen, müssen sie zunächst zugeordnet werden. Ein Akteur (/admin/people/permissions/akteur) muss die Rechte haben
- Arbeitsablauf Editorial : auf Create New Draft setzen.
- Arbeitsablauf Editorial : auf Restore to Draft setzen.
- Akteur: Neue Inhalte erstellen
- Akteur: Eigene Inhalte bearbeiten
- Projekt: Neue Inhalte erstellen
- Projekt: Eigene Inhalte bearbeiten
- Akteur: Revisionen anzeigen
- Projekt: Revisionen anzeigen
- Neueste Version anzeigen
- Eigene unveröffentlichte Inhalte anzeigen

Die Rolle Evaluation benötigt entsprechend mehr Rechte
- Arbeitsablauf Editorial : auf Archive setzen.
- Arbeitsablauf Editorial : auf Create New Draft setzen.
- Arbeitsablauf Editorial : auf Publish setzen.
- Arbeitsablauf Editorial : auf Restore setzen.
- Arbeitsablauf Editorial : auf Restore to Draft setzen.
- Akteur: Neue Inhalte erstellen
- Akteur: Alle Inhalte bearbeiten
- Projekt: Neue Inhalte erstellen
- Projekt: Alle Inhalte bearbeiten
- Akteur: Revisionen anzeigen
- Akteur: Revisionen zurücksetzen
- Projekt: Revisionen anzeigen
- Projekt: Revisionen zurücksetzen
- Neueste Version anzeigen
- Alle unveröffentlichten Inhalte anzeigen

Test
Ein Benutzer mit der Rolle Akteur (demo user 1) kann nun Inhalte vom Typ Akteure und Projekte anlegen. Hier wird ein Akteur neu angelegt. Der einzige Status, der möglich ist, ist Draft.

Eine Person mit der Rolle Evaluation (demo user 2) sieht in der Inhaltsübersicht im Reiter Moderated content, dass neuer Inhalt vorhanden ist.

Der Inhalt kann überprüft und freigegeben werden.
Im Bearbeitungsformular steht der Status Published zur Verfügung.

In den Revisionen des Inhalts kann man sehen, wer etwas verändert hat und es lassen sich auch Kommentare (Protokollnachrichten) anzeigen.

Wenn nun demo user 1 (Akteur) wieder etwas ändert, wird für diese Änderung der Status auf Draft gestellt und muss erneut freigegeben werden. Dieser kleine aber wichtige Unterschiede ist oft den entscheidend im Bezug zu vordefinierten Workflows.
Wenn demo user 1 wieder etwas am Inhalt ändert, wird eine neue Version erstellt und diese Version erhält den Status Draft. In der Ansicht für Demo User 1 wird diese Neueste Version in einem separaten Reiter rot hinterlegt angezeigt. In Drupal werden alle nicht veröffentlichten Inhalte rot hinterlegt.

Die bereits veröffentlichte Version des Inhalts bleibt bestehen. In den Revisionen sieht man sie als Aktuelle Revision.

Der neue Inhalt taucht wieder in der Liste Moderated Content auf und muss freigegeben werden.
Mehr Komfort
Nun wäre es für demo user 2 natürlich sehr hilfreich zu wissen, was sich am Text verändert hat. Dazu gibt es das Contrib Modul Diff (https://www.drupal.org/project/diff). Diff vergleicht Revisionen und zeigt die Unterschiede an. In diesem Fall sieht es so aus:

Das Diff Modul ist sehr genau und zeigt auch Änderungen in individuellen Feldern an.
Fazit
Die Möglichkeit, durch definierte Arbeitsabläufe und deren konsequente Nutzung Abläufe in Unternehmen zu optimieren, wird oft unterschätzt. In Drupal können Arbeitsabläufe sehr fein granuliert werden. Ausser für Inhaltselemente können auch Arbeitsabläufe für Blöcke und Dateien definiert werden.
Hinweis: In WordPress und in Joomla gibt es für solche Aufgaben durchaus Plugins, die Arbeitsabläufe ermöglichen, die Flexibilität von Drupal wird allerdings nicht erreicht.
Joomla wird in seiner neuen Version 4 etwas Ähnliches wie Drupal 9 im Core enthalten (Joomla 4 Workflows).
tl;dr: Definierte Arbeitsabläufe auf Websites sind für alle Beteiligten hilfreich.
Schreibe einen Kommentar