Kategorien
Automatisierung Content Management Systeme Shared Hosting Site Builder

Arbeitsabläufe festlegen – Workflows in Drupal 9

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.

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.

Workflows Modul aktivieren – /admin/modules
Content Moderation Modul aktivieren – /admin/modules

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.

Liste der Arbeitsabläufe in Drupal – /admin/config/workflow/workflows

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).

Arbeitsablauf Editorial bearbeiten – /admin/config/workflow/workflows/manage/editorial
  • 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.

Auswahl der Elemente auf die der Arbeitsablauf angewendet wird

Benutzer den Rollen zuordnen

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

Rollenzuweisung in der Benutzerübersicht – /admin/people

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
Berechtigungen setzen

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
Berechtigungen für die Rollen setzen – /admin/people/permissions

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.

Akteur anlegen – /node/add/akteur

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

Moderated content – /admin/content/moderated

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

Inhalt wird veröffentlicht

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

Versionen eines Inhalts

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.

Neueste Version des Inhalts aus der Sicht von Demo User 1

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:

Unterschiede zwischen den Revisionen mit dem Diff Modul

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.

Von hagengraf

Ich erstelle bequeme und benutzerfreundliche Orte in virtuellen und physischen Umgebungen.

Kommentar verfassen