add new @WorkspaceIsSearchable decorator + updates services + add migration command (#10507)

closes https://github.com/twentyhq/core-team-issues/issues/345
This commit is contained in:
Etienne
2025-02-27 13:57:07 +01:00
committed by GitHub
parent 17dbb634ca
commit 39543872e6
54 changed files with 297 additions and 145 deletions

View File

@ -17,6 +17,7 @@ const mockObjectMetadataItem: ObjectMetadataItem = {
labelSingular: 'Company',
labelPlural: 'Companies',
isCustom: false,
isSearchable: false,
labelIdentifierFieldMetadataId: '20202020-dd4a-4ea4-bb7b-1c7300491b65',
isActive: true,
createdAt: new Date().toISOString(),

View File

@ -6,7 +6,6 @@ import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadat
import { mapObjectMetadataToGraphQLQuery } from '@/object-metadata/utils/mapObjectMetadataToGraphQLQuery';
import { RecordGqlOperationSignature } from '@/object-record/graphql/types/RecordGqlOperationSignature';
import { getSearchRecordsQueryResponseField } from '@/object-record/utils/getSearchRecordsQueryResponseField';
import { isObjectMetadataItemSearchable } from '@/object-record/utils/isObjectMetadataItemSearchable';
import { capitalize } from 'twenty-shared';
import { isNonEmptyArray } from '~/utils/isNonEmptyArray';
@ -55,8 +54,8 @@ export const useGenerateCombinedSearchRecordsQuery = ({
);
const filteredQueryKeyWithObjectMetadataItemArray =
queryKeyWithObjectMetadataItemArray.filter(({ objectMetadataItem }) =>
isObjectMetadataItemSearchable(objectMetadataItem),
queryKeyWithObjectMetadataItemArray.filter(
({ objectMetadataItem }) => objectMetadataItem.isSearchable,
);
return gql`

View File

@ -29,6 +29,7 @@ const objectMetadataItemWithPositionField: ObjectMetadataItem = {
isSystem: false,
isCustom: false,
isRemote: false,
isSearchable: false,
labelPlural: 'object1s',
labelSingular: 'object1',
isLabelSyncedWithName: true,

View File

@ -18,6 +18,7 @@ describe('buildRecordGqlFieldsAggregateForView', () => {
isActive: true,
isSystem: false,
isRemote: false,
isSearchable: false,
labelIdentifierFieldMetadataId: '06b33746-5293-4d07-9f7f-ebf5ad396064',
imageIdentifierFieldMetadataId: null,
isLabelSyncedWithName: true,

View File

@ -12,6 +12,7 @@ describe('generateAggregateQuery', () => {
labelIdentifierFieldMetadataId: '20202020-72ba-4e11-a36d-e17b544541e1',
isCustom: false,
isActive: true,
isSearchable: false,
createdAt: new Date().toISOString(),
updatedAt: new Date().toISOString(),
fields: [],
@ -50,6 +51,7 @@ describe('generateAggregateQuery', () => {
labelIdentifierFieldMetadataId: '20202020-72ba-4e11-a36d-e17b544541e1',
isCustom: false,
isActive: true,
isSearchable: false,
createdAt: new Date().toISOString(),
updatedAt: new Date().toISOString(),
fields: [],

View File

@ -1,17 +0,0 @@
import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
const SEARCHABLE_STANDARD_OBJECTS_NAMES_PLURAL = [
'companies',
'people',
'opportunities',
];
export const isObjectMetadataItemSearchable = (
objectMetadataItem: ObjectMetadataItem,
) => {
return (
objectMetadataItem.isCustom ||
SEARCHABLE_STANDARD_OBJECTS_NAMES_PLURAL.includes(
objectMetadataItem.namePlural,
)
);
};

View File

@ -1,17 +0,0 @@
import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
const SEARCHABLE_STANDARD_OBJECTS_IN_COMBINED_REQUEST_NAMES_PLURAL = [
'companies',
'people',
'opportunities',
];
export const isObjectMetadataItemSearchableInCombinedRequest = (
objectMetadataItem: ObjectMetadataItem,
) => {
return (
objectMetadataItem.isCustom ||
SEARCHABLE_STANDARD_OBJECTS_IN_COMBINED_REQUEST_NAMES_PLURAL.includes(
objectMetadataItem.namePlural,
)
);
};