Let workflows move cards by start date instead of due date
Build package / xml-lint (push) Successful in 3m32s
Build package / unit-tests (push) Successful in 4m49s
Build package / php-lint (8.5) (push) Successful in 4m52s
Build package / php-lint (8.4) (push) Successful in 4m56s
Build package / package (push) Successful in 2m28s

Each workflow now has a trigger date (due or start): the runner compares
either the card's due date or its start date against now, read straight
from Deck's Card entity. Mails and Nextcloud notifications say whether
the card was overdue or reached its start date. Cards without the chosen
date stay put.

Deck only has a start date since 1.18 and Entity getters are magic, so
DeckIntegrationService::supportsStartdate() checks the property; without
it the form rejects start-date workflows and the runner skips them
without disabling them.

WorkflowRunner::isOverdue() becomes hasPassed(), as it now covers both
dates. Existing workflows keep the due date (migration Version1005).
Bumps to 35.4.0 so the migration runs.
This commit is contained in:
Patrick Niebeling committed 2026-10-01 13:19:32 +02:00
1 parent 5bd3181f10
commit 8268f1068d
18 files changed
+286 -71

No files matched your search

+9 -7
View File
@@ -4,27 +4,29 @@
<id>workflow_deck_automation</id>
<name lang="de">Deck Workflow-Automatisierung</name>
<name lang="en">Deck Workflow Automation</name>
<summary lang="de">Verschiebt überfällige Deck-Karten automatisch anhand konfigurierbarer Regeln</summary>
<summary lang="en">Automatically moves overdue Deck cards based on configurable rules</summary>
<summary lang="de">Verschiebt Deck-Karten automatisch, sobald ihr Fälligkeits- oder Startdatum erreicht ist</summary>
<summary lang="en">Automatically moves Deck cards once their due date or start date is reached</summary>
<description lang="de"><![CDATA[
Diese App erlaubt es jedem Nutzer, in den persönlichen Einstellungen Automatisierungs-Workflows für seine eigenen Deck-Boards anzulegen:
* Quell-Board und Quell-Stapel wählen
* Ziel-Stapel wählen, in den überfällige Karten verschoben werden
* Ziel-Stapel wählen, in den die Karten verschoben werden
* wählen, ob das Fälligkeitsdatum oder das Startdatum der Karte das Verschieben auslöst
* optional benachrichtigen, per E-Mail und/oder als Nextcloud-Benachrichtigung (Push): nur sich selbst oder alle Board-Mitglieder gemäß ihrer Deck-Benachrichtigungseinstellung
Ein Hintergrundjob prüft regelmäßig alle aktiven Workflows und verschiebt Karten, deren Fälligkeitsdatum überschritten wurde.
Ein Hintergrundjob prüft regelmäßig alle aktiven Workflows und verschiebt Karten, deren Fälligkeits- bzw. Startdatum erreicht wurde.
]]></description>
<description lang="en"><![CDATA[
This app lets every user configure Deck automation workflows for the boards they own from Personal settings:
* pick a source board and source stack
* pick a destination stack overdue cards get moved to
* pick a destination stack the cards get moved to
* choose whether the card's due date or start date triggers the move
* optionally notify by email and/or Nextcloud notification (push): themselves only, or every board member according to their Deck notification setting
A background job periodically evaluates all enabled workflows and moves cards whose due date has passed.
A background job periodically evaluates all enabled workflows and moves cards whose due date or start date has been reached.
]]></description>
<version>35.3.0</version>
<version>35.4.0</version>
<licence>agpl</licence>
<author mail="patrick@niebel.ing">Patrick Niebeling</author>
<namespace>WorkflowDeckAutomation</namespace>