Implement multiline options support and legacy field handling in Dynamic Poll

This commit is contained in:
Torsten Brendgen
2026-08-24 09:32:31 +02:00
parent ca41674188
commit 53690530bc
6 changed files with 104 additions and 24 deletions
+12 -2
View File
@@ -29,14 +29,22 @@ In der SharePoint Management Shell auf einem SharePoint-Server ausfuehren:
Das Skript ist idempotent und legt standardmaessig diese Listen an:
- `Polls`: `Title`, `Question`, `Options`, `StartDate`, `EndDate`, `IsActive`
- `Polls`: `Title`, `Question`, `Options` (mehrzeiliger Nur-Text), `StartDate`, `EndDate`, `IsActive`
- `Poll Answers`: `Title` (Benutzerschluessel), `Poll` (Lookup), `Answer`
Die Benutzer des WebParts benoetigen Leserechte auf `Polls` sowie Lese- und Hinzufuegerechte auf `Poll Answers`. Fuer die Ergebnisberechnung muessen sie die vorhandenen Antworten lesen koennen.
## Umfrage anlegen
In `Polls` ein Element mit Frage und mindestens einer Option anlegen. `IsActive` aktivieren; Start- und Enddatum koennen leer bleiben. Sind mehrere Umfragen gleichzeitig aktiv, wird die mit dem neuesten Startdatum verwendet.
In `Polls` ein Element mit Frage anlegen und in `Options` jede Antwortmoeglichkeit in eine eigene Zeile schreiben, zum Beispiel:
```text
Ja
Nein
Anderer Termin
```
Leerzeilen und doppelte Eintraege werden ignoriert. `IsActive` aktivieren; Start- und Enddatum koennen leer bleiben. Sind mehrere Umfragen gleichzeitig aktiv, wird die mit dem neuesten Startdatum verwendet.
Danach das WebPart auf einer modernen Seite einfuegen und im Property Pane die Listen `Polls` und `Poll Answers` auswaehlen.
@@ -52,3 +60,5 @@ Das fertige Paket liegt unter `sharepoint/solution/dynamic-poll.sppkg`.
## Hinweise
Der Benutzerschluessel wird in der `Title`-Spalte der Antwortliste gespeichert. Die doppelte Stimmabgabe wird vor dem Schreiben geprueft. Zwei exakt gleichzeitige Requests desselben Benutzers lassen sich ohne serverseitige Eindeutigkeitsregel dennoch nicht vollstaendig ausschliessen.
Nach einem Upgrade von der bisherigen Choice-Spalte muss das Provisionierungsskript erneut ausgefuehrt werden. Es legt das neue Feld `OptionsText` mit dem Anzeigenamen `Options` an, uebernimmt vorhandene Choice-Werte und blendet die alte Spalte als `Options (legacy)` in den Formularen aus. Das WebPart kann waehrend der Umstellung weiterhin das alte Choice-Feld lesen.