feat: faq sort + feat: faq-delete + fix: faq create after edit bug #476
feat: faq sort + feat: faq-delete + fix: faq create after edit bug #476supermomme wants to merge 3 commits intodevelopmentfrom
Conversation
feat: faq delete fix: faq create after edit bug
There was a problem hiding this comment.
Pull request overview
Diese Änderungen erweitern die FAQ-Verwaltung für Gliederungs-Admins um Sortieren (Kategorien + FAQs) via Drag&Drop und Löschen, und beheben den Bug, dass nach dem Bearbeiten kein neues FAQ ohne Reload erstellt werden konnte.
Changes:
- Drag&Drop-Sortierung für FAQ-Kategorien und FAQ-Einträge inkl. Persistierung (Frontend + API + DB
sortOrder) - FAQ-Löschen im Bearbeitungs-Modal ergänzt
- Fix: “Frage anlegen” öffnet nach Edit nun korrekt ein leeres Formular
Reviewed changes
Copilot reviewed 10 out of 11 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| pnpm-lock.yaml | Lockfile-Update für neue Drag&Drop-Abhängigkeit (vuedraggable). |
| apps/frontend/package.json | Fügt vuedraggable hinzu. |
| apps/frontend/src/views/Unterveranstaltung/UnterveranstaltungDetail.vue | Layout-Anpassung: FAQList ohne äußeres Grid-Wrapper. |
| apps/frontend/src/views/FAQs/FAQList.vue | UI für Sortieren (draggable), Persistieren der Reihenfolge, Fix für Create-after-Edit. |
| apps/frontend/src/views/FAQs/FAQFormModal.vue | Löschen-Button + Delete-Handler im Modal. |
| apps/api/src/services/faqs/faqs.router.ts | Registriert neuen reorder Endpoint. |
| apps/api/src/services/faqs/faqReorderProcedure.ts | Neuer API-Endpoint zum Speichern der Sortierung. |
| apps/api/src/services/faqs/faqListProcedure.ts | Liefert sortOrder/Category-Metadaten und sortiert nach sortOrder. |
| apps/api/src/services/faqs/faqCreateProcedure.ts | Setzt initiale sortOrder Werte bei neuer FAQ/Kategorie. |
| apps/api/prisma/schema/Faq.prisma | Fügt sortOrder zu Faq und FaqCategory hinzu. |
| apps/api/prisma/migrations/20260311172026_faq_sort_order/migration.sql | Migration für neue sortOrder Spalten. |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
axelrindle
left a comment
There was a problem hiding this comment.
Schau dir mal an, was ich bzgl. der Backend Logik bei den Custom Fields gebaut habe, das sollte einheitlich sein.
Das Draggable finde ich gut, das könntest du gleich für das Custom Fields Ordering übernehmen, da habe ich es aktuell mit Tabelle/Buttons gelöst.
apps/api/prisma/schema/Faq.prisma
Outdated
| id String @id @default(uuid(7)) | ||
| question String | ||
| answer String | ||
| sortOrder Int @default(0) |
There was a problem hiding this comment.
Ich würde den default auf NULL ändern um den Nutzer dazu zu bewegen, eine Reihenfolge festzulegen. Die Datenbank hat intern auch eine eigene Standard Reihenfolge meine ich.
There was a problem hiding this comment.
Vorher wurde beim list kein orderBy genutzt. Dadurch gab es keine garantierte Reihenfolge. (man würde denken, der nutzt ID oderso, aber dem ist nicht so. Kein orderBy = keine garantierte Reihenfolge)
Alsoo entweder wir setzen für die existierenden Daten die order. Was über eine Migration glaub ich schwer wird.
Oder wir lassen das so, da beim nächsten bearbeiten der Reihenfolge soweiso von jeder betroffenen category und faq die order entsprechend gesetzt wird.
Vom Prinzip her, sollte bei beiden Fällen egal sein, ob order im default null oder 0
| faq: faqSchema, | ||
| }), | ||
| handler: async ({ input: { faq, unterveranstaltungId } }) => { | ||
| const [maxCategoryOrder, maxFaqOrder] = await Promise.all([ |
There was a problem hiding this comment.
Ich habe ein Reordering schon für Custom Fields gebaut, da kannst du dir das meiste abschauen. Sollte einheitlich sein.
There was a problem hiding this comment.
Ah, ich seh, dass dort eine weitere Tabelle hinter "Reihenfolge ändern" steckt, wo man die via buttons nach oben und unten bewegen kann.
Ich denke das ist hier eher weniger sinnvoll, da die FAQs und Kategorien nicht in einer Tabellarisch Form dargestellt werden.
Man könnte überlegen das Drag-n-Drop feature via ein "Reihenfolge ändern" button/toggle ein/ausschalten.
Erlaubt dem Gliederungs-Admin die FAQs zu sortieren und zu löschen.
Und löst ein Bug, wo das erstellen nach bearbeiten eines FAQs erst nach neuladen der Seite möglich war.
out.mp4
solves #473
solves #474
solves #475