Compare commits
4 Commits
feature/li
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 48ad8c772c | |||
| 42a5db25d6 | |||
| eea085af2e | |||
|
|
fd5b3b86f7 |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,9 +1,8 @@
|
||||
# SGL/sso.py
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.contrib.auth.models import Group
|
||||
from simple_sso.sso_client.client import Client
|
||||
|
||||
from gestion_employe.models import Departement, Employe
|
||||
from simple_sso.sso_client.client import Client
|
||||
|
||||
User = get_user_model()
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
{% include 'parts/menu_application.html' %}
|
||||
<div class="row flex-nowrap">
|
||||
{% include 'parts/menu_principal.html' %}
|
||||
<div class="col p-4">
|
||||
<div class="col p-1 p-sm-4">
|
||||
{% block 'contenu' %} {% endblock %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
{% load static %}
|
||||
<nav class="navbar navbar-expand-lg bg-body-tertiary">
|
||||
{% load tags_personnaliser %}
|
||||
|
||||
<nav class="navbar d-none d-lg-block navbar-expand-lg bg-body-tertiary">
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="#">
|
||||
<img src="{% static 'img/cerfig.jpg' %}" alt="Logo" width="85" height="30" class="d-inline-block align-text-top">
|
||||
</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarNav">
|
||||
<div class="collapse navbar-collapse">
|
||||
<ul class="nav nav-tabs justify-content-end w-100">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" aria-current="page" href="{{ SIRH_LIEN }}">SIRH</a>
|
||||
@@ -21,4 +20,80 @@
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</nav>
|
||||
|
||||
<nav class="navbar d-lg-none navbar-expand-lg bg-body-tertiary">
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="#">
|
||||
<img src="{% static 'img/cerfig.jpg' %}" alt="Logo" width="85" height="30" class="d-inline-block align-text-top">
|
||||
</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNavDropdown" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarNavDropdown">
|
||||
<ul class="navbar-nav">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="{% url 'gestion_employe:mon-profil' %}">
|
||||
<i class="bi bi-person-circle"></i>
|
||||
Mon profil
|
||||
</a>
|
||||
</li>
|
||||
{% if user|has_group:"ressource_humaine" or user|has_group:"direction" %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="{% url 'gestion_employe:index' %}">
|
||||
<i class="bi bi-speedometer2"></i>
|
||||
Tableau de bord
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% if user|has_group:"ressource_humaine" or user|has_group:"direction" %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" aria-current="page" href="{% url 'gestion_projet:index' %}">
|
||||
<i class="bi bi-speedometer2"></i>
|
||||
Gestion des projets
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{% url 'gestion_conges:conge' %}">
|
||||
<i class="bi bi-airplane"></i>
|
||||
Gestion des congés
|
||||
</a>
|
||||
</li>
|
||||
{% if user|is_chef_projet %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{% url 'gestion_projet:activites-projet' %}">
|
||||
<i class="bi bi-list-task"></i>
|
||||
Suivi des Activités
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{% url 'gestion_salle:reservation-salle' %}">
|
||||
<i class="bi bi-calendar-check"></i>
|
||||
Réservation
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{% url 'deconnexion' %}">
|
||||
<i class="bi bi-box-arrow-right"></i> Déconnexion
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="container-fluid d-flex d-sm-none justify-content-center">
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" aria-current="page" href="{{ SIRH_LIEN }}">SIRH</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{{ SGL_LIEN }}">SGL</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#">Laboratoire</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -1,7 +1,7 @@
|
||||
{% load static %}
|
||||
{% load tags_personnaliser %}
|
||||
|
||||
<div class="col-3 bg-danger d-flex flex-column vh-100 pt-5 sticky-top">
|
||||
<div class="col-3 bg-danger d-none d-sm-flex flex-column vh-100 pt-5 sticky-top">
|
||||
<div class="text-center mb-4">
|
||||
{% if user.employe.photo %}
|
||||
<img src="{{ user.employe.photo.url }}"
|
||||
@@ -41,7 +41,6 @@
|
||||
<a href="{% url 'gestion_salle:reservation-salle' %}" class="text-white fw-bold text-decoration-none mb-4" style="font-size: 1.2em;">
|
||||
<i class="bi bi-calendar-check"></i> Réservation
|
||||
</a>
|
||||
{% comment %} {% url 'deconnexion' %} {% endcomment %}
|
||||
<a href="{% url 'deconnexion' %}" class="text-white fw-bold text-decoration-none mb-4" style="font-size: 1.2em;">
|
||||
<i class="bi bi-box-arrow-right"></i> Déconnexion
|
||||
</a>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -8,7 +8,7 @@
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
<div class="row d-flex justify-content-center mb-4">
|
||||
<div class="row d-flex flex-column flex-lg-row justify-content-center mb-4">
|
||||
<div class="col text-white bg-danger d-flex flex-column justify-content-center align-items-center border rounded p-4">
|
||||
<div class="card-header fw-bold">
|
||||
<i class="bi bi-x-circle me-2"></i> Congés refusés
|
||||
@@ -17,7 +17,7 @@
|
||||
<h5 class="fw-bold">{{ nombre_conges_refuse }}</h5>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col text-white bg-warning d-flex flex-column justify-content-center align-items-center border rounded p-4 mx-2">
|
||||
<div class="col my-2 my-lg-0 text-white bg-warning d-flex flex-column justify-content-center align-items-center border rounded p-4 mx-0 mx-lg-2">
|
||||
<div class="card-header fw-bold">
|
||||
<i class="bi bi-hourglass-split me-2"></i> Congés en attente
|
||||
</div>
|
||||
@@ -36,7 +36,7 @@
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<div class="col d-flex justify-content-between align-items-center">
|
||||
<div class="col d-flex flex-column flex-lg-row justify-content-between align-items-center">
|
||||
<h3><i class="bi bi-list-ul"></i> Liste des demandes de congé</h3>
|
||||
<button class='btn btn-primary' id="bouton-demande-conge">Demande de congé</button>
|
||||
</div>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -123,4 +123,4 @@ class Formation(models.Model):
|
||||
date_fin = models.DateField(blank=True, null=True, verbose_name="Date de fin de validité")
|
||||
certificat = models.FileField(upload_to='documents/formations/', blank=True, null=True, verbose_name="Certificat (PDF/Image)")
|
||||
def __str__(self):
|
||||
return self.titre
|
||||
return self.titre
|
||||
|
||||
@@ -10,22 +10,8 @@ const tableau_liste_employe = new Tabulator("#tableau_liste_employe", {
|
||||
{"title": "Téléphone", "field": "telephone"},
|
||||
],
|
||||
pagination: true,
|
||||
paginationSize: 10,
|
||||
responsiveLayout : "hide"
|
||||
})
|
||||
|
||||
const tableauToutesAffectations = new Tabulator("#tableauToutesAffectations", {
|
||||
layout: "fitColumns",
|
||||
pagination: "local",
|
||||
paginationSize: 10,
|
||||
placeholder: "Aucune affectation enregistrée pour cet employé.",
|
||||
columns: [
|
||||
{title: "Projet", field: "projet"},
|
||||
{title: "Rôle", field: "role"},
|
||||
{title: "Pourcentage", field: "pourcentage_temps_affectation", formatter: cell => `${cell.getValue()} %`},
|
||||
{title: "Date de début", field: "date_affectation"},
|
||||
{title: "Date de fin", field: "date_fin_daffectation", formatter: cell => cell.getValue() || "Non définie"},
|
||||
],
|
||||
paginationSize: 10
|
||||
// responsiveLayout : "hide"
|
||||
})
|
||||
|
||||
fetch(url_liste_employe)
|
||||
@@ -163,9 +149,6 @@ tableau_liste_employe.on("rowClick", function (row, rowData) {
|
||||
document.getElementById("affectation-nom-employe").textContent = data.employe || "Employé inconnu";
|
||||
document.getElementById("affecter_employe_id").value = data.id;
|
||||
|
||||
$("liste-affectations-nom-employe").textContent = data.employe || "Employé inconnu";
|
||||
tableauToutesAffectations.setData(data.toutes_affectations);
|
||||
|
||||
document.getElementById("affectations-list").innerHTML = "";
|
||||
for (const affectation of data.affectations) {
|
||||
document.getElementById("affectations-list").innerHTML += `
|
||||
@@ -222,23 +205,6 @@ tableau_liste_employe.on("rowClick", function (row, rowData) {
|
||||
modal.show();
|
||||
})
|
||||
|
||||
$("btnAfficherToutesAffectations").addEventListener("click", function() {
|
||||
const modalDetail = $("modalDetailEmploye");
|
||||
const modalAffectations = $("modalListeAffectations");
|
||||
|
||||
modalDetail.addEventListener("hidden.bs.modal", function ouvrirListe() {
|
||||
modalDetail.removeEventListener("hidden.bs.modal", ouvrirListe);
|
||||
bootstrap.Modal.getOrCreateInstance(modalAffectations).show();
|
||||
}, {once: true});
|
||||
|
||||
modalAffectations.addEventListener("hidden.bs.modal", function revenirAuDetail() {
|
||||
modalAffectations.removeEventListener("hidden.bs.modal", revenirAuDetail);
|
||||
bootstrap.Modal.getOrCreateInstance(modalDetail).show();
|
||||
}, {once: true});
|
||||
|
||||
bootstrap.Modal.getOrCreateInstance(modalDetail).hide();
|
||||
})
|
||||
|
||||
$("enregistrerDetail").addEventListener("click", function() {
|
||||
const id_ = document.getElementById('detail-id').value;
|
||||
const fonction = document.getElementById('detail-fonction').value;
|
||||
|
||||
@@ -15,12 +15,12 @@
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
<div class="row">
|
||||
<div class="row d-flex flex-column flex-lg-row">
|
||||
<div class="col text-white bg-success d-flex flex-column justify-content-center align-items-center border rounded p-4">
|
||||
<span class="fs-5">Nombre d'employés</span>
|
||||
<h3>{{ nombre_employes }}</h3>
|
||||
</div>
|
||||
<div class="col text-white bg-info d-flex flex-column justify-content-center align-items-center border rounded p-4 mx-3">
|
||||
<div class="col text-white bg-info d-flex flex-column justify-content-center align-items-center border rounded p-4 mx-0 mx-lg-3 my-1 my-lg-0">
|
||||
<span class="fs-5">Nombre de prestataires</span>
|
||||
<h3>{{ nombre_cps }}</h3>
|
||||
</div>
|
||||
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mt-4">
|
||||
<div class="col d-flex justify-content-between mb-3">
|
||||
<div class="col d-flex flex-column flex-lg-row justify-content-between mb-3">
|
||||
<h3>
|
||||
<i class="bi bi-people"></i>
|
||||
La liste des employés
|
||||
@@ -61,7 +61,6 @@
|
||||
{% include "gestion_employe/parts/modalAffectationProjet.html" %}
|
||||
{% include "gestion_employe/parts/modalDocument.html" %}
|
||||
{% include "gestion_employe/parts/modalListeContratExpirants.html" %}
|
||||
{% include "gestion_employe/parts/modalListeAffectations.html" %}
|
||||
{% endblock %}
|
||||
{% block 'js' %}
|
||||
<script type="text/javascript" src="{% static 'gestion_employe/js/index.js' %}"></script>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
{% load static %}
|
||||
{% block 'titre_page' %} Gestion des employés - Mon profil {% endblock %}
|
||||
{% block 'contenu' %}
|
||||
<div class="d-flex justify-content-between">
|
||||
<div class="d-flex flex-column flex-lg-row justify-content-between">
|
||||
<h5 class="fw-bold">
|
||||
<i class="bi bi-pencil-square me-2"></i> Les informations de mon profil
|
||||
</h5>
|
||||
@@ -41,7 +41,7 @@
|
||||
<div class="accordion-body">
|
||||
<form class="row" action = "{% url 'gestion_employe:modifier-employe' %}" method = "POST" enctype = "multipart/form-data" id="information-personnelles" data-url="{% url 'gestion_employe:modifier-employe' %}">
|
||||
{% csrf_token %}
|
||||
<div class="col">
|
||||
<div class="col-12 col-sm-6">
|
||||
<div class="form-group mb-2">
|
||||
<label>Photo</label>
|
||||
{% if employe.photo %}
|
||||
@@ -70,7 +70,7 @@
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="col-12 col-sm-6">
|
||||
<div class="form-group mb-2">
|
||||
<label>Date de naissance :</label>
|
||||
<input type="date" class="form-control" id="date_naissance" name = 'date_naissance' value="{{ employe.date_naissance|date:'Y-m-d' }}">
|
||||
@@ -172,9 +172,9 @@
|
||||
<form method="POST" action="{% url 'gestion_employe:enregistrement-document-rh' %}" enctype="multipart/form-data">
|
||||
{% csrf_token %}
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="col-12 col-sm-6">
|
||||
<div class="form-group mb-2">
|
||||
<label>photo</label>
|
||||
<label>Photo</label>
|
||||
{% if employe.photo %}
|
||||
<span>Fichier actuel : <a href="{{ employe.photo.url }}">{{employe.photo}}</a></span>
|
||||
{% endif %}
|
||||
@@ -195,7 +195,7 @@
|
||||
<input type="file" class="form-control" name="diplome">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="col-12 col-sm-6">
|
||||
<div class="form-group mb-2">
|
||||
<label>Casier judiciaire</label>
|
||||
{% if employe.casier_judiciaire %}
|
||||
|
||||
@@ -112,16 +112,11 @@
|
||||
<div class="row d-flex g-3">
|
||||
<div class="d-flex justify-content-between">
|
||||
<h5><i class="bi bi-pin-angle me-2"></i> Affectations</h5>
|
||||
<div class="d-flex gap-2">
|
||||
<button type="button" class="btn btn-outline-primary" id="btnAfficherToutesAffectations">
|
||||
<i class="bi bi-list-ul"></i> Voir toutes les affectations
|
||||
{% if user|has_group:"ressource_humaine" %}
|
||||
<button type="button" class="btn btn-success" data-bs-toggle="modal" data-bs-target="#modalAffectation" onclick="setEmployeId()">
|
||||
<i class="bi bi-file-earmark-text"></i>Affecter
|
||||
</button>
|
||||
{% if user|has_group:"ressource_humaine" %}
|
||||
<button type="button" class="btn btn-success" data-bs-toggle="modal" data-bs-target="#modalAffectation" onclick="setEmployeId()">
|
||||
<i class="bi bi-file-earmark-text"></i> Affecter
|
||||
</button>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="row">
|
||||
<div id="affectations-list"></div>
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
<div class="modal fade" id="modalListeAffectations" tabindex="-1" aria-labelledby="modalListeAffectationsLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-xl modal-dialog-scrollable">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="modalListeAffectationsLabel">
|
||||
Toutes les affectations de <span id="liste-affectations-nom-employe"></span>
|
||||
</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Fermer"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div id="tableauToutesAffectations"></div>
|
||||
</div>
|
||||
<div class="modal-footer bg-light">
|
||||
<button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">
|
||||
<i class="bi bi-x-circle"></i> Fermer
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
Binary file not shown.
@@ -383,8 +383,8 @@ def liste_employe(request):
|
||||
projets = [
|
||||
", ".join([
|
||||
a.projet.nom_projet for a in Affectation.objects.filter(
|
||||
employe=employe,
|
||||
date_fin_daffectation__gte=timezone.now().date()
|
||||
employe=employe
|
||||
#, date_fin_daffectation__gte=timezone.now().date()
|
||||
)
|
||||
])
|
||||
]
|
||||
@@ -408,26 +408,16 @@ def liste_employe(request):
|
||||
"salaire_mensuel": contrat.salaire_mensuel,
|
||||
"statut": contrat.statut,
|
||||
"fichier_contrat": contrat.fichier_contrat.url if contrat.fichier_contrat else "",
|
||||
} for contrat in Contrat.objects.filter(employe=employe, statut='actif')
|
||||
} for contrat in Contrat.objects.filter(employe=employe)#, statut='actif')
|
||||
]
|
||||
|
||||
affectations = [
|
||||
{**model_to_dict(affectation), "projet": affectation.projet.nom_projet}
|
||||
for affectation in Affectation.objects.filter(
|
||||
employe=employe,
|
||||
date_fin_daffectation__gte=timezone.now().date()
|
||||
employe=employe
|
||||
#, date_fin_daffectation__gte=timezone.now().date()
|
||||
)
|
||||
]
|
||||
toutes_affectations = [
|
||||
{
|
||||
"projet": affectation.projet.nom_projet,
|
||||
"role": dict(Affectation.ROLE_CHOICES).get(affectation.role, affectation.role),
|
||||
"pourcentage_temps_affectation": affectation.pourcentage_temps_affectation,
|
||||
"date_affectation": affectation.date_affectation,
|
||||
"date_fin_daffectation": affectation.date_fin_daffectation,
|
||||
}
|
||||
for affectation in Affectation.objects.filter(employe=employe).select_related("projet")
|
||||
]
|
||||
|
||||
data.append(
|
||||
{
|
||||
@@ -437,7 +427,6 @@ def liste_employe(request):
|
||||
"email": employe.user.email,
|
||||
"formations": formations,
|
||||
"affectations": affectations,
|
||||
"toutes_affectations": toutes_affectations,
|
||||
"projet": projets,
|
||||
"contrats": contrats,
|
||||
"departement": employe.departement.id if employe.departement else "",
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -12,12 +12,12 @@
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
<div class="row">
|
||||
<div class="row d-flex flex-column flex-lg-row">
|
||||
<div class="col text-white bg-success d-flex flex-column justify-content-center align-items-center border rounded p-4">
|
||||
<span class="fs-5">Projets en cours</span>
|
||||
<h3>{{projet_en_cours}}</h3>
|
||||
</div>
|
||||
<div class="col text-white bg-success d-flex flex-column justify-content-center align-items-center border rounded p-4 mx-2">
|
||||
<div class="col text-white bg-success d-flex flex-column justify-content-center align-items-center border rounded p-4 my-1 my-lg-0 mx-0 mx-lg-2">
|
||||
<span class="fs-5">Budget Total (GNF)</span>
|
||||
<h3>{{budget_total}}</h3>
|
||||
</div>
|
||||
@@ -27,11 +27,11 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mt-4">
|
||||
<div class="col d-flex justify-content-between align-items-center mb-3">
|
||||
<div class="col d-flex flex-lg-row flex-column justify-content-between align-items-center mb-3">
|
||||
<h5 class="mb-4" >La liste des projets </h5>
|
||||
{% if user|has_group:"ressource_humaine" %}
|
||||
<div>
|
||||
<button class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#modalProjet">
|
||||
<div class="d-flex flex-lg-column flex-row justify-content-between align-items-center">
|
||||
<button class="btn btn-primary me-2 me-lg-0" data-bs-toggle="modal" data-bs-target="#modalProjet">
|
||||
<i class="bi bi-plus-circle"></i> Ajouter un projet
|
||||
</button>
|
||||
<button class="btn btn-info" data-bs-toggle="modal" data-bs-target="#modalBailleur">
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -18,12 +18,12 @@
|
||||
<div class="col py-2 px-4">
|
||||
<h1 class="text-center">Réservation de salle</h1>
|
||||
<hr>
|
||||
<div class="row d-flex justify-content-around">
|
||||
<div class="form-group col-5 me-2">
|
||||
<div class="row d-flex flex-column flex-lg-row justify-content-around">
|
||||
<div class="form-group col col-lg-5 me-2">
|
||||
<label>Selectionner le jour concerné :</label>
|
||||
<input type="date" class="form-control" id="semaineDate" />
|
||||
</div>
|
||||
<div class="form-group col-5 me-2">
|
||||
<div class="form-group col col-lg-5 me-2">
|
||||
<label>Selectionner une salle :</label>
|
||||
<select class = "form-select" id="liste-salle">
|
||||
<option value='Salle de formation'>Salle de formation</option>
|
||||
@@ -33,9 +33,9 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mt-2">
|
||||
<div class="col d-flex justify-content-center">
|
||||
<button class="btn btn-lg btn-primary me-2" data-bs-toggle="modal" data-bs-target="#modalReservation">Nouvelle réservation</button>
|
||||
<button type="button" class="btn btn-warning" data-bs-toggle="modal" data-bs-target="#modalReservationAttente">
|
||||
<div class="col d-flex flex-column flex-lg-row justify-content-center">
|
||||
<button class="btn btn-lg btn-primary me-0 me-lg-2" data-bs-toggle="modal" data-bs-target="#modalReservation">Nouvelle réservation</button>
|
||||
<button type="button" class="btn mt-2 mt-lg-0 btn-warning" data-bs-toggle="modal" data-bs-target="#modalReservationAttente">
|
||||
Validation en attente <span class="badge badge-light">{{ nb_reservation_attente }}</span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user