humhub: Umfragen anlegen und auflisten (poll-create / poll-list)

Die Polls-REST-API ist auf der Instanz aktiv, der Skill kannte sie nicht.
Zwei Abweichungen vom Muster der Post-API, die beide in
HTTP 500 'Internal error while save a poll!' enden:

* Der Controller macht $poll->load(Yii::$app->request->post()) — die Felder
  gehoeren unter den Yii-Formnamen 'Poll', nicht unter 'data'.
* Die Optionen heissen beim Anlegen 'newAnswers'; 'answers' ist die Leseform
  und wird beim POST ignoriert.

Beim Lesen ist limit Pflicht: ohne Begrenzung antwortet die Instanz ab etwa
25 Umfragen ebenfalls mit 500.

Quelle: humhub/polls, controllers/rest/PollsController.php + models/Poll.php.
Verifiziert an Space inmedias (Umfrage 36).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
jhsandClaude Opus 5 authored and Serge Koenigsmann committed 2026-08-31 09:24:31 +02:00
1 parent dc3e6a0c68
commit 75e99dd0b8
5 files changed
+111 -7

No files matched your search

+24 -3
View File
@@ -1,13 +1,13 @@
---
name: humhub
description: HumHub Wiki-Seiten und Posts lesen/erstellen/aktualisieren via REST-API. Use when the user mentions "HumHub", "Space", "Wiki-Seite in HumHub" or "Post/Beitrag".
version: 0.1.0
description: HumHub Wiki-Seiten, Posts und Umfragen lesen/erstellen/aktualisieren via REST-API. Use when the user mentions "HumHub", "Space", "Wiki-Seite in HumHub", "Post/Beitrag" or "Umfrage/Poll".
version: 0.2.0
---
# HumHub (humhub.py)
Interagiert mit HumHub (https://humhub.inmedias.it) über die REST-API:
Wiki-Seiten und Posts auflisten, anzeigen, anlegen und aktualisieren — über die
Wiki-Seiten, Posts und Umfragen auflisten, anzeigen, anlegen und aktualisieren — über die
mitgelieferte, self-contained `humhub.py`.
## Ausführen
@@ -59,6 +59,27 @@ werden nicht committet).
./humhub.py post-update <id> [datei|-]
```
### Umfragen
```bash
./humhub.py poll-list <container_id> [--limit N]
./humhub.py poll-create <container_id> "<frage>" --answers "A|B|C" \
[--file beschreibung.md] [--anonymous] [--multiple] [--hide-results]
```
Antwortoptionen mit `|` trennen, mindestens zwei. Der Beschreibungstext kommt
wie überall aus einer Datei oder `-`; Markdown ist erlaubt. Ohne `--anonymous`
ist sichtbar, wer wie gestimmt hat — bei Anmeldungen mit begrenzten Plätzen ist
das der Sinn der Sache.
Zwei Eigenheiten der Polls-API, die zu `HTTP 500 "Internal error while save a
poll!"` führen, wenn man dem Muster der Post-API folgt: die Felder gehören
unter den Yii-Formnamen **`Poll`** (nicht `data`), und die Optionen heißen beim
Anlegen **`newAnswers`** (beim Lesen `answers`). Beim Lesen ist `limit` Pflicht
und nicht Komfort — ohne Begrenzung antwortet die Instanz ab ~25 Umfragen
ebenfalls mit 500. Ein fehlgeschlagener POST legt nichts an; vor einem zweiten
Versuch trotzdem mit `poll-list` prüfen.
Inhalte (Markdown) aus Datei oder `-` (stdin) übergeben — nicht als langes
Shell-Argument (Sonderzeichen). `container_id` akzeptiert eine numerische
Container-ID, einen **Space-Slug** oder eine **Space-URL** (`resolve_container`