diff --git a/index.html b/index.html index 2e653f2..c8523f4 100644 --- a/index.html +++ b/index.html @@ -9,7 +9,6 @@ - S4WEB @@ -18,11 +17,12 @@ \ No newline at end of file diff --git a/riot/app.riot b/riot/app.riot index de6dc9e..9da30c0 100644 --- a/riot/app.riot +++ b/riot/app.riot @@ -1,11 +1,11 @@
-
- +
+
- +
@@ -15,16 +15,141 @@ onBeforeMount(props, state) { // initial state this.state = { - choix: '', - filiere: '' + statistique: '', + selectivite: '', + moyenne: '', + pct_femme: '' }; }, - isSelected(formation, fili){ + + async isSelected(detail, type){ + this.getData(detail, type) + }, + + reset(){ this.update({ - choix: formation, - filiere: fili + statistique: '', + selectivite: '', + moyenne: '', + pct_femme: '' }) - } + }, + + async getData(detail, type){ + if(!localStorage.getItem(`${type}+${detail}`)){ + let rep = await fetch(`https://data.enseignementsup-recherche.gouv.fr/api/records/1.0/search/?dataset=fr-esr-parcoursup&q=&sort=tri&facet=session&facet=contrat_etab&facet=cod_uai&facet=g_ea_lib_vx&facet=dep_lib&facet=region_etab_aff&facet=acad_mies&facet=ville_etab&facet=lib_for_voe_ins&facet=select_form&facet=fili&facet=form_lib_voe_acc&facet=fil_lib_voe_acc&facet=detail_forma&facet=tri&facet=cod_aff_form&facet=etablissement_id_paysage&facet=composante_id_paysage&refine.form_lib_voe_acc=${encodeURIComponent(type)}&refine.fil_lib_voe_acc=${encodeURIComponent(detail)}&timezone=Europe%2FBerlin&rows=352&refine.sexe=F`); + rep = await rep.json(); + + localStorage.setItem(`${type}+${detail}`, JSON.stringify(rep)) + this.update({ + statistique: rep + }) + }else{ + this.update({ + statistique: JSON.parse(localStorage.getItem(`${type}+${detail}`)) + }) + } + this.calcule() + }, + + + getSelectivite(records){ + let total = records.length + let gen = records.reduce(function (accumulateur, valeurCourante) { + if(valeurCourante.fields.taux_acces_ens){ + return accumulateur + (valeurCourante.fields.taux_acces_ens) + }else{ + return accumulateur + } + }, 0); + + this.update({ + selectivite: Math.round(gen/total)-1 + }) + }, + + getMoyenne(records){ + + let gen = records.reduce(function (accumulateur, valeurCourante) { + if(valeurCourante.fields.acc_tb){ + accumulateur += (valeurCourante.fields.acc_tb*16) + } + if(valeurCourante.fields.acc_ab){ + accumulateur += (valeurCourante.fields.acc_ab*12) + } + if(valeurCourante.fields.acc_b){ + accumulateur += (valeurCourante.fields.acc_b*14) + } + if(valeurCourante.fields.acc_tbf){ + accumulateur += (valeurCourante.fields.acc_tbf*18) + } + if(valeurCourante.fields.sansmention){ + accumulateur += (valeurCourante.fields.sansmention*10) + } + if(valeurCourante.fields.acc_mention_nonrenseigne){ + accumulateur += (valeurCourante.fields.acc_mention_nonrenseigne*10) + } + return accumulateur; + }, 0); + + + let total = records.reduce(function (accumulateur, valeurCourante) { + if(valeurCourante.fields.acc_tb){ + accumulateur += (valeurCourante.fields.acc_tb) + } + if(valeurCourante.fields.acc_ab){ + accumulateur += (valeurCourante.fields.acc_ab) + } + if(valeurCourante.fields.acc_b){ + accumulateur += (valeurCourante.fields.acc_b) + } + if(valeurCourante.fields.acc_tbf){ + accumulateur += (valeurCourante.fields.acc_tbf) + } + if(valeurCourante.fields.sansmention){ + accumulateur += (valeurCourante.fields.sansmention) + } + if(valeurCourante.fields.acc_mention_nonrenseigne){ + accumulateur += (valeurCourante.fields.acc_mention_nonrenseigne) + } + return accumulateur; + }, 0); + + this.update({ + moyenne: (Math.round(gen/total*100))/100 + }) + }, + + getPctFemme(records){ + let femme=records.reduce(function (accumulateur, valeurCourante) { + if(valeurCourante.fields.acc_tot_f){ + //nombre de femme + accumulateur += (valeurCourante.fields.acc_tot_f) + } + + return accumulateur; + }, 0); + + let total=records.reduce(function (accumulateur, valeurCourante) { + if(valeurCourante.fields.acc_tot_f){ + //nombre d'admis + accumulateur += (valeurCourante.fields.acc_tot) + } + + return accumulateur; + }, 0); + + this.update({ + pct_femme: Math.round(femme/total*100) + }) + }, + + calcule(){ + this.getSelectivite(this.state.statistique.records) + this.getMoyenne(this.state.statistique.records) + this.getPctFemme(this.state.statistique.records) + }, + } } diff --git a/riot/choixformation.riot b/riot/choixformation.riot index 8aa6f8b..0e18373 100644 --- a/riot/choixformation.riot +++ b/riot/choixformation.riot @@ -166,10 +166,13 @@ }, changeDetail(e){ - this.update({ - detail: e.target.id - }) - this.props.isSelected(this.state.detail, this.state.type) + if(e.target.id != this.state.detail){ + this.update({ + detail: e.target.id + }) + this.props.reset() + this.props.isSelected(this.state.detail, this.state.type) + } }, search(e){ @@ -185,6 +188,7 @@ type: '', detail: '' }) + this.props.reset() this.getFili(); }, @@ -194,6 +198,7 @@ detail: '', type: '' }) + this.props.reset() this.getType() }, @@ -202,6 +207,7 @@ recherche: '', detail: '' }) + this.props.reset() } }; diff --git a/riot/statistiqueFormation.riot b/riot/statistiqueFormation.riot index 6bb240c..e619e24 100644 --- a/riot/statistiqueFormation.riot +++ b/riot/statistiqueFormation.riot @@ -1,20 +1,23 @@ -
+
-

Moyenne des admis : 13.1

-

Nombre de formations : 80

-

Capacité : 122

+

Moyenne des admis : {props.moyenne}

+

Nombre de formations : {props.statistique.nhits}

+

Capacité :

Sélectivité :

- +
-

(46%)

+

{props.selectivite}

- + {props.selectivite}% + 25 && props.selectivite < 50}>{props.selectivite}% + 50 && props.selectivite < 75}>{props.selectivite}% + = 75}>{props.selectivite}%
@@ -23,18 +26,18 @@
- +

Répartition par genre

-
-

52%

+
+

{props.pct_femme}%

-
-

48%

+
+

{100-props.pct_femme}%

@@ -63,14 +66,17 @@
-
-

51%

+
+

%

-
-

49%

+
+

%

-
-

1%

+
+

%

+
+
+

%

@@ -166,24 +172,20 @@ export default function todos() { onBeforeMount(props, state) { // initial state this.state = { - statistique: '' + pct_femme: '' }; }, - isPossible(fili, formation){ - if(fili && formation){ - this.getStatistique(fili, formation) - return true - }else{ - return false; - } + + load(){ }, - async getStatistique(fili, formation){ - let rep=await fetch(`https://data.enseignementsup-recherche.gouv.fr/api/records/1.0/search/?dataset=fr-esr-parcoursup&q=&sort=tri&facet=session&facet=contrat_etab&facet=cod_uai&facet=g_ea_lib_vx&facet=dep_lib&facet=region_etab_aff&facet=acad_mies&facet=ville_etab&facet=lib_for_voe_ins&facet=select_form&facet=fili&facet=form_lib_voe_acc&facet=fil_lib_voe_acc&facet=detail_forma&facet=tri&facet=cod_aff_form&facet=etablissement_id_paysage&facet=composante_id_paysage&refine.form_lib_voe_acc=${encodeURIComponent(fili)}&refine.fil_lib_voe_acc=${encodeURIComponent(formation)}&timezone=Europe%2FBerlin`) - rep=await rep.json(); - console.log(JSON.stringify(rep)) + + + reset(){ } + } + } \ No newline at end of file