Skip to content

Conversation

@tumidi
Copy link
Contributor

@tumidi tumidi commented Dec 9, 2025

Das "over-the-wire"-Format für die Options-Form-Daten ist nun nicht mehr flach, sondern geschachtelt. So funktioniert es ohne weitere Umformungen direkt für Worker sowie Web-Applikation.

Siehe #249

81ba838

Die größten Änderungen im Backend

  • questionpy_sdk.webserver.controllers.question._form_data ist überflüssig und wurde entfernt, und
  • der OptionsFormData-Typ hat sich geändert.

9bd97a3

Die größten Änderungen:

  • Es gibt nun genau einen Weg gibt, Options-Elemente zu adressieren, nämlich ElementPath. Vorher gab es zwei Arten: den Pfad in der verschachtelten Ansicht, sowie name, der Key in der flachen Ansicht. name wurde komplett entfernt und alle Stellen nutzen nur noch den Pfad.
  • Die Sonderbehandlungen für nicht-primitive Typen (aktuell repeat, file_upload, rich_text_editor) ist obsolet. Alle Form-Elemente nutzen einfach useModel() bzw. die getValue()-, setValue()-Funktionen direkt.

Außerdem noch <ValidationFeedback> extrahiert und useCommon in usePath und useId aufgeteilt, da ich die Benennung klarer finde, vor allem da wir kein name mehr haben.

a83b21c

Es haben sich noch ein paar Refaktorisierungen ergeben, bzw. mir sind bei der Überarbeitung noch ein paar Sachen aufgefallen, die ich versucht habe der Übersicht halber in einem einzelnen Commit zu isolieren.

- Remove `questionpy_sdk.webserver.controllers.question._form_data`.

Ref: #249
- Consistently use `path` to reference form elements instead of string key (`name`).
- Discard custom model for `file_upload`, `repeat`, and `rich_text_editor` elements.
- Extract `<ValidationFeedback>` component.
- `useCommon` -> `useId`, and `usePath`.

Closes #249
- Always add validation state to `<FormGroup>` and `<ValidationFeedback>` to all form elements.
- Replace manual margins with Bootstrap's `vstack` for vertical spacing.
- Restyle repetitions using card layout.
- Correct label association for select elements.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants