77409b6eb2
In this PR (1/3) - introduce view.mainGroupByFieldMetadataId as the new reference determining which fieldMetadataId is used in a grouped view, in order to deprecate viewGroup.fieldMetadataId which creates inconsistencies. view.mainGroupByFieldMetadataId is now filled at every view creation, though not in use yet. - Introduce a command to backfill view.mainGroupByFieldMetadataId for existing views + delete all viewGroup.fieldMetadataId with a fieldMetadataId that is not view.mainGroupByFieldMetadataId. (It should concern 37 active workspaces) - Temporarily disable the option to change a grouped view's fieldMetadataId as for now it creates inconsistencies. This feature can be reintroduced when we have done the full migration. In a next PR - (2/3) use view.mainGroupByFieldMetadataId instead of viewGroup.fieldMetadataId. In FE we may keep viewGroup.fieldMetadataId as a state (TBD). View groups will now be created / deleted as a side effect of view's mainGroupByFieldMetadataId update. - (3/3) remove viewGroup.fieldMetadataId --------- Co-authored-by: Charles Bochet <charles@twenty.com>
26 lines
762 B
TypeScript
26 lines
762 B
TypeScript
import { type GraphQLView } from '@/views/types/GraphQLView';
|
|
|
|
export const getObjectMetadataItemViews = (
|
|
viewObjectMetadataId: string,
|
|
views: GraphQLView[],
|
|
) => {
|
|
return [
|
|
...views.filter((view) => view.objectMetadataId === viewObjectMetadataId),
|
|
]
|
|
.sort((a, b) => a.position - b.position)
|
|
|
|
.map((view) => ({
|
|
id: view.id,
|
|
name: view.name,
|
|
type: view.type,
|
|
key: view.key,
|
|
position: view.position,
|
|
objectMetadataId: view.objectMetadataId,
|
|
mainGroupByFieldMetadataId: view.mainGroupByFieldMetadataId,
|
|
kanbanAggregateOperation: view.kanbanAggregateOperation,
|
|
kanbanAggregateOperationFieldMetadataId:
|
|
view.kanbanAggregateOperationFieldMetadataId,
|
|
icon: view.icon,
|
|
}));
|
|
};
|