ProjetRIOT/javascript/school-info.js

222 lines
7.5 KiB
JavaScript
Raw Normal View History

2023-03-25 20:29:49 +01:00
var schoolInfo = {
css: null,
exports: {
2023-03-31 17:07:25 +02:00
onBeforeMount(props, state) {
this.state = {
bacStats: [],
genreStats: [],
mentionStats: []
};
2023-03-28 13:06:28 +02:00
},
2023-03-31 17:07:25 +02:00
onBeforeUpdate(props, state) {
if (!this.props.school) return;
let school = this.props.school.fields;
state.genreStats = [{
name: "Hommes",
short: "H",
value: 100 - school.pct_f
}, {
name: "Femmes",
short: "F",
value: school.pct_f
}];
state.bacStats = [{
name: "Général",
short: "Gen.",
2023-03-31 17:23:49 +02:00
value: Math.round(school.part_acces_gen)
2023-03-31 17:07:25 +02:00
}, {
name: "Technologique",
short: "Tech.",
2023-03-31 17:23:49 +02:00
value: Math.round(school.part_acces_tec)
2023-03-31 17:07:25 +02:00
}, {
name: "Professionnel",
short: "Pro.",
2023-03-31 17:23:49 +02:00
value: Math.round(school.part_acces_pro)
2023-03-31 17:07:25 +02:00
}, {
name: "Autre",
short: "Au.",
value: 100 - (school.part_acces_gen + school.part_acces_tec + school.part_acces_pro)
}];
state.mentionStats = [{
name: "Sans Mention",
short: "SM",
2023-03-31 17:23:49 +02:00
value: Math.round(school.pct_sansmention)
2023-03-31 17:07:25 +02:00
}, {
name: "Assez Bien",
short: "AB",
2023-03-31 17:23:49 +02:00
value: Math.round(school.pct_ab)
2023-03-31 17:07:25 +02:00
}, {
name: "Bien",
short: "B",
2023-03-31 17:23:49 +02:00
value: Math.round(school.pct_b)
2023-03-31 17:07:25 +02:00
}, {
name: "Très Bien",
short: "TB",
2023-03-31 17:23:49 +02:00
value: Math.round(school.pct_tb)
2023-03-31 17:07:25 +02:00
}, {
name: "Très Bien + Félicitations",
short: "TBF",
2023-03-31 17:23:49 +02:00
value: Math.round(school.pct_tbf)
2023-03-31 17:07:25 +02:00
}, {
name: "Non Spécifié",
short: "NS",
value: 100 - (school.pct_sansmention + school.pct_ab + school.pct_b + school.pct_tb + school.pct_tbf)
}];
2023-03-26 17:40:15 +02:00
}
2023-03-25 20:29:49 +01:00
},
2023-03-31 22:27:45 +02:00
template: (template, expressionTypes, bindingTypes, getComponent) => template('<div expr11="expr11" style="z-index: 10000" class="modal is-active"></div>', [{
2023-03-28 13:06:28 +02:00
type: bindingTypes.IF,
2023-03-31 17:07:25 +02:00
evaluate: _scope => _scope.props.popupEnabled,
2023-03-31 22:27:45 +02:00
redundantAttribute: 'expr11',
selector: '[expr11]',
template: template('<div class="modal-background"></div><div class="modal-content"><div class="box p-2"><p><h1 expr12="expr12" class="title is-4 m-2" style="color: #485FC7;"> </h1></p><div class="columns m-2"><div class="column"><p expr13="expr13"> </p><p expr14="expr14"> </p><p expr15="expr15"> </p><p expr16="expr16"> </p><p expr17="expr17"> </p><p expr18="expr18"> </p><p>Rang dernier appelé : </p><ul><li expr19="expr19"></li><li expr20="expr20"></li><li expr21="expr21"></li></ul><p expr22="expr22"> </p></div></div><div class="m-4"><line-graph expr23="expr23" title="Répartition par genre" style="height: 6rem;"></line-graph></div><div class="m-4"><line-graph expr24="expr24" title="Répartition par bac" style="height: 6rem;"></line-graph></div><div class="m-4"><line-graph expr25="expr25" title="Répartition par mention au bac" style="height: 6rem;"></line-graph></div></div></div><button expr26="expr26" class="modal-close is-medium"></button>', [{
redundantAttribute: 'expr12',
selector: '[expr12]',
2023-03-28 13:06:28 +02:00
expressions: [{
2023-03-31 17:07:25 +02:00
type: expressionTypes.TEXT,
childNodeIndex: 0,
evaluate: _scope => _scope.props.school.fields.g_ea_lib_vx
}]
}, {
2023-03-31 22:27:45 +02:00
redundantAttribute: 'expr13',
selector: '[expr13]',
2023-03-31 17:07:25 +02:00
expressions: [{
type: expressionTypes.TEXT,
childNodeIndex: 0,
evaluate: _scope => ['Ville : ', _scope.props.school.fields.ville_etab].join('')
}]
}, {
2023-03-31 22:27:45 +02:00
redundantAttribute: 'expr14',
selector: '[expr14]',
2023-03-31 17:07:25 +02:00
expressions: [{
type: expressionTypes.TEXT,
childNodeIndex: 0,
evaluate: _scope => ['Département : ', _scope.props.school.fields.dep, ' ', _scope.props.school.fields.dep_lib].join('')
}]
}, {
2023-03-31 22:27:45 +02:00
redundantAttribute: 'expr15',
selector: '[expr15]',
2023-03-31 17:07:25 +02:00
expressions: [{
type: expressionTypes.TEXT,
childNodeIndex: 0,
evaluate: _scope => ['Académie : ', _scope.props.school.fields.acad_mies].join('')
2023-03-28 13:06:28 +02:00
}]
2023-03-31 17:07:25 +02:00
}, {
2023-03-31 22:27:45 +02:00
redundantAttribute: 'expr16',
selector: '[expr16]',
2023-03-31 17:07:25 +02:00
expressions: [{
type: expressionTypes.TEXT,
childNodeIndex: 0,
evaluate: _scope => _scope.props.school.fields.contrat_etab
}]
}, {
2023-03-31 22:27:45 +02:00
redundantAttribute: 'expr17',
selector: '[expr17]',
2023-03-31 17:07:25 +02:00
expressions: [{
type: expressionTypes.TEXT,
childNodeIndex: 0,
evaluate: _scope => ['Capacité : ', _scope.props.school.fields.capa_fin].join('')
}]
}, {
2023-03-31 22:27:45 +02:00
redundantAttribute: 'expr18',
selector: '[expr18]',
2023-03-31 17:07:25 +02:00
expressions: [{
type: expressionTypes.TEXT,
childNodeIndex: 0,
evaluate: _scope => ['Nombre de voeux : ', _scope.props.school.fields.voe_tot].join('')
2023-03-28 13:06:28 +02:00
}]
2023-03-31 17:23:49 +02:00
}, {
type: bindingTypes.IF,
evaluate: _scope => _scope.props.school.fields.lib_grp1,
2023-03-31 22:27:45 +02:00
redundantAttribute: 'expr19',
selector: '[expr19]',
2023-03-31 17:23:49 +02:00
template: template(' ', [{
expressions: [{
type: expressionTypes.TEXT,
childNodeIndex: 0,
evaluate: _scope => [_scope.props.school.fields.lib_grp1, ' : ', _scope.props.school.fields.ran_grp1].join('')
}]
}])
}, {
type: bindingTypes.IF,
evaluate: _scope => _scope.props.school.fields.lib_grp2,
2023-03-31 22:27:45 +02:00
redundantAttribute: 'expr20',
selector: '[expr20]',
2023-03-31 17:23:49 +02:00
template: template(' ', [{
expressions: [{
type: expressionTypes.TEXT,
childNodeIndex: 0,
evaluate: _scope => [_scope.props.school.fields.lib_grp2, ' : ', _scope.props.school.fields.ran_grp2].join('')
}]
}])
}, {
type: bindingTypes.IF,
evaluate: _scope => _scope.props.school.fields.lib_grp3,
2023-03-31 22:27:45 +02:00
redundantAttribute: 'expr21',
selector: '[expr21]',
2023-03-31 17:23:49 +02:00
template: template(' ', [{
expressions: [{
type: expressionTypes.TEXT,
childNodeIndex: 0,
evaluate: _scope => [_scope.props.school.fields.lib_grp3, ' : ', _scope.props.school.fields.ran_grp3].join('')
}]
}])
}, {
2023-03-31 22:27:45 +02:00
redundantAttribute: 'expr22',
selector: '[expr22]',
2023-03-31 17:23:49 +02:00
expressions: [{
type: expressionTypes.TEXT,
childNodeIndex: 0,
evaluate: _scope => ['Admis hors académie : ', 100 - _scope.props.school.fields.pct_aca_orig, '%'].join('')
}]
2023-03-28 13:06:28 +02:00
}, {
type: bindingTypes.TAG,
getComponent: getComponent,
evaluate: _scope => 'line-graph',
slots: [],
2023-03-31 17:07:25 +02:00
attributes: [{
type: expressionTypes.ATTRIBUTE,
name: 'data',
evaluate: _scope => _scope.state.genreStats
}],
2023-03-31 22:27:45 +02:00
redundantAttribute: 'expr23',
selector: '[expr23]'
2023-03-28 13:06:28 +02:00
}, {
type: bindingTypes.TAG,
getComponent: getComponent,
evaluate: _scope => 'line-graph',
slots: [],
2023-03-31 17:07:25 +02:00
attributes: [{
type: expressionTypes.ATTRIBUTE,
name: 'data',
evaluate: _scope => _scope.state.bacStats
}],
2023-03-31 22:27:45 +02:00
redundantAttribute: 'expr24',
selector: '[expr24]'
2023-03-31 17:07:25 +02:00
}, {
type: bindingTypes.TAG,
getComponent: getComponent,
evaluate: _scope => 'line-graph',
slots: [],
attributes: [{
type: expressionTypes.ATTRIBUTE,
name: 'data',
evaluate: _scope => _scope.state.mentionStats
}],
2023-03-31 22:27:45 +02:00
redundantAttribute: 'expr25',
selector: '[expr25]'
2023-03-31 17:07:25 +02:00
}, {
2023-03-31 22:27:45 +02:00
redundantAttribute: 'expr26',
selector: '[expr26]',
2023-03-31 17:07:25 +02:00
expressions: [{
type: expressionTypes.EVENT,
name: 'onclick',
evaluate: _scope => _scope.props.closeWindow
}]
2023-03-28 13:06:28 +02:00
}])
}]),
2023-03-25 20:29:49 +01:00
name: 'school-info'
};
export { schoolInfo as default };