{% extends 'layout/base.html.twig' %}{% block stylesheets %}{{ parent() }}<link rel="stylesheet" href="{{ asset('assets/css/style.blue.css') }}"><link rel="stylesheet" href="{{ asset('assets/css/jquery.mCustomScrollbar.css') }}"><link rel="stylesheet" href="{{ asset('assets/cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.css') }}"><style>/* Sidebar */.side-navbar {position: fixed;top: 0;left: 0;width: 220px;height: 100vh;background: #2f3e47;color: white;overflow-y: auto;transition: all 0.3s ease;z-index: 999;}.side-navbar a { color: #d1d4d6; display:block; padding:10px 15px; }.side-navbar a:hover { background:#1e2a31; color:white; }.sidenav-header img { width:70px; border-radius:50%; margin-bottom:10px; }/* Collapsed sidebar (mobile) */.side-navbar.collapsed {left: -220px;}/* Content */.flex-grow-1 {margin-left: 220px;transition: margin 0.3s ease;}.side-navbar.collapsed ~ .flex-grow-1 {margin-left: 0;}/* Header */.header { background:white; border-bottom:1px solid #eee; padding:10px 20px; display:flex; justify-content:space-between; align-items:center; }/* Dashboard cards */.dashboard-card { background:white; border-radius:8px; padding:15px; box-shadow:0 2px 6px rgba(0,0,0,0.1); text-align:center; }.dashboard-card i { font-size:2em; margin-bottom:5px; }/* Toggle button */#toggle-btn { font-size:1.3em; cursor:pointer; color:#2f3e47; }/* Responsive */@media (max-width: 768px) {.flex-grow-1 { margin-left: 0; }.side-navbar { left: -220px; }.side-navbar.collapsed { left: 0; }}</style>{% endblock %}{% block title %}{{ parent() }} / Administration{% endblock %}{% block main %}<div class="d-flex">{# Sidebar #}{% block sidebar %}<nav class="side-navbar"><div class="side-navbar-wrapper">{% block identification %}<div class="sidenav-header d-flex align-items-center justify-content-center"><div class="sidenav-header-inner text-center"><img src={% if is_granted("IS_AUTHENTICATED_REMEMBERED") %} "{{ app.user.avatar(75) }}" {% else %} {{ asset("img/avatar-2.jpg") }} {% endif %} class="img-fluid rounded-circle" alt="user-avatar"><h2 class="h5 text-uppercase"></h2><span class="text-uppercase">{% if is_granted("IS_AUTHENTICATED_REMEMBERED") %}{{ app.user.username }}{% endif %}</span></div><div class="sidenav-header-logo"><a href="index.html" class="brand-small text-center"><strong></strong><strong class="text-primary">D</strong></a></div></div>{% endblock identification %}{% block menu %}<div class="main-menu"><ul id="side-main-menu" class="side-menu list-unstyled">{% if is_granted('ROLE_ADMIN') %}<li class="{% if app.request.attributes.get('_route') == "admin_school_years" %}active{% endif %}"><a href="{{ path('admin_school_years') }}"><i class="fa fa-calendar" aria-hidden="true"></i><span>Années scolaires</span></a></li><li class="{% if app.request.attributes.get('_route') == "admin_quaters" %}active{% endif %}"><a href="{{ path('admin_quaters') }}"><i class="fa fa-calendar-check-o" aria-hidden="true"></i><span>Trimestres</span></a></li><li class="{% if app.request.attributes.get('_route') == "admin_sequences" %}active{% endif %}"><a href="{{ path('admin_sequences') }}"><i class="fa fa-calendar-minus-o" aria-hidden="true"></i><span>Séquences</span></a></li><li class="{% if app.request.attributes.get('_route') == "admin_programs" %}active{% endif %}"><a href="{{ path('admin_programs') }}"><i class="fa fa-table" aria-hidden="true"></i><span>Programmes</span></a></li><li class="{% if app.request.attributes.get('_route') == "admin_sections" %}active{% endif %}"><a href="{{ path('admin_sections') }}"><i class="fa fa-th-large" aria-hidden="true"></i><span>Sections</span></a></li><li class="{% if app.request.attributes.get('_route') == "admin_cycles" %}active{% endif %}"><a href="{{ path('admin_cycles') }}"><i class="fa fa-th-list" aria-hidden="true"></i><span>Cycles</span></a></li><li class="{% if app.request.attributes.get('_route') == "admin_levels" %}active{% endif %}"><a href="{{ path('admin_levels') }}"><i class="fa fa-list-ul" aria-hidden="true"></i><span>Niveaux</span></a></li><li class="{% if app.request.attributes.get('_route') == "admin_classrooms" %}active{% endif %}"><a href="{{ path('admin_classrooms') }}"><i class="fa fa-indent" aria-hidden="true"></i><span>Classes</span></a></li><li class="{% if app.request.attributes.get('_route') == "admin_modules" %}active{% endif %}"><a href="{{ path('admin_modules') }}"><i class="fa fa-folder-open-o" aria-hidden="true"></i><span>Module</span></a></li><li class="{% if app.request.attributes.get('_route') == "admin_domains" %}active{% endif %}"><a href="{{ path('admin_domains') }}"><i class="fa fa-user-md" aria-hidden="true"></i><span>Departement.</span></a></li><li class="{% if app.request.attributes.get('_route') == "admin_courses" %}active{% endif %}"><a href="{{ path('admin_courses') }}"><i class="fa fa-book" aria-hidden="true"></i><span>Matières</span></a></li><li class="{% if app.request.attributes.get('_route') == "admin_subscriptions" %}active{% endif %}"><a href="{{ path('admin_subscriptions') }}"><i class="fa fa-exchange" aria-hidden="true"></i><span>Inscriptions</span></a></li><li class="{% if app.request.attributes.get('_route') == "admin_students" %}active{% endif %}"><a href="{{ path('admin_students', { 'type': "new_students_not_yet_registered_checkbox" }) }}"><i class="fa fa-users"></i><span>Eleves</span></a></li><li class="{% if app.request.attributes.get('_route') == "admin_attributions" %}active{% endif %}"><a href="{{ path('admin_attributions') }}"><i class="fa fa-map-signs" aria-hidden="true"></i><span>Attributions</span></a></li><li class="{% if app.request.attributes.get('_route') == "admin_users" %}active{% endif %}"><a href="{{ path('admin_users') }}"><i class="fa fa-user" aria-hidden="true"></i><span>Personnel</span></a></li>{# ================================================= #}{# ================= MENU FINANCES ================= #}{# ================================================= #}<li class="{% if app.request.attributes.get('_route') starts with 'app_finance_' %}active{% endif %}"><a href="{{ path('app_finance_dashboard') }}"><i class="fa fa-money"></i><span>Finances</span></a><ul class="list-unstyled"><li class="{% if app.request.attributes.get('_route') == 'app_finance_dashboard' %}active{% endif %}"><a href="{{ path('app_finance_dashboard') }}"><i class="fa fa-dashboard"></i>Tableau de bord</a></li><li class="{% if app.request.attributes.get('_route') starts with 'app_finance_fee_definition' %}active{% endif %}"><a href="{{ path('app_finance_fee_definition_index') }}"><i class="fa fa-list-alt"></i>Définitions des frais</a></li><li class="{% if app.request.attributes.get('_route') starts with 'app_finance_payment_' %}active{% endif %}"><a href="{{ path('app_finance_payment_list') }}"><i class="fa fa-credit-card"></i>Paiements</a></li></ul></li>{# ============== FIN MENU FINANCES ============== #}<li class="{% if app.request.attributes.get('_route') == "financial_scope_index" %}active{% endif %}"><a href="{{ path('financial_scope_index') }}"><i class="fa fa-hand-holding-usd" aria-hidden="true"></i><span>Financier</span></a></li><li class="{% if app.request.attributes.get('_route') == "admin_statistics" %}active{% endif %}"><a href="{{ path('admin_statistics') }}"><i class="fa fa-area-chart" aria-hidden="true"></i><span>Statistiques</span></a></li>{% endif %}<li class="{% if app.request.attributes.get('_route') == "admin_evaluations" %}active{% endif %}"><a href="{{ path('admin_evaluations') }}"><i class="fa fa-file-pdf-o" aria-hidden="true"></i><span>Evaluations</span></a></li>{% if is_granted('ROLE_DISCIPLINE') %}<li class="{% if app.request.attributes.get('_route') == "admin_abscences_sheet_index" %}active{% endif %}"><a href="{{ path('admin_abscences_sheet_index') }}"><i class="fa fa-exclamation-triangle" aria-hidden="true"></i><span>Discipline</span></a></li>{% endif %}{% if is_granted('ROLE_FINANCIAL') %}<li class="{% if app.request.attributes.get('_route') == "app_payment_index" %}active{% endif %}"><a href="{{ path('app_payment_index') }}"><i class="fa fa-credit-card" aria-hidden="true"></i><span>Payment</span></a></li><li class="{% if app.request.attributes.get('_route') == "admin_paymentPlans" %}active{% endif %}"><a href="{{ path('admin_paymentPlans') }}"><i class="fa fa-clock-o" aria-hidden="true"></i><span>Scolarite</span></a></li>{% endif %}<li class="{% if app.request.attributes.get('_route') == "app_account" %}active{% endif %}"><a href="{{ path('app_account') }}"><i class="fa fa-user-circle"></i><span>Account</span></a></li></ul></div>{% endblock menu %}</div></nav>{% endblock sidebar %}<div class="page home-page">{% block header %}<header class="header d-flex align-items-center justify-content-between"><a id="toggle-btn" href="#" class="menu-btn"><i class="fa fa-bars"></i></a><a href="{{ path('app_home') }}" class="navbar-brand text-center"><strong class="text-primary">SCHOOL MANAGEMENT SYSTEM</strong></a>{% if app.user %}<a id="logout_btn" href="#" onclick="event.preventDefault(); document.getElementById('js-logout-form').submit();" class="btn btn-warning"><i class="fa fa-sign-out"></i></a><form id="js-logout-form" action="{{ path('app_logout') }}" style="display:none;" method="POST"><input type="hidden" name="_csrf_token" value="{{ csrf_token('logout') }}"></form>{% endif %}</header>{% endblock %}<section class="container-fluid mt-4">{% if is_granted('ROLE_ADMIN') %}<div class="row mb-4"><div class="col-md-3"><div class="dashboard-card text-center"><i class="fa fa-graduation-cap text-primary"></i><h4>{{ students_count() }}</h4><p>Élèves</p></div></div><div class="col-md-3"><div class="dashboard-card text-center"><i class="fa fa-users text-success"></i><h4>{{ teachers_count() }}</h4><p>Enseignants</p></div></div><div class="col-md-3"><div class="dashboard-card text-center"><i class="fa fa-home text-warning"></i><h4>{{ rooms_count() }}</h4><p>Classes</p></div></div><div class="col-md-3"><select class="form-control" id="select_year">{% for year in years()|reverse %}<option value="{{ year.id }}" {% if app.session.get('session_school_year') == year.id %}selected{% endif %}>{{ year.code }}</option>{% endfor %}</select></div></div>{% endif %}{% block content %}{% endblock %}</section></div></div>{% endblock %}{% block footer %}{% endblock %}{% block javascripts %}{{ parent() }}<script src="{{ asset('assets/js/jquery.cookie.js') }}"></script><script src="{{ asset('assets/js/grasp_mobile_progress_circle-1.0.0.min.js') }}"></script><script src="{{ asset('assets/js/jquery.validate.min.js') }}"></script><script src="{{ asset('assets/js/jquery.mCustomScrollbar.concat.min.js') }}"></script><script>// Toggle sidebar menu$('#toggle-btn').on('click', function(e) {e.preventDefault();$('.side-navbar').toggleClass('collapsed');});// Changement d'année scolaire$('#select_year').on('change', function() {$.ajax({type: "POST",url: "{{ path('update_school_year') }}",data: { selectedSchoolYear: $(this).val() },success: function(){ location.reload(); },error: function(e){ console.log(e); alert("Echec."); }});});</script>{% endblock %}