Browse Source

fix: on column creation populate plural/singular

Signed-off-by: Pranav C <pranavxc@gmail.com>
pull/5848/head
Pranav C 1 year ago
parent
commit
c561f28b96
  1. 17
      packages/nocodb/src/helpers/columnHelpers.ts
  2. 2
      packages/nocodb/src/models/Column.ts
  3. 31
      packages/nocodb/src/services/columns.service.ts

17
packages/nocodb/src/helpers/columnHelpers.ts

@ -66,7 +66,12 @@ export async function createHmAndBtColumn(
await parent.getColumns(), await parent.getColumns(),
type === 'hm' && !isLinks ? alias : `${child.title} List`, 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, title,
fk_model_id: parent.id, fk_model_id: parent.id,
uidt: isLinks ? UITypes.Links : UITypes.LinkToAnotherRecord, uidt: isLinks ? UITypes.Links : UITypes.LinkToAnotherRecord,
@ -78,14 +83,8 @@ export async function createHmAndBtColumn(
system: isSystemCol, system: isSystemCol,
fk_col_name: fkColName, fk_col_name: fkColName,
fk_index_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({ export async function populateRollupForLTAR({
column, column,
columnMeta, columnMeta,
alias alias,
}: { }: {
column: Column; column: Column;
columnMeta?: any; columnMeta?: any;

2
packages/nocodb/src/models/Column.ts

@ -12,7 +12,7 @@ import { NcError } from '../helpers/catchError';
import { extractProps } from '../helpers/extractProps'; import { extractProps } from '../helpers/extractProps';
import { stringifyMetaProp } from '../utils/modelUtils'; import { stringifyMetaProp } from '../utils/modelUtils';
import FormulaColumn from './FormulaColumn'; import FormulaColumn from './FormulaColumn';
import { LinksColumn } from './index' import { LinksColumn } from './index';
import LinkToAnotherRecordColumn from './LinkToAnotherRecordColumn'; import LinkToAnotherRecordColumn from './LinkToAnotherRecordColumn';
import LookupColumn from './LookupColumn'; import LookupColumn from './LookupColumn';
import RollupColumn from './RollupColumn'; import RollupColumn from './RollupColumn';

31
packages/nocodb/src/services/columns.service.ts

@ -8,12 +8,12 @@ import {
UITypes, UITypes,
} from 'nocodb-sdk'; } from 'nocodb-sdk';
import { T } from 'nc-help'; import { T } from 'nc-help';
import { pluralize, singularize } from 'inflection';
import formulaQueryBuilderv2 from '../db/formulav2/formulaQueryBuilderv2'; import formulaQueryBuilderv2 from '../db/formulav2/formulaQueryBuilderv2';
import ProjectMgrv2 from '../db/sql-mgr/v2/ProjectMgrv2'; import ProjectMgrv2 from '../db/sql-mgr/v2/ProjectMgrv2';
import { import {
createHmAndBtColumn, createHmAndBtColumn,
generateFkName, generateFkName,
populateRollupForLTAR,
randomID, randomID,
validateLookupPayload, validateLookupPayload,
validatePayload, validatePayload,
@ -33,7 +33,6 @@ import {
Base, Base,
Column, Column,
FormulaColumn, FormulaColumn,
GridViewColumn,
KanbanView, KanbanView,
Model, Model,
} from '../models'; } from '../models';
@ -41,11 +40,7 @@ import Noco from '../Noco';
import NcConnectionMgrv2 from '../utils/common/NcConnectionMgrv2'; import NcConnectionMgrv2 from '../utils/common/NcConnectionMgrv2';
import { MetaTable } from '../utils/globals'; import { MetaTable } from '../utils/globals';
import { MetaService } from '../meta/meta.service'; import { MetaService } from '../meta/meta.service';
import type { import type { LinkToAnotherRecordColumn, Project } from '../models';
LinkToAnotherRecordColumn,
Project,
RollupColumn,
} from '../models';
import type SqlMgrv2 from '../db/sql-mgr/v2/SqlMgrv2'; import type SqlMgrv2 from '../db/sql-mgr/v2/SqlMgrv2';
import type { import type {
ColumnReqType, ColumnReqType,
@ -1801,11 +1796,15 @@ export class ColumnsService {
fk_mm_parent_column_id: parentCol.id, fk_mm_parent_column_id: parentCol.id,
fk_related_model_id: parent.id, fk_related_model_id: parent.id,
virtual: (param.column as LinkToAnotherColumnReqType).virtual, virtual: (param.column as LinkToAnotherColumnReqType).virtual,
meta: {
plural: pluralize(parent.title),
singular: singularize(parent.title),
},
}); });
const col2 = await Column.insert({ const col2 = await Column.insert({
title: getUniqueColumnAliasName( title: getUniqueColumnAliasName(
await parent.getColumns(), await parent.getColumns(),
param.column.title ?? `${child.title} List`, param.column.title ?? `${child.title} List`,
), ),
uidt: isLinks ? UITypes.Links : UITypes.LinkToAnotherRecord, uidt: isLinks ? UITypes.Links : UITypes.LinkToAnotherRecord,
@ -1821,20 +1820,12 @@ export class ColumnsService {
fk_mm_parent_column_id: childCol.id, fk_mm_parent_column_id: childCol.id,
fk_related_model_id: child.id, fk_related_model_id: child.id,
virtual: (param.column as LinkToAnotherColumnReqType).virtual, 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 // todo: create index for virtual relations as well
// create index for foreign key in pg // create index for foreign key in pg
if (param.base.type === 'pg') { if (param.base.type === 'pg') {

Loading…
Cancel
Save