diff --git a/src/collections/FormSubmissionsOverrides.ts b/src/collections/FormSubmissionsOverrides.ts index ffe6545..0d2e6bb 100644 --- a/src/collections/FormSubmissionsOverrides.ts +++ b/src/collections/FormSubmissionsOverrides.ts @@ -1,29 +1,22 @@ // src/collections/FormSubmissionsOverrides.ts -import type { CollectionConfig } from 'payload' +import type { CollectionConfig, Field } from 'payload' /** * FormSubmissions Overrides * * Erweitert die vom formBuilderPlugin erstellte FormSubmissions Collection um: + * - Tenant-Zuweisung (automatisch vom Formular) * - Status-Workflow (neu → in Bearbeitung → erledigt) * - Interne Notizen * - Zuständigkeits-Zuweisung * - Verbesserte Admin-Ansicht + * + * WICHTIG: fields MUSS eine Funktion sein, da das formBuilderPlugin + * ein Array stillschweigend ignoriert und nur defaultFields verwendet. */ -export const formSubmissionOverrides: Partial = { - admin: { - useAsTitle: 'id', - group: 'Formulare', - defaultColumns: ['id', 'form', 'status', 'assignedTo', 'createdAt'], - description: 'Eingegangene Formular-Einsendungen', - listSearchableFields: ['id', 'status'], - }, - labels: { - singular: 'Formular-Einsendung', - plural: 'Formular-Einsendungen', - }, - fields: [ + +const customFields: Field[] = [ // Tenant (automatisch vom Formular übernommen via setSubmissionTenant Hook) { name: 'tenant', @@ -222,5 +215,22 @@ export const formSubmissionOverrides: Partial = { readOnly: true, }, }, - ], +] + +export const formSubmissionOverrides: Partial = { + admin: { + useAsTitle: 'id', + group: 'Formulare', + defaultColumns: ['id', 'form', 'tenant', 'status', 'assignedTo', 'createdAt'], + description: 'Eingegangene Formular-Einsendungen', + listSearchableFields: ['id', 'status'], + }, + labels: { + singular: 'Formular-Einsendung', + plural: 'Formular-Einsendungen', + }, + fields: (({ defaultFields }: { defaultFields: Field[] }) => [ + ...defaultFields, + ...customFields, + ]) as unknown as Field[], } diff --git a/src/hooks/sendFormNotification.ts b/src/hooks/sendFormNotification.ts index 6589313..c343957 100644 --- a/src/hooks/sendFormNotification.ts +++ b/src/hooks/sendFormNotification.ts @@ -38,11 +38,13 @@ export const sendFormNotification: CollectionAfterChangeHook = async ({ const { payload } = req try { - // Form laden mit Details + // Form laden mit Details — doc.form kann bereits populated sein (Objekt statt ID) + const formId = typeof doc.form === 'object' ? doc.form?.id : doc.form const form = (await payload.findByID({ collection: 'forms', - id: doc.form, + id: formId, depth: 1, + overrideAccess: true, })) as FormDocument | null if (!form) { diff --git a/src/hooks/setSubmissionTenant.ts b/src/hooks/setSubmissionTenant.ts index 34373b6..101f6f8 100644 --- a/src/hooks/setSubmissionTenant.ts +++ b/src/hooks/setSubmissionTenant.ts @@ -25,6 +25,7 @@ export const setSubmissionTenant: CollectionBeforeChangeHook = async ({ collection: 'forms', id: formId, depth: 0, + overrideAccess: true, })) as unknown as FormWithTenant if (form?.tenant) {