Timelineactivites-views-seeder (#16103)
seeder for Timelineactivites views Fixes https://github.com/twentyhq/core-team-issues/issues/1904 <img width="850" height="348" alt="CleanShot 2025-11-26 at 17 30 32" src="https://github.com/user-attachments/assets/41a311c1-0b60-4201-885f-d0e8400dd6d5" />
This commit is contained in:
+22
-1
@@ -1400,7 +1400,28 @@ export const STANDARD_OBJECTS = {
|
||||
TIMELINE_ACTIVITY_STANDARD_FIELD_IDS.linkedObjectMetadataId,
|
||||
},
|
||||
},
|
||||
views: {},
|
||||
views: {
|
||||
allTimelineActivities: {
|
||||
universalIdentifier: '20202020-b101-4b01-8b01-ba5cc01aa001',
|
||||
viewFields: {
|
||||
name: {
|
||||
universalIdentifier: '20202020-bf01-4b01-8b01-ba5cc01aa011',
|
||||
},
|
||||
happensAt: {
|
||||
universalIdentifier: '20202020-bf01-4b01-8b01-ba5cc01aa012',
|
||||
},
|
||||
properties: {
|
||||
universalIdentifier: '20202020-bf01-4b01-8b01-ba5cc01aa019',
|
||||
},
|
||||
workspaceMember: {
|
||||
universalIdentifier: '20202020-bf01-4b01-8b01-ba5cc01aa013',
|
||||
},
|
||||
linkedRecordCachedName: {
|
||||
universalIdentifier: '20202020-bf01-4b01-8b01-ba5cc01aa017',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
view: {
|
||||
universalIdentifier: STANDARD_OBJECT_IDS.view,
|
||||
|
||||
+2
@@ -28,6 +28,7 @@ import { peopleAllView } from 'src/engine/workspace-manager/standard-objects-pre
|
||||
import { tasksAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/tasks-all.view';
|
||||
import { tasksAssignedToMeView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/tasks-assigned-to-me';
|
||||
import { tasksByStatusView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/tasks-by-status.view';
|
||||
import { timelineActivitiesAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/timeline-activities-all.view';
|
||||
import { workflowRunsAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/workflow-runs-all.view';
|
||||
import { workflowVersionsAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/workflow-versions-all.view';
|
||||
import { workflowsAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/workflows-all.view';
|
||||
@@ -66,6 +67,7 @@ export const prefillCoreViews = async ({
|
||||
messagesAllView,
|
||||
messageThreadsAllView,
|
||||
calendarEventsAllView,
|
||||
timelineActivitiesAllView,
|
||||
].map((seeder) =>
|
||||
seeder({
|
||||
objectMetadataItems,
|
||||
|
||||
+121
@@ -0,0 +1,121 @@
|
||||
import { msg } from '@lingui/core/macro';
|
||||
import { STANDARD_OBJECT_IDS } from 'twenty-shared/metadata';
|
||||
import { v4 } from 'uuid';
|
||||
|
||||
import { STANDARD_OBJECTS } from 'src/engine/core-modules/application/constants/standard-object.constant';
|
||||
import { type FlatApplication } from 'src/engine/core-modules/application/types/flat-application.type';
|
||||
import { type ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { ViewOpenRecordInType } from 'src/engine/metadata-modules/view/types/view-open-record-in-type.type';
|
||||
import { type ViewDefinition } from 'src/engine/workspace-manager/standard-objects-prefill-data/types/view-definition.interface';
|
||||
import { DEFAULT_VIEW_FIELD_SIZE } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/constants/DEFAULT_VIEW_FIELD_SIZE';
|
||||
import { TIMELINE_ACTIVITY_STANDARD_FIELD_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
|
||||
|
||||
export const timelineActivitiesAllView = ({
|
||||
objectMetadataItems,
|
||||
useCoreNaming = false,
|
||||
twentyStandardFlatApplication,
|
||||
}: {
|
||||
objectMetadataItems: ObjectMetadataEntity[];
|
||||
useCoreNaming?: boolean;
|
||||
twentyStandardFlatApplication: FlatApplication;
|
||||
}): ViewDefinition => {
|
||||
const timelineActivityObjectMetadata = objectMetadataItems.find(
|
||||
(object) => object.standardId === STANDARD_OBJECT_IDS.timelineActivity,
|
||||
);
|
||||
|
||||
if (!timelineActivityObjectMetadata) {
|
||||
throw new Error('TimelineActivity object metadata not found');
|
||||
}
|
||||
|
||||
const viewUniversalIdentifier =
|
||||
STANDARD_OBJECTS.timelineActivity.views.allTimelineActivities
|
||||
.universalIdentifier;
|
||||
|
||||
return {
|
||||
id: v4(),
|
||||
universalIdentifier: viewUniversalIdentifier,
|
||||
applicationId: twentyStandardFlatApplication.id,
|
||||
name: useCoreNaming
|
||||
? msg`All {objectLabelPlural}`
|
||||
: 'All Timeline Activities',
|
||||
objectMetadataId: timelineActivityObjectMetadata.id,
|
||||
type: 'table',
|
||||
key: 'INDEX',
|
||||
position: 0,
|
||||
icon: 'IconList',
|
||||
openRecordIn: ViewOpenRecordInType.RECORD_PAGE,
|
||||
kanbanFieldMetadataId: '',
|
||||
filters: [],
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
timelineActivityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === TIMELINE_ACTIVITY_STANDARD_FIELD_IDS.name,
|
||||
)?.id ?? '',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: DEFAULT_VIEW_FIELD_SIZE,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.timelineActivity.views.allTimelineActivities
|
||||
.viewFields.name.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
timelineActivityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId ===
|
||||
TIMELINE_ACTIVITY_STANDARD_FIELD_IDS.happensAt,
|
||||
)?.id ?? '',
|
||||
position: 1,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.timelineActivity.views.allTimelineActivities
|
||||
.viewFields.happensAt.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
timelineActivityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId ===
|
||||
TIMELINE_ACTIVITY_STANDARD_FIELD_IDS.properties,
|
||||
)?.id ?? '',
|
||||
position: 2,
|
||||
isVisible: true,
|
||||
size: 200,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.timelineActivity.views.allTimelineActivities
|
||||
.viewFields.properties.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
timelineActivityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId ===
|
||||
TIMELINE_ACTIVITY_STANDARD_FIELD_IDS.workspaceMember,
|
||||
)?.id ?? '',
|
||||
position: 3,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.timelineActivity.views.allTimelineActivities
|
||||
.viewFields.workspaceMember.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
timelineActivityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId ===
|
||||
TIMELINE_ACTIVITY_STANDARD_FIELD_IDS.linkedRecordCachedName,
|
||||
)?.id ?? '',
|
||||
position: 4,
|
||||
isVisible: true,
|
||||
size: 200,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.timelineActivity.views.allTimelineActivities
|
||||
.viewFields.linkedRecordCachedName.universalIdentifier,
|
||||
},
|
||||
],
|
||||
};
|
||||
};
|
||||
+2
-1
@@ -1,6 +1,6 @@
|
||||
import { msg } from '@lingui/core/macro';
|
||||
import { FieldMetadataType, RelationOnDeleteAction } from 'twenty-shared/types';
|
||||
import { STANDARD_OBJECT_IDS } from 'twenty-shared/metadata';
|
||||
import { FieldMetadataType, RelationOnDeleteAction } from 'twenty-shared/types';
|
||||
|
||||
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
||||
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
|
||||
@@ -36,6 +36,7 @@ import { WorkspaceMemberWorkspaceEntity } from 'src/modules/workspace-member/sta
|
||||
labelPlural: msg`Timeline Activities`,
|
||||
description: msg`Aggregated / filtered event to be displayed on the timeline`,
|
||||
icon: STANDARD_OBJECT_ICONS.timelineActivity,
|
||||
labelIdentifierStandardId: TIMELINE_ACTIVITY_STANDARD_FIELD_IDS.name,
|
||||
})
|
||||
@WorkspaceIsSystem()
|
||||
@WorkspaceIsNotAuditLogged()
|
||||
|
||||
Reference in New Issue
Block a user