Fix workflow relation variables (#16362)
display many to one relations instead of one to many
This commit is contained in:
+2
-2
@@ -56,7 +56,7 @@ describe('shouldGenerateFieldFakeValue', () => {
|
||||
expect(shouldGenerateFieldFakeValue(field)).toBe(true);
|
||||
});
|
||||
|
||||
it('should return false for many-to-one relation fields', () => {
|
||||
it('should return true for many-to-one relation fields', () => {
|
||||
const field = getFlatFieldMetadataMock({
|
||||
objectMetadataId: '20202020-0000-0000-0000-000000000001',
|
||||
isSystem: false,
|
||||
@@ -69,6 +69,6 @@ describe('shouldGenerateFieldFakeValue', () => {
|
||||
},
|
||||
});
|
||||
|
||||
expect(shouldGenerateFieldFakeValue(field)).toBe(false);
|
||||
expect(shouldGenerateFieldFakeValue(field)).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
+2
-5
@@ -2,6 +2,7 @@ import { FieldMetadataType } from 'twenty-shared/types';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
import { findFlatEntityByIdInFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-id-in-flat-entity-maps-or-throw.util';
|
||||
import { isMorphOrRelationFlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/utils/is-morph-or-relation-flat-field-metadata.util';
|
||||
import { type ObjectMetadataInfo } from 'src/modules/workflow/common/workspace-services/workflow-common.workspace-service';
|
||||
import { type FieldOutputSchema } from 'src/modules/workflow/workflow-builder/workflow-schema/types/output-schema.type';
|
||||
import { generateFakeObjectRecord } from 'src/modules/workflow/workflow-builder/workflow-schema/utils/generate-fake-object-record';
|
||||
@@ -33,7 +34,7 @@ export const generateObjectRecordFields = ({
|
||||
continue;
|
||||
}
|
||||
|
||||
if (field.type !== FieldMetadataType.RELATION) {
|
||||
if (!isMorphOrRelationFlatFieldMetadata(field)) {
|
||||
result[field.name] = generateFakeRecordField({
|
||||
type: field.type,
|
||||
label: field.label,
|
||||
@@ -44,10 +45,6 @@ export const generateObjectRecordFields = ({
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isDefined(field.relationTargetObjectMetadataId)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (depth < maxDepth) {
|
||||
const relationTargetObjectMetadata =
|
||||
flatObjectMetadataMaps.byId[field.relationTargetObjectMetadataId];
|
||||
|
||||
+21
-5
@@ -2,6 +2,17 @@ import { FieldMetadataType, RelationType } from 'twenty-shared/types';
|
||||
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { isFlatFieldMetadataOfType } from 'src/engine/metadata-modules/flat-field-metadata/utils/is-flat-field-metadata-of-type.util';
|
||||
import { isMorphOrRelationFlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/utils/is-morph-or-relation-flat-field-metadata.util';
|
||||
|
||||
const EXCLUDED_SYSTEM_FIELDS = ['searchVector', 'position'];
|
||||
|
||||
const isActiveField = (field: FlatFieldMetadata) => {
|
||||
return field.isActive;
|
||||
};
|
||||
|
||||
const isExcludedSystemField = (field: FlatFieldMetadata) => {
|
||||
return field.isSystem && EXCLUDED_SYSTEM_FIELDS.includes(field.name);
|
||||
};
|
||||
|
||||
const isManyToOneRelationField = (field: FlatFieldMetadata) => {
|
||||
if (isFlatFieldMetadataOfType(field, FieldMetadataType.RELATION)) {
|
||||
@@ -11,12 +22,17 @@ const isManyToOneRelationField = (field: FlatFieldMetadata) => {
|
||||
return false;
|
||||
};
|
||||
|
||||
const EXCLUDED_SYSTEM_FIELDS = ['searchVector', 'position'];
|
||||
|
||||
export const shouldGenerateFieldFakeValue = (field: FlatFieldMetadata) => {
|
||||
const isExcludedRelationField = (field: FlatFieldMetadata) => {
|
||||
return (
|
||||
field.isActive &&
|
||||
!(EXCLUDED_SYSTEM_FIELDS.includes(field.name) && field.isSystem) &&
|
||||
isMorphOrRelationFlatFieldMetadata(field) &&
|
||||
!isManyToOneRelationField(field)
|
||||
);
|
||||
};
|
||||
|
||||
export const shouldGenerateFieldFakeValue = (field: FlatFieldMetadata) => {
|
||||
return (
|
||||
isActiveField(field) &&
|
||||
!isExcludedSystemField(field) &&
|
||||
!isExcludedRelationField(field)
|
||||
);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user