diff options
author | Minteck <contact@minteck.org> | 2023-02-23 19:34:56 +0100 |
---|---|---|
committer | Minteck <contact@minteck.org> | 2023-02-23 19:34:56 +0100 |
commit | 3d1cd02f27518f1a04374c7c8320cd5d82ede6e9 (patch) | |
tree | 75be5fba4368472fb11c8015aee026b2b9a71888 /includes/external/school/node_modules/pronote-api/src/fetch/evaluations.js | |
parent | 8cc1f13c17fa2fb5a4410542d39e650e02945634 (diff) | |
download | pluralconnect-3d1cd02f27518f1a04374c7c8320cd5d82ede6e9.tar.gz pluralconnect-3d1cd02f27518f1a04374c7c8320cd5d82ede6e9.tar.bz2 pluralconnect-3d1cd02f27518f1a04374c7c8320cd5d82ede6e9.zip |
Updated 40 files, added 37 files, deleted 1103 files and renamed 3905 files (automated)
Diffstat (limited to 'includes/external/school/node_modules/pronote-api/src/fetch/evaluations.js')
-rw-r--r-- | includes/external/school/node_modules/pronote-api/src/fetch/evaluations.js | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/includes/external/school/node_modules/pronote-api/src/fetch/evaluations.js b/includes/external/school/node_modules/pronote-api/src/fetch/evaluations.js new file mode 100644 index 0000000..dca1b9f --- /dev/null +++ b/includes/external/school/node_modules/pronote-api/src/fetch/evaluations.js @@ -0,0 +1,65 @@ +const { getPeriodBy } = require('../data/periods'); +const { withId, checkDuplicates } = require('../data/id'); + +const getEvaluations = require('./pronote/evaluations'); + +async function evaluations(session, user, period = null, type = null) +{ + const evaluations = await getEvaluations(session, user, getPeriodBy(session, period, type)); + if (!evaluations) { + return null; + } + + const result = []; + + if (!evaluations) { + return null; + } + + for (const evaluation of evaluations) { + let subject = result.find(s => s.name === evaluation.subject.name); + if (!subject) { + const { position, name, color } = evaluation.subject; + subject = { + position, + name, + teacher: evaluation.teacher.name, + color, + evaluations: [] + }; + + result.push(subject); + } + + subject.evaluations.push(withId({ + name: evaluation.name, + date: evaluation.date, + coefficient: evaluation.coefficient, + levels: evaluation.acquisitionLevels.map(({ name, position, value, item, domain, pillar }) => ({ + name: item && item.name || domain.name, + position, + value: { + short: value, + long: name + }, + prefixes: !pillar.prefixes[0] ? [] : pillar.prefixes + })) + }, ['name', 'date'], subject.name)); + } + + result.forEach(s => checkDuplicates(s.evaluations)); + + result.sort((a, b) => a.position - b.position); + result.forEach(s => { + s.evaluations.forEach(e => { + e.levels.sort((a, b) => a.position - b.position); + e.levels.forEach(l => delete l.position); + }); + + return delete s.position; + }); + + return result; +} + +module.exports = evaluations; |