From b9e9d1e0ebb70e7ecc5cfca2a59a320d1cd1422b Mon Sep 17 00:00:00 2001 From: SeghirOumo Date: Thu, 5 Sep 2024 09:47:11 +0200 Subject: [PATCH] Aftral[#111]: added evaluation_resources under statistics --- backend/web/server/plugins/aftral-lms/functions.js | 2 +- .../server/plugins/aftral-lms/schemas/BlockSchema.js | 9 +++++++++ .../server/plugins/aftral-lms/schemas/ProgramSchema.js | 9 --------- backend/web/tests/aftral-lms/statistics.test.js | 10 ++-------- 4 files changed, 12 insertions(+), 18 deletions(-) diff --git a/backend/web/server/plugins/aftral-lms/functions.js b/backend/web/server/plugins/aftral-lms/functions.js index 16f8948bc0..f99404b663 100644 --- a/backend/web/server/plugins/aftral-lms/functions.js +++ b/backend/web/server/plugins/aftral-lms/functions.js @@ -105,6 +105,7 @@ BLOCK_MODELS.forEach(model => { declareComputedField({model, field: 'tickets_count', getterFn: getBlockTicketsCount}) declareEnumField({model, field: 'scale', enumValues: SCALE}) declareComputedField({model, field: 'note', getterFn: getBlockNote}) + declareComputedField({model, field: 'evaluation_resources', getterFn: getEvalResources}) }) //Program start @@ -116,7 +117,6 @@ declareComputedField({ requires:PROGRAM_CERTIFICATE_ATTRIBUTES.join(','), getterFn: getCertificate, }) -declareComputedField({model: 'program', field: 'evaluation_resources', getterFn: getEvalResources}) //Program end declareComputedField({model: 'resource', field: 'mine', getterFn: isResourceMine}) diff --git a/backend/web/server/plugins/aftral-lms/schemas/BlockSchema.js b/backend/web/server/plugins/aftral-lms/schemas/BlockSchema.js index d432cfb6ab..7c564ce85f 100644 --- a/backend/web/server/plugins/aftral-lms/schemas/BlockSchema.js +++ b/backend/web/server/plugins/aftral-lms/schemas/BlockSchema.js @@ -271,6 +271,15 @@ const BlockSchema = new Schema({ type: String, required: false, }, + // Computed + evaluation_resources: { + type: [{ + type: Schema.Types.ObjectId, + ref: `block`, + }], + required: true, + default: [] + } }, {...schemaOptions, ...BLOCK_DISCRIMINATOR}) BlockSchema.virtual('is_template', DUMMY_REF).get(function() { diff --git a/backend/web/server/plugins/aftral-lms/schemas/ProgramSchema.js b/backend/web/server/plugins/aftral-lms/schemas/ProgramSchema.js index 7b3b8e55d8..2906d1eb36 100644 --- a/backend/web/server/plugins/aftral-lms/schemas/ProgramSchema.js +++ b/backend/web/server/plugins/aftral-lms/schemas/ProgramSchema.js @@ -33,15 +33,6 @@ const ProgramSchema = new Schema({ type: String, required: false, }, - // Computed - evaluation_resources: { - type: [{ - type: Schema.Types.ObjectId, - ref: `block`, - }], - required: true, - default: [] - } }, {...schemaOptions, ...BLOCK_DISCRIMINATOR}) /* eslint-disable prefer-arrow-callback */ diff --git a/backend/web/tests/aftral-lms/statistics.test.js b/backend/web/tests/aftral-lms/statistics.test.js index 884870ffa4..22652e2ee8 100644 --- a/backend/web/tests/aftral-lms/statistics.test.js +++ b/backend/web/tests/aftral-lms/statistics.test.js @@ -112,6 +112,7 @@ describe('Test models computations', () => { `sessions.trainees.statistics.children.children.name`, `sessions.trainees.statistics.evaluation_resources`, `sessions.trainees`, + `sessions.children.evaluation_resources` ] }) @@ -138,14 +139,7 @@ describe('Test models computations', () => { fields, }) expect(data[0].sessions[0].trainees.length).toEqual(2) - }) - - it('`must return all trainees statistics including evaluation_resources', async () => { - const data = await loadFromDb({ - model: `statistics`, - user: trainer, - fields, - }) expect(data[0].sessions[0].trainees[0].statistics.evaluation_resources.length).toEqual(1) + expect(data[0].sessions[0].children[0].evaluation_resources.length).toEqual(1) }) }) \ No newline at end of file