diff --git a/apiserver/plane/app/serializers/project.py b/apiserver/plane/app/serializers/project.py index 73c8a85d973..62263855895 100644 --- a/apiserver/plane/app/serializers/project.py +++ b/apiserver/plane/app/serializers/project.py @@ -151,7 +151,8 @@ class Meta: class ProjectMemberRoleSerializer(DynamicBaseSerializer): class Meta: model = ProjectMember - fields = ("id", "role", "member", "project") + fields = ("id", "role", "member", "project", "created_at") + read_only_fields = ["created_at"] class ProjectMemberInviteSerializer(BaseSerializer): diff --git a/packages/types/src/project/projects.d.ts b/packages/types/src/project/projects.d.ts index e1d9117a1be..d83853bb6e8 100644 --- a/packages/types/src/project/projects.d.ts +++ b/packages/types/src/project/projects.d.ts @@ -114,6 +114,7 @@ export interface IProjectMembership { id: string; member: string; role: TUserPermissions; + created_at: string; } export interface IProjectBulkAddFormData { diff --git a/packages/types/src/users.d.ts b/packages/types/src/users.d.ts index 9f6ac490559..eda9a022af2 100644 --- a/packages/types/src/users.d.ts +++ b/packages/types/src/users.d.ts @@ -12,6 +12,7 @@ export interface IUserLite { id: string; is_bot: boolean; last_name: string; + joining_date?: string; } export interface IUser extends IUserLite { // only for uploading the cover image diff --git a/web/core/store/member/project-member.store.ts b/web/core/store/member/project-member.store.ts index e97e5ab320d..ad9b1252a75 100644 --- a/web/core/store/member/project-member.store.ts +++ b/web/core/store/member/project-member.store.ts @@ -127,7 +127,10 @@ export class ProjectMemberStore implements IProjectMemberStore { const memberDetails: IProjectMemberDetails = { id: projectMember.id, role: projectMember.role, - member: this.memberRoot?.memberMap?.[projectMember.member], + member: { + ...this.memberRoot?.memberMap?.[projectMember.member], + joining_date: projectMember.created_at, + }, }; return memberDetails; });