diff --git a/api/db/seeds/data/team-prescription/build-campaigns.js b/api/db/seeds/data/team-prescription/build-campaigns.js index de878228ea8..ad7753cee7d 100644 --- a/api/db/seeds/data/team-prescription/build-campaigns.js +++ b/api/db/seeds/data/team-prescription/build-campaigns.js @@ -10,6 +10,7 @@ import { import { createAssessmentCampaign, createProfilesCollectionCampaign } from '../common/tooling/campaign-tooling.js'; import { CAMPAIGN_PROASSMUL_ID, + CAMPAIGN_PROCOLMUL_ID, TARGET_PROFILE_BADGES_STAGES_ID, TARGET_PROFILE_NO_BADGES_NO_STAGES_ID, } from './constants.js'; @@ -142,6 +143,7 @@ async function _createProGenericCampaigns(databaseBuilder) { async function _createProCampaigns(databaseBuilder) { await createProfilesCollectionCampaign({ + campaignId: CAMPAIGN_PROCOLMUL_ID, databaseBuilder, organizationId: PRO_ORGANIZATION_ID, ownerId: USER_ID_ADMIN_ORGANIZATION, diff --git a/api/db/seeds/data/team-prescription/build-organization-learners-with-multiple-participations.js b/api/db/seeds/data/team-prescription/build-organization-learners-with-multiple-participations.js index cdfdfbcad72..b2c64fd6d8a 100644 --- a/api/db/seeds/data/team-prescription/build-organization-learners-with-multiple-participations.js +++ b/api/db/seeds/data/team-prescription/build-organization-learners-with-multiple-participations.js @@ -1,7 +1,7 @@ import { CampaignParticipationStatuses } from '../../../../src/prescription/shared/domain/constants.js'; import { Assessment } from '../../../../src/shared/domain/models/Assessment.js'; import { PRO_ORGANIZATION_ID } from '../common/constants.js'; -import { CAMPAIGN_PROASSMUL_ID } from './constants.js'; +import { CAMPAIGN_PROASSMUL_ID, CAMPAIGN_PROCOLMUL_ID } from './constants.js'; async function _buildMultipleParticipationsForPROASSMULCampaign(databaseBuilder) { const firstUser = await databaseBuilder.factory.buildUser.withRawPassword({ @@ -201,6 +201,120 @@ async function _buildMultipleParticipationsForPROASSMULCampaign(databaseBuilder) }); } +async function _buildMultipleParticipationsForPROCOLMULCampaign(databaseBuilder) { + const firstUser = await databaseBuilder.factory.buildUser.withRawPassword({ + firstName: 'Martin', + lastName: 'Sapin', + email: 'martin-sapin@example.net', + cgu: true, + lang: 'fr', + }); + + const firstOrganizationLearner = await databaseBuilder.factory.buildOrganizationLearner({ + firstName: 'Martin', + lastName: 'Sapin', + userId: firstUser.id, + organizationId: PRO_ORGANIZATION_ID, + }); + + await databaseBuilder.factory.buildCampaignParticipation({ + campaignId: CAMPAIGN_PROCOLMUL_ID, + organizationLearnerId: firstOrganizationLearner.id, + userId: firstUser.id, + pixScore: 20, + isImproved: true, + status: CampaignParticipationStatuses.SHARED, + createdAt: '2023-12-27T15:07:57.376Z', + sharedAt: '2024-01-04T15:07:57.376Z', + }); + + await databaseBuilder.factory.buildCampaignParticipation({ + organizationLearnerId: firstOrganizationLearner.id, + userId: firstUser.id, + campaignId: CAMPAIGN_PROCOLMUL_ID, + pixScore: 50, + isImproved: false, + status: CampaignParticipationStatuses.SHARED, + createdAt: '2024-03-12T15:07:57.376Z', + sharedAt: '2024-03-24T15:07:57.376Z', + }); + + const secondUser = await databaseBuilder.factory.buildUser.withRawPassword({ + firstName: 'José', + lastName: 'Lopez', + email: 'jose-lopez@example.net', + cgu: true, + lang: 'fr', + }); + + const secondOrganizationLearner = await databaseBuilder.factory.buildOrganizationLearner({ + firstName: 'José', + lastName: 'Lopez', + userId: secondUser.id, + organizationId: PRO_ORGANIZATION_ID, + }); + + await databaseBuilder.factory.buildCampaignParticipation({ + campaignId: CAMPAIGN_PROCOLMUL_ID, + organizationLearnerId: secondOrganizationLearner.id, + userId: secondUser.id, + pixScore: 50, + isImproved: true, + status: CampaignParticipationStatuses.SHARED, + createdAt: '2023-12-27T15:07:57.376Z', + sharedAt: '2024-01-04T15:07:57.376Z', + }); + + await databaseBuilder.factory.buildCampaignParticipation({ + organizationLearnerId: secondOrganizationLearner.id, + userId: secondUser.id, + campaignId: CAMPAIGN_PROCOLMUL_ID, + pixScore: 45, + isImproved: false, + status: CampaignParticipationStatuses.SHARED, + createdAt: '2024-03-12T15:07:57.376Z', + sharedAt: '2024-03-24T15:07:57.376Z', + }); + + const thirdUser = await databaseBuilder.factory.buildUser.withRawPassword({ + firstName: 'Pierre', + lastName: 'Quiroule', + email: 'pierre-quiroule@example.net', + cgu: true, + lang: 'fr', + }); + + const thirdOrganizationLearner = await databaseBuilder.factory.buildOrganizationLearner({ + firstName: 'Pierre', + lastName: 'Quiroule', + userId: thirdUser.id, + organizationId: PRO_ORGANIZATION_ID, + }); + + await databaseBuilder.factory.buildCampaignParticipation({ + campaignId: CAMPAIGN_PROCOLMUL_ID, + organizationLearnerId: thirdOrganizationLearner.id, + userId: thirdUser.id, + pixScore: 20, + isImproved: true, + status: CampaignParticipationStatuses.SHARED, + createdAt: '2023-12-27T15:07:57.376Z', + sharedAt: '2024-01-04T15:07:57.376Z', + }); + + await databaseBuilder.factory.buildCampaignParticipation({ + organizationLearnerId: thirdOrganizationLearner.id, + userId: thirdUser.id, + campaignId: CAMPAIGN_PROCOLMUL_ID, + pixScore: 20, + isImproved: false, + status: CampaignParticipationStatuses.SHARED, + createdAt: '2024-03-12T15:07:57.376Z', + sharedAt: '2024-03-24T15:07:57.376Z', + }); +} + export async function buildOrganizationLearnersWithMultipleParticipations(databaseBuilder) { await _buildMultipleParticipationsForPROASSMULCampaign(databaseBuilder); + await _buildMultipleParticipationsForPROCOLMULCampaign(databaseBuilder); } diff --git a/api/db/seeds/data/team-prescription/constants.js b/api/db/seeds/data/team-prescription/constants.js index 3b57574f5a7..18ec90d08d6 100644 --- a/api/db/seeds/data/team-prescription/constants.js +++ b/api/db/seeds/data/team-prescription/constants.js @@ -13,11 +13,13 @@ const BADGES_CAMP_ID = TEAM_PRESCRIPTION_OFFSET_ID + 1; // CAMPAIGNS const CAMPAIGN_PROASSMUL_ID = TEAM_PRESCRIPTION_OFFSET_ID; +const CAMPAIGN_PROCOLMUL_ID = TEAM_PRESCRIPTION_OFFSET_ID + 1; export { BADGES_CAMP_ID, BADGES_TUBES_CAMP_ID, CAMPAIGN_PROASSMUL_ID, + CAMPAIGN_PROCOLMUL_ID, DEFAULT_PASSWORD, TARGET_PROFILE_BADGES_STAGES_ID, TARGET_PROFILE_NO_BADGES_NO_STAGES_ID, diff --git a/orga/app/components/campaign/results/assessment-list.gjs b/orga/app/components/campaign/results/assessment-list.gjs index 3fa23149b8f..259f0b7f1e8 100644 --- a/orga/app/components/campaign/results/assessment-list.gjs +++ b/orga/app/components/campaign/results/assessment-list.gjs @@ -2,9 +2,9 @@ import { t } from 'ember-intl'; import TableHeader from '../../table/header'; import TablePaginationControl from '../../table/pagination-control'; -import TooltipWithIcon from '../../ui/tooltip-with-icon'; import CampaignParticipationFilters from '../filter/participation-filters'; import CampaignAssessmentRow from '../results/assessment-row'; +import EvolutionHeader from './evolution-header';