Fix one to many relation and multi select fields on table (#14576)

Fixes:
- relation one to many cannot be set (we have deprecated limit: keyword
in graphql at it was not use, we should only use first or last)
- https://github.com/twentyhq/twenty/issues/14556
This commit is contained in:
Charles Bochet
2025-09-17 18:55:02 +02:00
committed by GitHub
parent 3a5ba1673b
commit f3adce0773
5 changed files with 27 additions and 24 deletions
@@ -77,14 +77,6 @@ export const useGenerateCombinedFindManyRecordsQuery = ({
)
.join(', ');
const limitPerMetadataItemArray =
queryOperationSignatureWithObjectMetadataItemArray
.map(
({ objectMetadataItem }) =>
`$limit${capitalize(objectMetadataItem.nameSingular)}: Int`,
)
.join(', ');
if (isEmpty(queryOperationSignatureWithObjectMetadataItemArray)) {
return null;
}
@@ -93,8 +85,7 @@ export const useGenerateCombinedFindManyRecordsQuery = ({
query CombinedFindManyRecords(
${filterPerMetadataItemArray},
${orderByPerMetadataItemArray},
${cursorFilteringPerMetadataItemArray},
${limitPerMetadataItemArray}
${cursorFilteringPerMetadataItemArray},
) {
${queryOperationSignatureWithObjectMetadataItemArray
.map(
@@ -51,13 +51,6 @@ export const usePerformCombinedFindManyRecords = () => {
)
.join(', ');
const limitPerMetadataItemArray = operationSignatures
.map(
({ objectNameSingular }) =>
`$limit${capitalize(objectNameSingular)}: Int`,
)
.join(', ');
const queryOperationSignatureWithObjectMetadataItemArray =
operationSignatures.map((operationSignature) => {
const objectMetadataItem = objectMetadataItemsValue.find(
@@ -80,7 +73,6 @@ export const usePerformCombinedFindManyRecords = () => {
${filterPerMetadataItemArray},
${orderByPerMetadataItemArray},
${cursorFilteringPerMetadataItemArray},
${limitPerMetadataItemArray}
) {
${queryOperationSignatureWithObjectMetadataItemArray
.map(
@@ -10,6 +10,5 @@ export const getCombinedFindManyRecordsQueryFilteringPart = (
after: $after${capitalize(objectMetadataItem.nameSingular)},
before: $before${capitalize(objectMetadataItem.nameSingular)},
first: $first${capitalize(objectMetadataItem.nameSingular)},
last: $last${capitalize(objectMetadataItem.nameSingular)},
limit: $limit${capitalize(objectMetadataItem.nameSingular)})`;
last: $last${capitalize(objectMetadataItem.nameSingular)})`;
};
@@ -127,9 +127,14 @@ export class ObjectMetadataCreateGqlInputTypeGenerator {
throw new Error(message);
}
const modifiedEnumType = this.typeMapperService.applyTypeOptions(
enumType,
typeOptions,
);
return {
[fieldMetadata.name]: {
type: enumType,
type: modifiedEnumType,
description: fieldMetadata.description,
},
};
@@ -156,9 +161,14 @@ export class ObjectMetadataCreateGqlInputTypeGenerator {
throw new Error(message);
}
const modifiedCompositeType = this.typeMapperService.applyTypeOptions(
compositeType,
typeOptions,
);
return {
[fieldMetadata.name]: {
type: compositeType,
type: modifiedCompositeType,
description: fieldMetadata.description,
},
};
@@ -183,9 +193,14 @@ export class ObjectMetadataCreateGqlInputTypeGenerator {
throw new Error(message);
}
const modifiedType = this.typeMapperService.applyTypeOptions(
type,
typeOptions,
);
return {
[fieldMetadata.name]: {
type,
type: modifiedType,
description: fieldMetadata.description,
},
};
@@ -142,9 +142,15 @@ export class ObjectMetadataUpdateGqlInputTypeGenerator {
throw new Error(message);
}
}
const modifiedType = this.typeMapperService.applyTypeOptions(
type,
typeOptions,
);
generatedFields = {
[fieldMetadata.name]: {
type,
type: modifiedType,
description: fieldMetadata.description,
},
};