Build package / xml-lint (push) Successful in 1m4s
Build package / php-lint (8.5) (push) Successful in 4m0s
Build package / unit-tests (push) Successful in 4m13s
Build package / php-lint (8.4) (push) Successful in 4m34s
Build package / package (push) Successful in 1m38s
Every enabled workflow is an edge "source stack -> target stack"; LoopDetector finds circles in that graph, a workflow whose source is its own target being the shortest. Without a check, two workflows A -> B and B -> A move the same cards back and forth on every run, even within a single run, with a notice for each move. The trigger date is ignored on purpose: by start date one way and by due date the other, a card with both dates passed still circles. Chains stay allowed. The controller rejects saving an enabled workflow that would close a loop and names the workflows involved. Workflows stored before this check are skipped by the runner (logged, not disabled) and flagged in the settings list via a new `loop` field from index().
117 lines
8.4 KiB
Markdown
117 lines
8.4 KiB
Markdown
# Deck Workflow-Automatisierung
|
|
|
|
Nextcloud-App, die Karten der [Deck](https://apps.nextcloud.com/apps/deck)-App automatisch von einem Stapel in einen anderen verschiebt, sobald ihr Fälligkeits- oder Startdatum erreicht ist, und auf Wunsch per E-Mail oder Nextcloud-Benachrichtigung (Push) darüber informiert.
|
|
|
|
Die Regeln („Workflows“) richtet der **Eigentümer eines Boards** selbst in seinen **persönlichen Einstellungen** ein. Admin-Rechte braucht er dafür nicht. Für geteilte Boards anderer Nutzer lassen sich keine Workflows anlegen.
|
|
|
|
> Entwickler-Informationen (Aufbau, Tests, Build, Release) stehen in [DEVELOPMENT.md](DEVELOPMENT.md).
|
|
|
|
## Was die App macht
|
|
|
|
Ein Workflow besteht aus einem Board, einem **Quell-Stapel**, einem **Ziel-Stapel** und dem **Datum**, das das Verschieben auslöst. Bei jedem Durchlauf verschiebt die App **alle Karten** des Quell-Stapels, bei denen dieses Datum erreicht ist, oben in den Ziel-Stapel.
|
|
|
|
- **Fälligkeitsdatum** (Standard): Die Karte wird verschoben, sobald sie überfällig ist, also ihr Fälligkeitsdatum samt Uhrzeit überschritten ist.
|
|
- **Startdatum**: Die Karte wird verschoben, sobald ihr Startdatum samt Uhrzeit erreicht ist. Das Startdatum setzt du in Deck in den Kartendetails neben dem Fälligkeitsdatum.
|
|
|
|
Karten ohne das gewählte Datum sowie erledigte, archivierte oder gelöschte Karten bleiben liegen.
|
|
|
|
Beispiele:
|
|
- Ein Workflow „Waiting → ToDo“ holt jede Karte aus „Waiting / Blocked“ nach „Work in Progress / ToDo“, sobald ihr Fälligkeitsdatum erreicht ist.
|
|
- Ein Workflow „Geplant → In Arbeit“ mit Startdatum holt jede Karte aus „Geplant“ nach „In Arbeit“, sobald an ihrem Startdatum die Arbeit beginnen soll.
|
|
|
|
## Einrichtung (für Administratoren)
|
|
|
|
1. App nach `apps/workflow_deck_automation` auf den Server kopieren, zum Beispiel aus dem Release-Archiv `workflow_deck_automation.tar.gz`, und unter *Apps* aktivieren.
|
|
2. Die [Deck-App](https://apps.nextcloud.com/apps/deck) muss installiert und für die Nutzer aktiviert sein.
|
|
3. Die [Hintergrundjobs](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/background_jobs_configuration.html) müssen auf *Cron* stehen.
|
|
4. Für E-Mails muss in der Nextcloud-Administration ein Mailserver eingerichtet sein.
|
|
5. Für Nextcloud-Benachrichtigungen muss die App **Benachrichtigungen** (`notifications`) aktiviert sein, was sie standardmäßig ist. Fehlt sie, verschickt die App einfach keine Benachrichtigungen. E-Mails kommen trotzdem.
|
|
|
|
Die Workflows laufen bei **jedem** Cron-Durchlauf von Nextcloud, üblicherweise alle 5 Minuten. Ein eigenes Intervall gibt es nicht.
|
|
|
|
## Workflows anlegen
|
|
|
|
Die Einstellungen liegen unter **Persönliche Einstellungen → Deck Workflow-Automatisierung**. Dort legst du Workflows an und kannst sie bearbeiten, deaktivieren oder löschen.
|
|
|
|
- **Board:** Zur Auswahl stehen nur Boards, deren **Eigentümer** du bist. Geteilte, archivierte und gelöschte Boards erscheinen nicht.
|
|
- **Quell- und Ziel-Stapel:** Das müssen zwei verschiedene Stapel desselben Boards sein.
|
|
- **Karte verschieben, wenn:** das Fälligkeitsdatum überschritten oder das Startdatum erreicht ist.
|
|
- **Keine Schleifen:** Ein aktiver Workflow darf mit den anderen aktiven Workflows des Boards keinen Kreis bilden, etwa „A → B“ und „B → A“. Sonst würden Karten bei jedem Durchlauf hin- und hergeschoben. Beim Speichern wird das abgelehnt, mit den Namen der beteiligten Workflows. Das gilt unabhängig davon, ob die Workflows nach Fälligkeits- oder Startdatum verschieben. Ketten wie „A → B“ und „B → C“ sind erlaubt.
|
|
- **Benachrichtigung bei verschobenen Karten** und **Benachrichtigen per:** siehe unten.
|
|
- **Workflow aktiv:** Deaktivierte Workflows bleiben gespeichert, verschieben aber nichts.
|
|
|
|
Ein Workflow gehört immer dem Eigentümer des Boards. Überträgst du ein Board in Deck an jemand anderen, wandern seine Workflows mit: Der neue Eigentümer sieht und verwaltet sie ab sofort, und die Karten werden in seinem Namen verschoben.
|
|
|
|
## Benachrichtigungen
|
|
|
|
Pro Workflow stellst du ein, **wer** über verschobene Karten informiert wird und **wie**.
|
|
|
|
### Wer?
|
|
|
|
| Einstellung | Wer wird informiert? |
|
|
| --- | --- |
|
|
| **Keine Benachrichtigung** | niemand |
|
|
| **Nur an mich** | der Eigentümer des Boards, unabhängig von seinen Deck-Einstellungen |
|
|
| **An Board-Mitglieder laut ihrer Deck-Einstellung** | alle, die das Board sehen dürfen, je nach ihrer eigenen Deck-Einstellung (siehe unten) |
|
|
|
|
Bei der dritten Stufe entscheidet jedes Board-Mitglied selbst. Dazu gehören der Eigentümer, Personen mit Freigabe sowie Mitglieder freigegebener Gruppen und Teams. Die Einstellung liegt in Deck im Menü **…** neben dem Board unter **Fälligkeitserinnerungen**:
|
|
|
|
- **Alle Karten:** für jede verschobene Karte
|
|
- **Zugewiesene Karten** (Deck-Standard): nur für Karten, denen man zugewiesen ist, direkt oder über eine Gruppe oder ein Team
|
|
- **Keine Benachrichtigungen:** nie
|
|
|
|
Bei einem Board, das mit niemandem geteilt ist, bekommt der Eigentümer jede Karte gemeldet, außer er hat die Erinnerungen ausgeschaltet. So verhält sich auch Deck selbst.
|
|
|
|
Das gilt genauso für Workflows mit Startdatum. Deck hat für das Startdatum keine eigene Benachrichtigungseinstellung.
|
|
|
|
### Wie?
|
|
|
|
| Einstellung | Was kommt an? |
|
|
| --- | --- |
|
|
| **E-Mail** (Standard) | eine Sammel-E-Mail pro Durchlauf |
|
|
| **Nextcloud-Benachrichtigung (Push)** | eine Benachrichtigung pro Karte in der Glocke oben rechts und als Push-Nachricht in den Nextcloud-Apps auf Handy und Desktop |
|
|
| **E-Mail und Nextcloud-Benachrichtigung** | beides |
|
|
|
|
Die Empfänger sind in allen drei Fällen dieselben.
|
|
|
|
**Inhalt der E-Mail:** Jeder Empfänger bekommt pro Durchlauf höchstens **eine** E-Mail, auch wenn mehrere Karten verschoben wurden. Pro Karte steht darin ein Satz wie:
|
|
|
|
> „Essensvorräte prüfen“ (Board „Persönlich“) ist überfällig und wurde von „Waiting / Blocked“ nach „Work in Progress / ToDo“ verschoben.
|
|
|
|
Bei Workflows mit Startdatum heißt es stattdessen:
|
|
|
|
> „Essensvorräte prüfen“ (Board „Persönlich“) hat ihr Startdatum erreicht und wurde von „Geplant“ nach „In Arbeit“ verschoben.
|
|
|
|
Der Kartentitel ist ein Link direkt zur Karte in Deck. Die Kartenbeschreibung wird nicht mitgeschickt.
|
|
|
|
**Inhalt der Nextcloud-Benachrichtigung:** „*Kartentitel* wurde nach *Ziel-Stapel* verschoben“, darunter Board, Quell-Stapel und ob die Karte überfällig ist oder ihr Startdatum erreicht hat. Ein Klick öffnet die Karte. Wird dieselbe Karte später noch einmal verschoben, ersetzt die neue Benachrichtigung die alte.
|
|
|
|
**Keine E-Mail erhalten?**
|
|
- Ist in deinem Nextcloud-Profil eine E-Mail-Adresse hinterlegt? Ohne Adresse wird die E-Mail übersprungen.
|
|
- Welche Stufe und welcher Weg sind im Workflow eingestellt?
|
|
- Bei „An Board-Mitglieder“: Was steht in Deck unter *Fälligkeitserinnerungen* für dieses Board?
|
|
|
|
**Keine Push-Nachricht erhalten?**
|
|
- Ist die App *Benachrichtigungen* aktiviert? Die Einstellungsseite weist darauf hin, wenn nicht.
|
|
- Für Push aufs Handy muss dort die Nextcloud-App angemeldet sein und Benachrichtigungen erlauben.
|
|
|
|
Deck schickt zusätzlich seine eigene Erinnerung, wenn eine Karte fällig wird. Sie kommt von Deck, nicht von dieser App, und lässt sich in Deck unter *Fälligkeitserinnerungen* abschalten.
|
|
|
|
## Wenn Board oder Stapel gelöscht werden
|
|
|
|
- **In der Übersicht** wird der Workflow rot markiert, zum Beispiel „Board nicht mehr vorhanden“ oder „Quell-Stapel nicht mehr vorhanden“.
|
|
- **Beim nächsten Durchlauf** wird der Workflow automatisch deaktiviert. Der Eigentümer bekommt einmalig eine E-Mail und, wenn die App *Benachrichtigungen* aktiv ist, eine Nextcloud-Benachrichtigung. Das gilt unabhängig davon, was für verschobene Karten eingestellt ist. Danach kommt keine weitere Erinnerung.
|
|
- **Schleifen aus älteren Workflows** (gespeichert vor der Schleifenprüfung) werden in der Übersicht rot markiert und beim Durchlauf übersprungen, bis du einen der Workflows änderst oder deaktivierst.
|
|
- **Archivierte Boards** deaktivieren den Workflow nicht. Sie lassen sich nur nicht mehr neu auswählen.
|
|
- **Ist Deck vorübergehend nicht erreichbar**, passiert nichts: Der Workflow wird übersprungen und beim nächsten Durchlauf erneut versucht.
|
|
|
|
Um einen deaktivierten Workflow wieder zu nutzen, stellst du ein vorhandenes Board und vorhandene Stapel ein und aktivierst ihn wieder.
|
|
|
|
## Sprache
|
|
|
|
Die App ist für den internen Einsatz gedacht und durchgehend **deutsch**: Oberfläche, Fehlermeldungen, E-Mails und Benachrichtigungen.
|
|
|
|
## Lizenz
|
|
|
|
AGPL-3.0-or-later
|