Skip to content

feat: faq sort + feat: faq-delete + fix: faq create after edit bug #476

Open
supermomme wants to merge 3 commits intodevelopmentfrom
feature/faq-improvements
Open

feat: faq sort + feat: faq-delete + fix: faq create after edit bug #476
supermomme wants to merge 3 commits intodevelopmentfrom
feature/faq-improvements

Conversation

@supermomme
Copy link
Collaborator

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

feat: faq delete
fix: faq create after edit bug
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Collaborator

@axelrindle axelrindle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

id String @id @default(uuid(7))
question String
answer String
sortOrder Int @default(0)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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([
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ich habe ein Reordering schon für Custom Fields gebaut, da kannst du dir das meiste abschauen. Sollte einheitlich sein.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

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.

[Feature] FAQ-Frage entfernen [Feature] FAQ Fragen Reihenfolge bestimmen [Bug] Anlegen neuer FAQs nach bearbeiten einer FAQ nicht möglich

3 participants