diff --git a/packages/nocodb/src/helpers/columnHelpers.ts b/packages/nocodb/src/helpers/columnHelpers.ts index 159d79b8c2..832732f014 100644 --- a/packages/nocodb/src/helpers/columnHelpers.ts +++ b/packages/nocodb/src/helpers/columnHelpers.ts @@ -66,7 +66,12 @@ export async function createHmAndBtColumn( await parent.getColumns(), type === 'hm' && !isLinks ? alias : `${child.title} List`, ); - const col = await Column.insert({ + const meta = { + plural: columnMeta?.plural || pluralize(child.title), + singular: columnMeta?.singular || singularize(child.title), + }; + + await Column.insert({ title, fk_model_id: parent.id, uidt: isLinks ? UITypes.Links : UITypes.LinkToAnotherRecord, @@ -78,14 +83,8 @@ export async function createHmAndBtColumn( system: isSystemCol, fk_col_name: fkColName, fk_index_name: fkColName, + meta, }); - - // if (!isSystemCol && isLinks) - // await populateRollupForLTAR({ - // column: col, - // columnMeta, - // alias - // }); } } @@ -222,7 +221,7 @@ export const generateFkName = (parent: TableType, child: TableType) => { export async function populateRollupForLTAR({ column, columnMeta, - alias + alias, }: { column: Column; columnMeta?: any; diff --git a/packages/nocodb/src/models/Column.ts b/packages/nocodb/src/models/Column.ts index 088727ce66..b7f1eab8f4 100644 --- a/packages/nocodb/src/models/Column.ts +++ b/packages/nocodb/src/models/Column.ts @@ -12,7 +12,7 @@ import { NcError } from '../helpers/catchError'; import { extractProps } from '../helpers/extractProps'; import { stringifyMetaProp } from '../utils/modelUtils'; import FormulaColumn from './FormulaColumn'; -import { LinksColumn } from './index' +import { LinksColumn } from './index'; import LinkToAnotherRecordColumn from './LinkToAnotherRecordColumn'; import LookupColumn from './LookupColumn'; import RollupColumn from './RollupColumn'; diff --git a/packages/nocodb/src/services/columns.service.ts b/packages/nocodb/src/services/columns.service.ts index 84f4fb2f28..c27029212e 100644 --- a/packages/nocodb/src/services/columns.service.ts +++ b/packages/nocodb/src/services/columns.service.ts @@ -8,12 +8,12 @@ import { UITypes, } from 'nocodb-sdk'; import { T } from 'nc-help'; +import { pluralize, singularize } from 'inflection'; import formulaQueryBuilderv2 from '../db/formulav2/formulaQueryBuilderv2'; import ProjectMgrv2 from '../db/sql-mgr/v2/ProjectMgrv2'; import { createHmAndBtColumn, generateFkName, - populateRollupForLTAR, randomID, validateLookupPayload, validatePayload, @@ -33,7 +33,6 @@ import { Base, Column, FormulaColumn, - GridViewColumn, KanbanView, Model, } from '../models'; @@ -41,11 +40,7 @@ import Noco from '../Noco'; import NcConnectionMgrv2 from '../utils/common/NcConnectionMgrv2'; import { MetaTable } from '../utils/globals'; import { MetaService } from '../meta/meta.service'; -import type { - LinkToAnotherRecordColumn, - Project, - RollupColumn, -} from '../models'; +import type { LinkToAnotherRecordColumn, Project } from '../models'; import type SqlMgrv2 from '../db/sql-mgr/v2/SqlMgrv2'; import type { ColumnReqType, @@ -1801,11 +1796,15 @@ export class ColumnsService { fk_mm_parent_column_id: parentCol.id, fk_related_model_id: parent.id, virtual: (param.column as LinkToAnotherColumnReqType).virtual, + meta: { + plural: pluralize(parent.title), + singular: singularize(parent.title), + }, }); const col2 = await Column.insert({ title: getUniqueColumnAliasName( await parent.getColumns(), - param.column.title ?? `${child.title} List`, + param.column.title ?? `${child.title} List`, ), uidt: isLinks ? UITypes.Links : UITypes.LinkToAnotherRecord, @@ -1821,20 +1820,12 @@ export class ColumnsService { fk_mm_parent_column_id: childCol.id, fk_related_model_id: child.id, virtual: (param.column as LinkToAnotherColumnReqType).virtual, + meta: { + plural: param.column['meta']?.plural || pluralize(child.title), + singular: param.column['meta']?.singular || singularize(child.title), + }, }); - // if (isLinks) { - // await populateRollupForLTAR({ - // column: col1, - // // columnMeta: param.column['meta'], - // }); - // await populateRollupForLTAR({ - // column: col2, - // columnMeta: param.column['meta'], - // alias: param.column.title, - // }); - // } - // todo: create index for virtual relations as well // create index for foreign key in pg if (param.base.type === 'pg') {