Add workflow and version as standard object (#6412)

As title

Hidden behind a feature flag.
This commit is contained in:
Thomas Trompette
2024-07-25 18:33:11 +02:00
committed by GitHub
parent d022837b5b
commit ce68f8ac79
19 changed files with 394 additions and 36 deletions

View File

@ -1,9 +1,10 @@
import { DataSource, EntityManager } from 'typeorm';
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
import { viewPrefillData } from 'src/engine/workspace-manager/standard-objects-prefill-data/view';
import { companyPrefillData } from 'src/engine/workspace-manager/standard-objects-prefill-data/company';
import { personPrefillData } from 'src/engine/workspace-manager/standard-objects-prefill-data/person';
import { viewPrefillData } from 'src/engine/workspace-manager/standard-objects-prefill-data/view';
import { workflowPrefillData } from 'src/engine/workspace-manager/standard-objects-prefill-data/workflow';
export const standardObjectsPrefillData = async (
workspaceDataSource: DataSource,
@ -34,6 +35,7 @@ export const standardObjectsPrefillData = async (
workspaceDataSource.transaction(async (entityManager: EntityManager) => {
await companyPrefillData(entityManager, schemaName);
await personPrefillData(entityManager, schemaName);
await workflowPrefillData(entityManager, schemaName);
await viewPrefillData(entityManager, schemaName, objectMetadataMap);
});
};

View File

@ -0,0 +1,31 @@
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
import { WORKFLOW_STANDARD_FIELD_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
import { STANDARD_OBJECT_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
export const viewWorkflowFields = (
viewId: string,
objectMetadataMap: Record<string, ObjectMetadataEntity>,
) => {
return [
{
fieldMetadataId:
objectMetadataMap[STANDARD_OBJECT_IDS.workflow].fields[
WORKFLOW_STANDARD_FIELD_IDS.name
],
viewId: viewId,
position: 0,
isVisible: true,
size: 210,
},
{
fieldMetadataId:
objectMetadataMap[STANDARD_OBJECT_IDS.workflow].fields[
WORKFLOW_STANDARD_FIELD_IDS.publishedVersionId
],
viewId: viewId,
position: 1,
isVisible: true,
size: 150,
},
];
};

View File

@ -2,10 +2,11 @@ import { EntityManager } from 'typeorm';
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
import { viewCompanyFields } from 'src/engine/workspace-manager/standard-objects-prefill-data/view-company-fields';
import { viewPersonFields } from 'src/engine/workspace-manager/standard-objects-prefill-data/view-person-fields';
import { viewOpportunityFields } from 'src/engine/workspace-manager/standard-objects-prefill-data/view-opportunity-fields';
import { STANDARD_OBJECT_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
import { viewPersonFields } from 'src/engine/workspace-manager/standard-objects-prefill-data/view-person-fields';
import { viewWorkflowFields } from 'src/engine/workspace-manager/standard-objects-prefill-data/view-workflow-fields';
import { OPPORTUNITY_STANDARD_FIELD_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
import { STANDARD_OBJECT_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
export const viewPrefillData = async (
entityManager: EntityManager,
@ -64,6 +65,15 @@ export const viewPrefillData = async (
OPPORTUNITY_STANDARD_FIELD_IDS.stage
],
},
{
name: 'All Workflows',
objectMetadataId: objectMetadataMap[STANDARD_OBJECT_IDS.workflow].id,
type: 'table',
key: 'INDEX',
position: 0,
icon: 'IconSettingsAutomation',
kanbanFieldMetadataId: '',
},
])
.returning('*')
.execute();
@ -92,6 +102,7 @@ export const viewPrefillData = async (
objectMetadataMap,
),
...viewOpportunityFields(viewIdMap['By Stage'], objectMetadataMap),
...viewWorkflowFields(viewIdMap['All Workflows'], objectMetadataMap),
])
.execute();
};

View File

@ -0,0 +1,21 @@
import { EntityManager } from 'typeorm';
export const workflowPrefillData = async (
entityManager: EntityManager,
schemaName: string,
) => {
await entityManager
.createQueryBuilder()
.insert()
.into(`${schemaName}.workflow`, ['name', 'publishedVersionId', 'position'])
.orIgnore()
.values([
{
name: 'Update Subscription Status',
publishedVersionId: null,
position: 1,
},
])
.returning('*')
.execute();
};