{% extends 'layout/frontEndLayout.html.twig' %}
{% block name %}
Welcome to LiveEdu
{% endblock %}
{% block body %}
<div id="carouselExampleControls" class="carousel slide bs-slider box-slider" data-ride="carousel" data-pause="hover" data-interval="false">
<!-- Indicators -->
<ol class="carousel-indicators">
<li data-target="#carouselExampleControls" data-slide-to="0" class="active"></li>
<li data-target="#carouselExampleControls" data-slide-to="1"></li>
<li data-target="#carouselExampleControls" data-slide-to="2"></li>
</ol>
<div class="carousel-inner" role="listbox" data-ride="carousel"
data-interval="5000">
<div class="carousel-item active">
<div id="home" class="first-section" style="background-image:url({{ asset('assets/images/slider-01.jpg') }});">
<div class="dtab">
<div class="container">
<div class="row">
<div class="col-md-12 col-sm-12 text-right">
<div class="big-tagline">
<h2>
Bilingual Secondary Institute BETHESDA implements
<strong>
LiveEdu
</strong>
</h2>
</div>
</div>
</div>
<!-- end row -->
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
</div>
<!-- end container -->
</div>
</div>
<!-- end section -->
</div>
<div class="carousel-item">
<div id="home" class="first-section" style="background-image:url({{ asset('assets/images/slider-02.jpg') }});">
<div class="dtab">
<div class="container">
<div class="row">
<div class="col-md-12 col-sm-12 text-left">
<div class="big-tagline">
<h2 data-animation="animated zoomInRight">
LiveEdu
<strong>
software online services
</strong>
</h2>
</div>
</div>
</div>
<!-- end row -->
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
</div>
<!-- end container -->
</div>
</div>
<!-- end section -->
</div>
<div class="carousel-item">
<div id="home" class="first-section" style="background-image:url({{ asset('assets/images/slide_04.PNG') }});">
<div class="dtab">
<div class="container">
<div class="row">
<div class="col-md-12 col-sm-12 text-left">
<div class="big-tagline">
<h2 data-animation="animated zoomInRight">
<strong>
LiveEdu adds transparancy
</strong>
for quality education
</h2>
</div>
</div>
</div>
<!-- end row -->
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
</div>
<!-- end container -->
</div>
</div>
<!-- end section -->
</div>
<!-- Left Control -->
<a class="new-effect carousel-control-prev" href="#carouselExampleControls" role="button" data-slide="prev">
<span class="fa fa-angle-left" aria-hidden="true"></span>
<span class="sr-only">
Previous
</span>
</a>
<!-- Right Control -->
<a class="new-effect carousel-control-next" href="#carouselExampleControls" role="button" data-slide="next">
<span class="fa fa-angle-right" aria-hidden="true"></span>
<span class="sr-only">
Next
</span>
</a>
</div>
</div>
<section class="card">
<article class="row card-body" id="officialExams">
<h1 class="card-title text-center">Taux de reussite aux examens officiels session {{year.code}}</h1>
{% for key in results|keys %}
<div class="col-6 col-md-3 " >
<canvas id={{key}} height="120" data-exam-objects=" {{results[key]}}"></canvas>
</div>
{% endfor %}
</article>
</section>
{% endblock %}
{% block javascripts %}
{{ parent() }}
<script type="text/javascript">
//Generate a random color
const randomRgbColor = (type) => {
if (type === "ECHEC") {
return "rgb(255,0,0)"; // rouge pur
} else {
// Couleurs aléatoires pour les autres
let r = Math.floor(Math.random() * 256);
let g = Math.floor(Math.random() * 256);
let b = Math.floor(Math.random() * 256);
return `rgb(${r},${g},${b})`;
}
;
};
const colors=[], datasets = [];
const troisiemeAllExamsGraph = $("#troisiemeall"), troisiemeEspExamsGraph = $("#troisiemeesp") ,
premiereCExamsGraph = $("#premiere_c"), premiereDExamsGraph = $("#premiere_d") ,
premiereAEspExamsGraph = $("#premierea4esp"), premiereAAllExamsGraph = $("#premierea4all"),
terminaleCExamsGraph = $("#terminalec"), terminaleDExamsGraph = $("#terminale_d") ,
terminaleAEspExamsGraph = $("#terminaleaesp"), terminaleAAllExamsGraph = $("#terminaleaall"),
formvArtExamsGraph = $("#formvarts"), formvScienceExamsGraph = $("#formvscience")
;
const troisiemeAllExamsData = troisiemeAllExamsGraph.data('examObjects'), troisiemeEspExamsData = troisiemeEspExamsGraph.data('examObjects'),
premiereCExamsData = premiereCExamsGraph.data('examObjects'), premiereDExamsData = premiereDExamsGraph.data('examObjects'),
premiereAEspExamsData = premiereAEspExamsGraph.data('examObjects'), premiereAAllExamsData = premiereAAllExamsGraph.data('examObjects'),
terminaleCExamsData = terminaleCExamsGraph.data('examObjects'), terminaleDExamsData = terminaleDExamsGraph.data('examObjects'),
terminaleAEspExamsData = terminaleAEspExamsGraph.data('examObjects'), terminaleAAllExamsData = terminaleAAllExamsGraph.data('examObjects'),
formvArtExamsData = formvArtExamsGraph.data('examObjects'),formvScienceExamsData = formvScienceExamsGraph.data('examObjects');
// Draw the graph of official exam results
// Draw the graph of official exam results
const drawCanvas = (examData, examGraph, name) => {
// Parser une seule fois au lieu de 3
const parsedData = JSON.parse(examData);
// Convertir explicitement en nombres
const values = parsedData["mentionCountCategories"].map(v => Number(v));
// Vérifier si des valeurs sont invalides
console.log("➡️ Graph:", name, "Labels:", parsedData["mentionCategories"], "Values:", values);
// Générer les couleurs
const colors = parsedData["mentionCategories"].map(cat => randomRgbColor(cat));
// Créer le graphe
const examChart = new Chart(examGraph, {
type: "doughnut",
data: {
labels: parsedData["mentionCategories"],
datasets: [{
data: values,
backgroundColor: colors
}]
},
options: {
cutout: "70%",
plugins: {
title: {
display: true,
text: name,
font: {
size: 16,
family: 'Helvetica Neue',
},
position: 'bottom',
}
}
}
});
};
// Disposition des canVas dans le frontEnd
drawCanvas(terminaleDExamsData,terminaleDExamsGraph , "Terminale D" );
drawCanvas(terminaleCExamsData,terminaleCExamsGraph , "Terminale C" );
drawCanvas(terminaleAAllExamsData,terminaleAAllExamsGraph , "Terminale A All" );
drawCanvas(terminaleAEspExamsData,terminaleAEspExamsGraph , "Terminale A Esp" );
drawCanvas(premiereAAllExamsData,premiereAAllExamsGraph , "Premiere A All" );
drawCanvas(premiereAEspExamsData,premiereAEspExamsGraph , "Premiere A Esp" );
drawCanvas(premiereCExamsData,premiereCExamsGraph , "Premiere C" );
drawCanvas(premiereDExamsData,premiereDExamsGraph , "Premiere D" );
drawCanvas(troisiemeAllExamsData,troisiemeAllExamsGraph , "Troisieme All" );
drawCanvas(troisiemeEspExamsData,troisiemeEspExamsGraph , "Troisieme Esp" );
drawCanvas(formvArtExamsData,formvArtExamsGraph , "FORM 5 Art(.../5)" );
drawCanvas(formvScienceExamsData,formvScienceExamsGraph , "FORM 5 Science(../5)" );
</script>
{% endblock javascripts %}