Neue Antragsideen anlegen #1

Closed
opened 2026-03-31 00:00:44 +02:00 by tobias · 2 comments
Owner

Beschreibung

Nutzer sollen neue Antragsideen über die Web-Oberfläche anlegen können. Aktuell existieren 42 Einträge in der SQLite-DB, aber es gibt keinen UI-Workflow zum Erstellen neuer Einträge.

Anforderungen

Pflichtfelder

  • Titel (Text)
  • Kurzbeschreibung (Text)
  • Bereich (Auswahl: Umwelt, Infra, HFA, Soziales, Stadt, Wirtschaft)
  • Priorität (Auswahl: Hoch, Mittel, Niedrig)
  • Status (Auswahl: Ideenspeicher, Recherche, Entwurf, Eingereicht, Beschlossen, Abgelehnt, Abgeschlossen)

Optionale Felder

  • Dossier (Markdown, längerer Text)
  • Antragstext (Markdown, ausformulierter Antrag)
  • Ausschüsse (Mehrfachauswahl: Umweltausschuss, HFA, etc.)
  • Personen (Freitext-Tags: zuständige Fraktionsmitglieder)
  • ALLRIS-Referenzen (Liste von Aktenzeichen, z.B. "1090/2024")
  • Quellen (URLs, Dokumente)
  • Notizen (Freitext)

Offene Fragen

  1. Formular-Layout: Ein langer Scroll-Form oder Tabs/Schritte (z.B. Schritt 1: Basisdaten, Schritt 2: Inhalte, Schritt 3: Referenzen)?

  2. Markdown-Editor: Soll das Dossier/Antragstext-Feld einen WYSIWYG-Editor haben oder reicht ein Plaintext-Feld mit Markdown-Preview?

  3. Validierung: Reicht Client-seitig oder braucht es auch Server-Validierung (relevant wenn mehrere Nutzer gleichzeitig arbeiten)?

  4. Zugang: Gibt es eine Authentifizierung oder kann jeder mit Zugang zur URL Einträge anlegen? Falls Auth: Keycloak-SSO oder einfacher Basic-Auth?

  5. Duplikat-Prüfung: Soll beim Anlegen geprüft werden, ob ein ähnlicher Titel schon existiert (Warnung, kein Blocker)?

  6. Ausschuss-Liste: Ist die Liste der Ausschüsse fix oder soll sie erweiterbar sein? Welche Ausschüsse gibt es aktuell?

Technische Umsetzung

  • Backend: POST /api/antraege Endpoint
  • Frontend: Modal oder eigene Seite mit Formular
  • DB: INSERT in antraege Tabelle
  • Ausschüsse + Personen als JSON-Arrays speichern (wie im bestehenden Schema)
## Beschreibung Nutzer sollen neue Antragsideen über die Web-Oberfläche anlegen können. Aktuell existieren 42 Einträge in der SQLite-DB, aber es gibt keinen UI-Workflow zum Erstellen neuer Einträge. ## Anforderungen ### Pflichtfelder - **Titel** (Text) - **Kurzbeschreibung** (Text) - **Bereich** (Auswahl: Umwelt, Infra, HFA, Soziales, Stadt, Wirtschaft) - **Priorität** (Auswahl: Hoch, Mittel, Niedrig) - **Status** (Auswahl: Ideenspeicher, Recherche, Entwurf, Eingereicht, Beschlossen, Abgelehnt, Abgeschlossen) ### Optionale Felder - **Dossier** (Markdown, längerer Text) - **Antragstext** (Markdown, ausformulierter Antrag) - **Ausschüsse** (Mehrfachauswahl: Umweltausschuss, HFA, etc.) - **Personen** (Freitext-Tags: zuständige Fraktionsmitglieder) - **ALLRIS-Referenzen** (Liste von Aktenzeichen, z.B. "1090/2024") - **Quellen** (URLs, Dokumente) - **Notizen** (Freitext) ## Offene Fragen 1. **Formular-Layout:** Ein langer Scroll-Form oder Tabs/Schritte (z.B. Schritt 1: Basisdaten, Schritt 2: Inhalte, Schritt 3: Referenzen)? 2. **Markdown-Editor:** Soll das Dossier/Antragstext-Feld einen WYSIWYG-Editor haben oder reicht ein Plaintext-Feld mit Markdown-Preview? 3. **Validierung:** Reicht Client-seitig oder braucht es auch Server-Validierung (relevant wenn mehrere Nutzer gleichzeitig arbeiten)? 4. **Zugang:** Gibt es eine Authentifizierung oder kann jeder mit Zugang zur URL Einträge anlegen? Falls Auth: Keycloak-SSO oder einfacher Basic-Auth? 5. **Duplikat-Prüfung:** Soll beim Anlegen geprüft werden, ob ein ähnlicher Titel schon existiert (Warnung, kein Blocker)? 6. **Ausschuss-Liste:** Ist die Liste der Ausschüsse fix oder soll sie erweiterbar sein? Welche Ausschüsse gibt es aktuell? ## Technische Umsetzung - Backend: POST `/api/antraege` Endpoint - Frontend: Modal oder eigene Seite mit Formular - DB: INSERT in `antraege` Tabelle - Ausschüsse + Personen als JSON-Arrays speichern (wie im bestehenden Schema)
Author
Owner

Entscheidungen (Tobias, 31.03.2026)

Formular-Layout

Tabs nach Sinneinheiten, z.B.:

  • Tab 1: Basisdaten (Titel, Kurzbeschreibung, Bereich, Priorität, Status)
  • Tab 2: Projektbeschreibung (Dossier, Quellen, ALLRIS-Referenzen)
  • Tab 3: Öffentlichkeitsarbeit (Kommunikationsstrategie, Antragstext)
  • Tab 4: Zuständigkeiten (Ausschüsse, Personen, Notizen)

→ Genaue Tab-Aufteilung noch zu klären.

Markdown-Editor

Plaintext/Markdown — kein WYSIWYG. Preview daneben oder umschaltbar.

Authentifizierung

Keycloak SSO (sso.toppyr.de)

Duplikat-Prüfung

Intelligente Prüfung — nicht nur exakter Titel-Match, sondern semantische Ähnlichkeit (z.B. "Fahrradtrassen" und "Radwege-Ausbau" als potenzielles Duplikat erkennen). Als Warnung, kein Blocker.

## Entscheidungen (Tobias, 31.03.2026) ### Formular-Layout **Tabs nach Sinneinheiten**, z.B.: - Tab 1: Basisdaten (Titel, Kurzbeschreibung, Bereich, Priorität, Status) - Tab 2: Projektbeschreibung (Dossier, Quellen, ALLRIS-Referenzen) - Tab 3: Öffentlichkeitsarbeit (Kommunikationsstrategie, Antragstext) - Tab 4: Zuständigkeiten (Ausschüsse, Personen, Notizen) → Genaue Tab-Aufteilung noch zu klären. ### Markdown-Editor **Plaintext/Markdown** — kein WYSIWYG. Preview daneben oder umschaltbar. ### Authentifizierung **Keycloak SSO** (sso.toppyr.de) ### Duplikat-Prüfung **Intelligente Prüfung** — nicht nur exakter Titel-Match, sondern semantische Ähnlichkeit (z.B. "Fahrradtrassen" und "Radwege-Ausbau" als potenzielles Duplikat erkennen). Als Warnung, kein Blocker.
tobias added the
backend
feature
frontend
labels 2026-03-31 00:28:32 +02:00
Author
Owner

Merged in 26c0cb8. Tab-Formular mit Basisdaten, Projektbeschreibung, ÖA, Zuständigkeiten. Markdown-Preview + Duplikat-Prüfung.

Merged in `26c0cb8`. Tab-Formular mit Basisdaten, Projektbeschreibung, ÖA, Zuständigkeiten. Markdown-Preview + Duplikat-Prüfung.
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: tobias/antragsideen-hagen#1
No description provided.