From 66c61268fd9eca8b171acef37721295951ea882b Mon Sep 17 00:00:00 2001 From: Gabriela Ueno Date: Thu, 30 Jan 2025 13:21:52 -0300 Subject: [PATCH] ASAP-767 Adding Assigned Users --- .../src/network/teams/__mocks__/api.ts | 2 ++ .../contentful/manuscript.data-provider.ts | 4 +++ .../test/fixtures/manuscript.fixtures.ts | 4 +++ .../20250130161227-add-assigned-users.js | 30 +++++++++++++++++++ packages/fixtures/src/manuscripts.ts | 2 ++ packages/model/src/manuscript.ts | 3 +- .../__tests__/ComplianceTable.test.tsx | 2 ++ .../__tests__/ComplianceTableRow.test.tsx | 2 ++ .../__tests__/ComplianceDashboard.test.tsx | 2 ++ 9 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 packages/contentful/migrations/crn/manuscripts/20250130161227-add-assigned-users.js diff --git a/apps/crn-frontend/src/network/teams/__mocks__/api.ts b/apps/crn-frontend/src/network/teams/__mocks__/api.ts index 7a29ff997c..d0a1cd90ac 100644 --- a/apps/crn-frontend/src/network/teams/__mocks__/api.ts +++ b/apps/crn-frontend/src/network/teams/__mocks__/api.ts @@ -84,6 +84,8 @@ export const getManuscripts = jest.fn( id: 'DA1-000463-002-org-G-1', lastUpdated: '2020-09-23T20:45:22.000Z', manuscriptId: 'manuscript-id-1', + title: 'Manuscript 1', + teams: ['Team 1'], team: { id: 'team-id-1', displayName: 'Team 1', diff --git a/apps/crn-server/src/data-providers/contentful/manuscript.data-provider.ts b/apps/crn-server/src/data-providers/contentful/manuscript.data-provider.ts index 46e7e22a9a..52bccb2e19 100644 --- a/apps/crn-server/src/data-providers/contentful/manuscript.data-provider.ts +++ b/apps/crn-server/src/data-providers/contentful/manuscript.data-provider.ts @@ -93,6 +93,10 @@ export class ManuscriptContentfulDataProvider const team = manuscript.teamsCollection?.items[0]; return { manuscriptId: manuscript.sys.id, + title: manuscript.title || '', + teams: (manuscript.teamsCollection?.items || []).map( + (teamItem) => teamItem?.displayName || '', + ), status: manuscriptMapStatus(manuscript.status) || undefined, id: getManuscriptVersionUID({ version: { diff --git a/apps/crn-server/test/fixtures/manuscript.fixtures.ts b/apps/crn-server/test/fixtures/manuscript.fixtures.ts index 0f00694bae..79b6b38fcf 100644 --- a/apps/crn-server/test/fixtures/manuscript.fixtures.ts +++ b/apps/crn-server/test/fixtures/manuscript.fixtures.ts @@ -237,6 +237,8 @@ export const getManuscriptsListResponse = { id: 'ID01-grant-001-org-P-1', manuscriptId: 'manuscript-id-1', + title: 'Manuscript 1', + teams: ['Team A'], requestingApcCoverage: 'Yes', lastUpdated: '2020-09-23T20:45:22.000Z', status: 'Compliant', @@ -248,6 +250,8 @@ export const getManuscriptsListResponse = { id: 'ID01-grant-002-org-P-1', manuscriptId: 'manuscript-id-2', + title: 'Manuscript 2', + teams: ['Team A'], requestingApcCoverage: 'Yes', lastUpdated: '2020-09-23T20:45:22.000Z', status: 'Compliant', diff --git a/packages/contentful/migrations/crn/manuscripts/20250130161227-add-assigned-users.js b/packages/contentful/migrations/crn/manuscripts/20250130161227-add-assigned-users.js new file mode 100644 index 0000000000..1fe220fed7 --- /dev/null +++ b/packages/contentful/migrations/crn/manuscripts/20250130161227-add-assigned-users.js @@ -0,0 +1,30 @@ +module.exports.description = 'Add assigned users field to manuscripts'; + +module.exports.up = (migration) => { + const manuscripts = migration.editContentType('manuscripts'); + + manuscripts + .createField('assignedUsers') + .name('Assigned Users') + .type('Array') + .localized(false) + .required(false) + .disabled(false) + .omitted(false) + .items({ + type: 'Link', + + validations: [ + { + linkContentType: ['users'], + }, + ], + + linkType: 'Entry', + }); +}; + +module.exports.down = (migration) => { + const manuscripts = migration.editContentType('manuscripts'); + manuscripts.deleteField('assignedUsers'); +}; diff --git a/packages/fixtures/src/manuscripts.ts b/packages/fixtures/src/manuscripts.ts index e1830617d2..1ab3822b40 100644 --- a/packages/fixtures/src/manuscripts.ts +++ b/packages/fixtures/src/manuscripts.ts @@ -83,6 +83,8 @@ export const createPartialManuscriptResponse = (): PartialManuscriptResponse => ({ id: 'DA1-000463-003-org-G-1', manuscriptId: 'manuscript-1', + title: 'Manuscript 1', + teams: ['Team 1'], lastUpdated: '2020-09-23T20:45:22.000Z', team: { id: 'team-id-1', diff --git a/packages/model/src/manuscript.ts b/packages/model/src/manuscript.ts index 3d3f0a1421..4c9d9bfb4d 100644 --- a/packages/model/src/manuscript.ts +++ b/packages/model/src/manuscript.ts @@ -823,7 +823,7 @@ export type PartialManuscriptResponse = Pick< ManuscriptVersion, 'id' | 'requestingApcCoverage' > & - Pick & { + Pick & { lastUpdated: string; team: { id: string; displayName: string }; assignedUsers?: Pick< @@ -831,6 +831,7 @@ export type PartialManuscriptResponse = Pick< 'id' | 'firstName' | 'lastName' | 'avatarUrl' >[]; manuscriptId: string; + teams: string[]; }; export type ListPartialManuscriptResponse = diff --git a/packages/react-components/src/organisms/__tests__/ComplianceTable.test.tsx b/packages/react-components/src/organisms/__tests__/ComplianceTable.test.tsx index 38d1881b05..36fca639ef 100644 --- a/packages/react-components/src/organisms/__tests__/ComplianceTable.test.tsx +++ b/packages/react-components/src/organisms/__tests__/ComplianceTable.test.tsx @@ -21,6 +21,8 @@ describe('ComplianceTable', () => { team: { id: 'team-id', displayName: 'Test Team' }, requestingApcCoverage: 'Yes', manuscriptId: 'manuscript-id-1', + title: 'Manuscript 1', + teams: ['Test Team'], assignedUsers: [ { id: 'user-id', diff --git a/packages/react-components/src/organisms/__tests__/ComplianceTableRow.test.tsx b/packages/react-components/src/organisms/__tests__/ComplianceTableRow.test.tsx index 40e7765500..1b2ffc084b 100644 --- a/packages/react-components/src/organisms/__tests__/ComplianceTableRow.test.tsx +++ b/packages/react-components/src/organisms/__tests__/ComplianceTableRow.test.tsx @@ -13,6 +13,8 @@ describe('ComplianceTableRow', () => { requestingApcCoverage: 'Yes', manuscriptId: 'manuscript-id-1', assignedUsers: [], + title: 'Manuscript 1', + teams: ['Test Team'], }; const mockOnUpdateManuscript = jest.fn(); diff --git a/packages/react-components/src/templates/__tests__/ComplianceDashboard.test.tsx b/packages/react-components/src/templates/__tests__/ComplianceDashboard.test.tsx index 8ac7209e87..8b70551c02 100644 --- a/packages/react-components/src/templates/__tests__/ComplianceDashboard.test.tsx +++ b/packages/react-components/src/templates/__tests__/ComplianceDashboard.test.tsx @@ -15,6 +15,8 @@ describe('ComplianceDashboard', () => { team: { id: 'team-1', displayName: 'Test Team' }, assignedUsers: [], manuscriptId: '1', + title: 'Manuscript 1', + teams: ['Test Team'], }, ], numberOfPages: 1,