From 8115f6eef2ca9296a64edb0bb820e471e2054792 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Thu, 20 Jan 2022 18:04:44 +0000 Subject: [PATCH] Getting the static formulas being processed on input, not re-processing on output. --- .../DataTable/modals/CreateEditColumn.svelte | 26 ++++++++++--------- .../src/api/controllers/row/internalSearch.js | 16 +++++++++--- packages/server/src/constants/index.js | 5 ++++ .../src/utilities/rowProcessor/index.js | 12 ++++++--- .../src/utilities/rowProcessor/utils.js | 11 +++++--- 5 files changed, 47 insertions(+), 23 deletions(-) diff --git a/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte b/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte index 24508c8ee..19543be4c 100644 --- a/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte +++ b/packages/builder/src/components/backend/DataTable/modals/CreateEditColumn.svelte @@ -435,18 +435,20 @@ error={errors.relatedName} /> {:else if field.type === FORMULA_TYPE} - option.label} + getOptionValue={option => option.value} + tooltip="Dynamic formula are calculated when retrieved, but cannot be filtered, + while static formula are calculated when the row is saved." + /> + {/if} { +exports.processFormulas = (table, rows, { dynamic } = { dynamic: true }) => { const single = !Array.isArray(rows) if (single) { rows = [rows] } for (let [column, schema] of Object.entries(table.schema)) { - if (schema.type !== FieldTypes.FORMULA) { + const isStatic = schema.formulaType === FormulaTypes.STATIC + if ( + schema.type !== FieldTypes.FORMULA || + (dynamic && isStatic) || + (!dynamic && !isStatic) + ) { continue } // iterate through rows and process formula