Add missing FK on view tables (#14084)
## Context View tables were missing some FK, we are also introducing delete cascade on those tables when needed to leverage pg cascade deletion instead of having to implement it. Also renaming those classes with Entity suffix to follow repo guidelines.
This commit is contained in:
+22
-23
@@ -3,10 +3,10 @@ import { type ViewFilterOperand as SharedViewFilterOperand } from 'twenty-shared
|
||||
import { type DataSource, type QueryRunner } from 'typeorm';
|
||||
import { v4 } from 'uuid';
|
||||
|
||||
import { ViewField } from 'src/engine/core-modules/view/entities/view-field.entity';
|
||||
import { ViewFilter } from 'src/engine/core-modules/view/entities/view-filter.entity';
|
||||
import { ViewGroup } from 'src/engine/core-modules/view/entities/view-group.entity';
|
||||
import { View } from 'src/engine/core-modules/view/entities/view.entity';
|
||||
import { ViewFieldEntity } from 'src/engine/core-modules/view/entities/view-field.entity';
|
||||
import { ViewFilterEntity } from 'src/engine/core-modules/view/entities/view-filter.entity';
|
||||
import { ViewGroupEntity } from 'src/engine/core-modules/view/entities/view-group.entity';
|
||||
import { ViewEntity } from 'src/engine/core-modules/view/entities/view.entity';
|
||||
import { ViewKey } from 'src/engine/core-modules/view/enums/view-key.enum';
|
||||
import { ViewOpenRecordIn } from 'src/engine/core-modules/view/enums/view-open-record-in';
|
||||
import { ViewType } from 'src/engine/core-modules/view/enums/view-type.enum';
|
||||
@@ -30,7 +30,7 @@ export const prefillCoreViews = async (
|
||||
dataSource: DataSource,
|
||||
workspaceId: string,
|
||||
objectMetadataItems: ObjectMetadataEntity[],
|
||||
): Promise<View[]> => {
|
||||
): Promise<ViewEntity[]> => {
|
||||
const views = [
|
||||
companiesAllView(objectMetadataItems, true),
|
||||
peopleAllView(objectMetadataItems, true),
|
||||
@@ -71,13 +71,13 @@ const createCoreViews = async (
|
||||
queryRunner: QueryRunner,
|
||||
workspaceId: string,
|
||||
viewDefinitions: ViewDefinition[],
|
||||
): Promise<View[]> => {
|
||||
): Promise<ViewEntity[]> => {
|
||||
const viewDefinitionsWithId = viewDefinitions.map((viewDefinition) => ({
|
||||
...viewDefinition,
|
||||
id: v4(),
|
||||
}));
|
||||
|
||||
const coreViews: Partial<View>[] = viewDefinitionsWithId.map(
|
||||
const coreViews: Partial<ViewEntity>[] = viewDefinitionsWithId.map(
|
||||
({
|
||||
id,
|
||||
name,
|
||||
@@ -111,30 +111,30 @@ const createCoreViews = async (
|
||||
}),
|
||||
);
|
||||
|
||||
const viewRepository = queryRunner.manager.getRepository(View);
|
||||
const viewRepository = queryRunner.manager.getRepository(ViewEntity);
|
||||
const createdViews = await viewRepository.save(coreViews);
|
||||
|
||||
for (const viewDefinition of viewDefinitionsWithId) {
|
||||
if (viewDefinition.fields && viewDefinition.fields.length > 0) {
|
||||
const coreViewFields: Partial<ViewField>[] = viewDefinition.fields.map(
|
||||
(field) => ({
|
||||
const coreViewFields: Partial<ViewFieldEntity>[] =
|
||||
viewDefinition.fields.map((field) => ({
|
||||
fieldMetadataId: field.fieldMetadataId,
|
||||
position: field.position,
|
||||
isVisible: field.isVisible,
|
||||
size: field.size,
|
||||
viewId: viewDefinition.id,
|
||||
workspaceId,
|
||||
}),
|
||||
);
|
||||
}));
|
||||
|
||||
const viewFieldRepository = queryRunner.manager.getRepository(ViewField);
|
||||
const viewFieldRepository =
|
||||
queryRunner.manager.getRepository(ViewFieldEntity);
|
||||
|
||||
await viewFieldRepository.save(coreViewFields);
|
||||
}
|
||||
|
||||
if (viewDefinition.filters && viewDefinition.filters.length > 0) {
|
||||
const coreViewFilters: Partial<ViewFilter>[] = viewDefinition.filters.map(
|
||||
(filter) => ({
|
||||
const coreViewFilters: Partial<ViewFilterEntity>[] =
|
||||
viewDefinition.filters.map((filter) => ({
|
||||
fieldMetadataId: filter.fieldMetadataId,
|
||||
viewId: viewDefinition.id,
|
||||
operand: convertViewFilterOperandToCoreOperand(
|
||||
@@ -142,11 +142,10 @@ const createCoreViews = async (
|
||||
),
|
||||
value: filter.value,
|
||||
workspaceId,
|
||||
}),
|
||||
);
|
||||
}));
|
||||
|
||||
const viewFilterRepository =
|
||||
queryRunner.manager.getRepository(ViewFilter);
|
||||
queryRunner.manager.getRepository(ViewFilterEntity);
|
||||
|
||||
await viewFilterRepository.save(coreViewFilters);
|
||||
}
|
||||
@@ -156,18 +155,18 @@ const createCoreViews = async (
|
||||
viewDefinition.groups &&
|
||||
viewDefinition.groups.length > 0
|
||||
) {
|
||||
const coreViewGroups: Partial<ViewGroup>[] = viewDefinition.groups.map(
|
||||
(group) => ({
|
||||
const coreViewGroups: Partial<ViewGroupEntity>[] =
|
||||
viewDefinition.groups.map((group) => ({
|
||||
fieldMetadataId: group.fieldMetadataId,
|
||||
isVisible: group.isVisible,
|
||||
fieldValue: group.fieldValue,
|
||||
position: group.position,
|
||||
viewId: viewDefinition.id,
|
||||
workspaceId,
|
||||
}),
|
||||
);
|
||||
}));
|
||||
|
||||
const viewGroupRepository = queryRunner.manager.getRepository(ViewGroup);
|
||||
const viewGroupRepository =
|
||||
queryRunner.manager.getRepository(ViewGroupEntity);
|
||||
|
||||
await viewGroupRepository.save(coreViewGroups);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user