From 48f2511764eb37a8efca5fa0d35e676efcde9c40 Mon Sep 17 00:00:00 2001 From: Alex Christoffer Rasmussen Date: Wed, 26 Nov 2025 17:58:00 +0100 Subject: [PATCH] fix: custom fields not persisted (#1891) --- .../services/project-service/ProjectService.ts | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/apps/server/src/services/project-service/ProjectService.ts b/apps/server/src/services/project-service/ProjectService.ts index 79cc7d0de..858d71c96 100644 --- a/apps/server/src/services/project-service/ProjectService.ts +++ b/apps/server/src/services/project-service/ProjectService.ts @@ -316,10 +316,17 @@ export async function patchCurrentProject(data: Partial) { // we can pass some stuff straight to the data provider await getDataProvider().mergeIntoData(rest); - // ... but rundown and custom fields need to be checked - if (rundowns != null) { - const customFields = parseCustomFields(data); - const result = parseRundowns(data, customFields); + // the rundown depends on custom fields + // so custom fields needs to be checked first + if (customFields) { + const parsedCustomFields = parseCustomFields(data); + await getDataProvider().mergeIntoData({ customFields: parsedCustomFields }); + } + + // then we can checked the rundown + if (rundowns) { + const parsedCustomFields = await getDataProvider().getCustomFields(); + const result = parseRundowns(data, parsedCustomFields); /** * The user may have multiple rundowns @@ -330,7 +337,7 @@ export async function patchCurrentProject(data: Partial) { const rundownToLoad = last?.rundownId && last.rundownId in result ? result[last.rundownId] : getFirstRundown(result); - await initRundown(rundownToLoad, customFields, true); + await initRundown(rundownToLoad, parsedCustomFields, true); //mergeIntoData is handled by the init function } const updatedData = await getDataProvider().getData();