Files

28 lines
1.6 KiB
Markdown
Raw Permalink Normal View History

# `quorum` — Abstimmung (N von M)
**Zweck:** Mehrpersonen-Abstimmung: Jede in `<assign_to>` genannte Person darf eine Stimme (Zustimmen/Ablehnen, optional mit Kommentar) abgeben. Der Workflow blockiert, bis `required_votes` Ja-Stimmen erreicht sind (→ Erfolg) oder das Quorum rechnerisch nicht mehr erreichbar ist (→ Workflow-Stopp). Benachrichtigt werden jeweils nur die noch ausstehenden Abstimmenden. Doppelte Stimmabgaben werden ignoriert.
**Parameter**
| Name | Pflicht? | Default | Beschreibung |
|---|---|---|---|
| `assign_to` | **ja** | — | (direkt unter `<task>`) kommagetrennte Liste der Stimmberechtigten (E-Mail-Adressen oder IDs) |
| `required_votes` | nein | `1` | Anzahl benötigter Ja-Stimmen |
| `html` | nein | *(Standard-Formular)* | Eigenes Abstimmungsformular; muss ein Feld `quorum_vote` (`approved`/`rejected`) und optional `quorum_comment` senden |
**Eingangswerte:** Im eigenen `<html>`-Template stehen während der Abstimmung zusätzlich bereit: `{{quorum_approved_count}}`, `{{quorum_rejected_count}}`, `{{quorum_required}}`, `{{quorum_total}}`, `{{quorum_pending}}`, `{{quorum_already_voted}}`, `{{quorum_my_vote}}`.
**Ausgangswerte** (nach erreichtem Quorum):
- `quorum_approved_count` — Anzahl Ja-Stimmen
- `quorum_rejected_count` — Anzahl Nein-Stimmen
- `quorum_votes` — Liste aller Stimmen (Abstimmender, Stimme, Kommentar)
```xml
<task type="quorum" id="vorstand_abstimmung">
<assign_to>person1@example.org,person2@example.org,person3@example.org</assign_to>
<config>
<required_votes>2</required_votes>
</config>
</task>
```