diff --git a/connect_transformations/formula/mixins.py b/connect_transformations/formula/mixins.py index 1ff7f24..65c36b4 100644 --- a/connect_transformations/formula/mixins.py +++ b/connect_transformations/formula/mixins.py @@ -11,7 +11,12 @@ from connect.eaas.core.responses import RowTransformationResponse from connect_transformations.formula.models import Configuration -from connect_transformations.formula.utils import DROP_REGEX, extract_input, validate_formula +from connect_transformations.formula.utils import ( + DROP_REGEX, + clear_formula, + extract_input, + validate_formula, +) from connect_transformations.models import Error, StreamsColumn, ValidationResult from connect_transformations.utils import cast_value_to_type, deep_convert_type @@ -30,7 +35,8 @@ def precompile(self, row: Dict): formula = expression['formula'] if DROP_REGEX.findall(formula): formula = f'def drop_row: "#INSTRUCTION/DELETE_ROW"; {formula}' - self.jq_expressions[expression['to']] = jq.compile(formula) + clean_formula = clear_formula(formula) + self.jq_expressions[expression['to']] = jq.compile(clean_formula) self.column_converters = [] diff --git a/connect_transformations/formula/utils.py b/connect_transformations/formula/utils.py index 628016a..84171a4 100644 --- a/connect_transformations/formula/utils.py +++ b/connect_transformations/formula/utils.py @@ -4,6 +4,7 @@ # All rights reserved. # import re +from collections import defaultdict import jq from fastapi.responses import JSONResponse @@ -18,6 +19,7 @@ JQ_FIELDS_REGEX = re.compile(r'(\.([a-z_][a-z0-9_]*))|(\."(.+?)")|(\.\["(.+?)"\])', re.I) DROP_REGEX = re.compile(r'(? 1 + and col_name_parts[-1] in cols_by_id + and cols_by_id[col_name_parts[-1]]['name'] == ' '.join(col_name_parts[:-1]) + ): + return cols_by_id[col_name_parts[-1]] + + return converter + + +def clear_formula(expression): + return COL_ID_REGEX.sub(r'."\1"', expression) diff --git a/connect_transformations/static/transformations/airtable_lookup.36093b636dae3ccdc875.js b/connect_transformations/static/transformations/airtable_lookup.2852161b91d2511b0373.js similarity index 98% rename from connect_transformations/static/transformations/airtable_lookup.36093b636dae3ccdc875.js rename to connect_transformations/static/transformations/airtable_lookup.2852161b91d2511b0373.js index ecfb44c..9157691 100644 --- a/connect_transformations/static/transformations/airtable_lookup.36093b636dae3ccdc875.js +++ b/connect_transformations/static/transformations/airtable_lookup.2852161b91d2511b0373.js @@ -141,6 +141,12 @@ const getAirtableTables = (key, baseId) => fetch(`/api/airtable_lookup/tables?ap }, }).then((response) => response.json()); +const getColumnLabel = (column) => { + const colIdParts = column.id.split('-'); + const colIdSuffix = colIdParts[colIdParts.length - 1]; + + return `${column.name} (C${colIdSuffix})`; +}; ;// CONCATENATED MODULE: ./ui/src/pages/transformations/airtable_lookup.js /* @@ -170,7 +176,7 @@ const createCopyRow = (parent, index, options, input, output) => { @@ -428,7 +434,6 @@ const airtable = (app) => { .then(airtable); - /***/ }) /******/ }); diff --git a/connect_transformations/static/transformations/airtable_lookup.html b/connect_transformations/static/transformations/airtable_lookup.html index 8c86d9c..ea03110 100644 --- a/connect_transformations/static/transformations/airtable_lookup.html +++ b/connect_transformations/static/transformations/airtable_lookup.html @@ -1 +1 @@ -