diff --git a/app/but/jury_export.py b/app/but/jury_export.py index 138394ac6..49785b951 100644 --- a/app/but/jury_export.py +++ b/app/but/jury_export.py @@ -27,6 +27,6 @@ def feuille_preparation_jury_but(formsemestre_id: int): "but/jury_export.j2", datetime=datetime, formsemestre=formsemestre, - dept = departement.acronym, + dept=departement.acronym, sco=ScoData(formsemestre=formsemestre), ) diff --git a/app/static/js/export-jury-but.js b/app/static/js/export-jury-but.js index 8960d88e3..8688336bc 100644 --- a/app/static/js/export-jury-but.js +++ b/app/static/js/export-jury-but.js @@ -20,18 +20,36 @@ getMarks(3) <= {"Alice": 13 } getMarks(4) <= {"Alice": 13 } */ + +async function do_export(api_root, formsemstre_id) { + console.log('***************** start *****************'); + const students = await api.getStudents(api_root, formsemstre_id); + console.log('***************** got students *****************'); + console.log(students) + console.log('***************** seeking sems *****************'); + const student_requests = students.map((student) => { + return api.getStudentSems(api_root, student.id); + }); + const sems = await Promise.all(student_requests); + debugger; + console.log('***************** got sems *****************'); + const set_sem = new Set(sems.flat()); + console.log(set_sem) + console.log('***************** seeking marks *****************'); + const studentsGrades = await Promise.all([...set_sem].map(sem => api.getMarks(sem))); + debugger; + // Expected output: "resolved" +} + + const api = { - getStudents() { - return new Promise((resolve) => { - setTimeout(() => { - resolve(studentsdemo); - }, 500); - }); + getStudents(api_root, formsemestre_id) { + return fetch(`${api_root}/formsemestre/${formsemestre_id}/etudiants`) + .then(response => response.json()) }, - getStudentSems(student) { - return new Promise( - resolve => { setTimeout(resolve, student.wait, student.sems); } - ); + getStudentSems(api_root, etudid) { + return fetch(`${api_root}/etudiant/etudid/${etudid}/formsemestres`) + .then(response => response.json()) }, getMarks(sem_id) { return new Promise( @@ -40,80 +58,6 @@ const api = { } } -$(document).ready(function() { - $("#ok").click(function(){ - do_export(); - }); -}); - - -function getData() { - // let students = api.getStudents() - // console.log(students); - // let promises = - // students.map((student) => api.getStudentSems(student)); - // return Promise.all(promises); -} - -async function asyncCall() { - // const sem_requests = new Map(); - console.log('***************** start *****************'); - const students = await api.getStudents(); - console.log('***************** got students *****************'); - console.log(students) - console.log('***************** seeking sems and marks *****************'); - const student_requests = students.map((student) => { - return api.getStudentSems(student); - }); - const sems = await Promise.all(student_requests); - const full_sem = sems.flat(); - const set_sem = [...new Set(full_sem)]; - const studentsGrades = await Promise.all(set_sem.map(sem => api.getMarks(sem))); - debugger; -/* - console.log("lookup for " + student.name + "'s sems."); - const sems = api.getStudentSems(student) - console.log(`***************** got ${student.name}'s sems *****************`); - console.log(sems); - return sems; - }); - const sems.forEach((sem) => { - console.log(`looking for mark for sem ${sem}`); - console.log("** current sems requests"); - console.log(sem_requests) - if (sem_requests[sem] === 'undefined') { - console.log(`seeking ${sem} marks`) - - sem_requests[sem] = api.getMarks(sem); - } - }) - - sems.forEach((sem) => { - console.log(`looking for mark for sem ${sem}`); - console.log("** current sems requests"); - console.log(sem_requests) - if (sem_requests[sem] === 'undefined') { - console.log(`seeking ${sem} marks`) - - sem_requests[sem] = api.getMarks(sem); - } - }) - - let result_sems = await Promise.all(sem_requests) - console.log('***************** sems ok *****************'); - console.log(result_sems); - console.log('***************** stop *****************'); -*/ - // Expected output: "resolved" -} - -function do_export() { - event.preventDefault(); - // students = getData(); - // console.log(students); - asyncCall(); -} - // let loaded_sems = []; // // async function doit() { diff --git a/app/templates/but/jury_export.j2 b/app/templates/but/jury_export.j2 index a1eae50c2..937686656 100644 --- a/app/templates/but/jury_export.j2 +++ b/app/templates/but/jury_export.j2 @@ -9,19 +9,23 @@

Export xlsx de fichier de jury

-
+

Formsemestre: {{ formsemestre.id }}


API root: /ScoDoc/{{dept}}/api/


- +
{% endblock %} {% block scripts %} {{super()}} +