Mon commit initial

This commit is contained in:
2025-12-19 09:43:33 +00:00
commit f11d1e62b4
336 changed files with 6247 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
{% extends "BASE.html" %}
{% load static %}
{% block page_titre %} SGL - Carnet du carburant {% endblock %}
{% block "contenu" %}
<h3 class="text-center mt-2">Carnet de carburant</h3>
<div class="row my-3">
<div class="col">
<label for="">Selectionner le mois concerné :</label>
<input type="month" name="" id="filtreMois" class="form-control" data-url="{% url 'gestion_vehicule:filtre-carnet-carburant' %}">
<input type="hidden" name="" id="id_vehicule" value="{{ id_vehicule }}">
</div>
</div>
<div id="tableau-carnet"></div>
{% endblock %}
{% block "js" %}
<script src="{% static 'js/carnet_carburant.js' %}"></script>
{% endblock %}

View File

@@ -0,0 +1,22 @@
{% extends "BASE.html" %}
{% load static %}
{% block page_titre %} SGL - Carnet du carburant {% endblock %}
{% block "contenu" %}
<h3 class="text-center mt-2">Carnet de carburant</h3>
<div class="row my-3">
<div class="col">
<label for="">Selectionner le mois concerné :</label>
<input type="month" name="" id="filtreMois" class="form-control" data-url="{% url 'gestion_vehicule:filtre-sortie-vehicule' %}">
<input type="hidden" name="" id="id_vehicule" value="{{ id_vehicule }}">
</div>
</div>
<div id="tableau-sortie-vehicule"></div>
{% endblock %}
{% block "js" %}
<script src="{% static 'js/carnet_sortie_vehicule.js' %}"></script>
{% endblock %}

View File

@@ -0,0 +1,131 @@
{% extends "BASE.html" %}
{% load static %}
{% load tags_personnaliser %}
{% load l10n %}
{% block page_titre %} SGL - Détails du véhicule {% endblock %}
{% block "contenu" %}
<a href="{% url 'gestion_vehicule:index' %}" class="btn btn-primary my-2">Retour</a>
<h3>Détails de la course</h3>
<div class="row mt-2 mt-lg-5">
<div class="col-12 col-lg-6">
<h5 class="text-center">Informations sur la course</h5>
<form action="">
<div class="form-group">
<label for="">Nom du passager :</label>
<input type="text" class="form-control" value="{{ detail_demande.nom_passager }}" readonly>
</div>
<div class="form-group">
<label for="">Lieu de départ :</label>
<input type="text" class="form-control" value="{{ detail_demande.lieu_depart }}" readonly>
</div>
<div class="form-group">
<label for="">Date et heure de départ prévu :</label>
<input type="datetime-local" class="form-control" value="{{ detail_demande.date_heure|date:'Y-m-d\\TH:i' }}" readonly>
</div>
<div class="form-group">
<label for="">Lieu d'arrivée :</label>
<input type="text" class="form-control" value="{{ detail_demande.lieu_arrive }}" readonly>
</div>
<div class="form-group">
<label for="">Véhicule attribué :</label>
<input type="text" class="form-control" value="{{ detail_demande.immatriculation }}" readonly>
</div>
</form>
</div>
<div class="col-12 col-lg-6 mt-3 mt-lg-0">
<h5 class="text-center">Renseigner par le chauffeur</h5>
<div class="accordion mt-2" id="accordionExample">
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
Au départ
</button>
</h2>
<div id="collapseThree" class="accordion-collapse collapse" data-bs-parent="#accordionExample">
<div class="accordion-body">
<form method="post" action="{% url 'gestion_vehicule:enregistrer-details-course-depart' detail_demande.id %}">
{% csrf_token %}
<input type="hidden" name="id-vehicule" value="{{ detail_demande.id_vehicule }}">
<div class="form-group">
<label for="">Heure effectif de départ :</label>
<input type="datetime-local" class="form-control" value="{{ detail_demande.details_course.heure_effectif_depart|date:'Y-m-d\\TH:i' }}" name="heure-depart">
</div>
<div class="form-group mt-2">
<label for="">Kilométrage de départ :</label>
<input type="number" class="form-control" name="kilometrage_depart" value="{{ detail_demande.details_course.km_depart }}">
</div>
{% if user|has_group:"Chauffeur" %}
<button type="submit" class="btn btn-primary mt-2 enregistrerButton">Enregistrer</button>
{% endif %}
</form>
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
A l'arrivée
</button>
</h2>
<div id="collapseTwo" class="accordion-collapse collapse" data-bs-parent="#accordionExample">
<div class="accordion-body">
<form method="post" action="{% url 'gestion_vehicule:enregistrer-details-course-arrivee' detail_demande.id %}">
{% csrf_token %}
<input type="hidden" name="id-vehicule" value="{{ detail_demande.vehicule.id }}">
<div class="form-group">
<label for="">Heure effectif d'arrivée :</label>
<input type="datetime-local" class="form-control" value="{{ detail_demande.details_course.heure_arrive|date:'Y-m-d\\TH:i' }}" name="heure-effectif-arrivee">
</div>
<div class="form-group mt-2">
<label for="">Kilométrage d'arrivée :</label>
<input type="number" class="form-control" name="kilometrage-arrivee" value="{{ detail_demande.details_course.km_arrive }}">
</div>
<div class="form-check mt-2">
<label for="" class="form-check-label">Course terminée</label>
<input type="checkbox" class="form-check-input" name="course-terminer" id="course-terminer" data-state="{{ detail_demande.details_course.course_termine }}">
</div>
{% if user|has_group:"Chauffeur" %}
<button type="submit" class="btn btn-primary mt-2 enregistrerButton">Enregistrer</button>
{% endif %}
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row mt-2">
<div class="col">
<h3>Carburant</h3>
<div class="accordion mt-4" id="accordionCarburant">
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseCarburant" aria-expanded="false" aria-controls="collapseThree">
Enregistrer une prise de carburant
</button>
</h2>
<div id="collapseCarburant" class="accordion-collapse collapse" data-bs-parent="#accordionCarburant">
<div class="accordion-body">
<form action="{% url 'gestion_vehicule:enregistrer-prise-carburant' detail_demande.id %}" method="post">
{% csrf_token %}
{{ detail_demande.prise_carburant_formulaire.as_p }}
<button type="submit" class="btn btn-primary">Enregistrer</button>
</form>
</div>
</div>
</div>
</div>
</div>
<!-- --------------------------------- -->
</div>
{% endblock %}
{% block "js" %}
<script src="{% static 'js/detail_course.js' %}"></script>
{% endblock %}

View File

@@ -0,0 +1,79 @@
{% extends "BASE.html" %}
{% load static %}
{% block page_titre %} SGL - Détails du véhicule {% endblock %}
{% block "contenu" %}
<a class="btn btn-primary mt-2" href="{% url 'gestion_vehicule:index' %}" >Retour</a>
<div class="row flex-column flex-lg-row p-2 border rounded m-2">
<div class="col d-flex flex-column justify-content-center">
<img src="{{ vehicule.image.url }}" class="w-100" alt="Image non disponible">
</div>
<div class="col">
<h3 class="text-center">Carnet de bord du vehicule</h3>
<form action="{% url 'gestion_vehicule:enregistrer-carnetBord' vehicule.id %}" id="carnetBordForm" method="post">
<div class="form-group">
<label for="">Immatriculation :</label>
<input type="text" class="form-control" value="{{ vehicule.immatriculation }}">
</div>
<div class="form-group mt-2">
<label for="">Mois concerné :</label>
<input type="month" class="form-control">
</div>
<div class="form-group mt-2">
<label for="">Total kilomètre parcourue :</label>
<input type="number" class="form-control">
</div>
</form>
</div>
</div>
<div class="row">
<div class="col">
<a href="{% url 'gestion_vehicule:carnet-carburant' vehicule.id %}" class="btn btn-lg btn-primary d-block m-auto">Carnet de carburant</a>
</div>
<div class="col">
<a href="{% url 'gestion_vehicule:carnet-sortie-vehicule' vehicule.id %}" class="btn btn-lg btn-primary d-block m-auto">Sortie du vehicule</a>
</div>
</div>
<!-- <div class="accordion mt-2" id="accordionExample">
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
Prise de carburant
</button>
</h2>
<div id="collapseThree" class="accordion-collapse collapse" data-bs-parent="#accordionExample">
<div class="accordion-body">
<form action="{% url 'gestion_vehicule:enregistrer-prise-carburant' vehicule.id %}" method="post">
{% csrf_token %}
{{ prise_carburant_formulaire.as_p }}
<button type="submit" class="btn btn-primary">Enregistrer</button>
</form>
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
Carnet de bord du vehicule
</button>
</h2>
<div id="collapseTwo" class="accordion-collapse collapse" data-bs-parent="#accordionExample">
<div class="accordion-body">
<form action="{% url 'gestion_vehicule:enregistrer-carnetBord' vehicule.id %}" id="carnetBordForm" method="post">
{% csrf_token %}
{{ carnet_bord_formulaire.as_p }}
<button type="submit" class="btn btn-primary">Enregistrer</button>
</form>
</div>
</div>
</div>
</div> -->
{% endblock %}
{% block "js" %}
<script src="{% static 'js/detail_gestion_vehicule.js' %}"></script>
{% endblock %}

View File

@@ -0,0 +1,202 @@
{% extends "BASE.html" %}
{% load static %}
{% load tags_personnaliser %}
{% block page_titre %} SGL - Gestion des véhicules {% endblock %}
{% block "contenu" %}
<div class="row p-2">
<div class="col d-flex justify-content-between">
<h3>PARC AUTOMOBILE</h3>
{% if user|has_group:"Logisticien" %}
<button class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#enregistrerVehiculeModal">Ajouter un véhicule</button>
{% endif %}
</div>
</div>
<div class="row p-2">
{% for vehicule in parc_vehicule %}
<div class="card p-2" style="width: 14rem;">
{% if vehicule.image %}
<img class="card-img-top m-auto d-block" src="{{ vehicule.image.url }}" style="width: 150px;">
{% else %}
<img class="card-img-top m-auto d-block" src="{% static 'images/exemple-produit.jpg' %}" style="width: 120px;" alt="Image par défaut">
{% endif %}
<div class="card-body">
<h5 class="card-title text-center">{{ vehicule.immatriculation }}</h5>
{% if user|has_group:"Logisticien" %}
<a href="{% url 'gestion_vehicule:detail-voiture' vehicule.id %}" class="d-block m-auto btn btn-primary d-block voir-demande">Voir</a>
{% endif %}
</div>
</div>
{% empty %}
<p class="text-center">Aucun véhicule enregistré.</p>
{% endfor %}
</div>
<div class="row d-flex mt-3">
<div class="col d-flex justify-content-between">
<h4>LISTE DES DEMANDES</h4>
{% if user|has_group:"Employe" %}
<button class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#enregistrerDemandeModal">Faire une demande</button>
{% endif %}
</div>
</div>
{% if user|has_group:"Employe" %}
<div class="row d-flex mt-2 mb-2">
<!-- <div class="col">
<label>Filtrer par date et heure de depart</label>
<input type="datetime-local" class="form-control">
</div> -->
<div class="col">
<label>Statut de la demande :</label>
<select name="filtreStatutDemande" id="filtreStatutDemande" class="form-select">
<option value="tout">Toutes les demandes</option>
<option value="mes_demandes">Mes demandes</option>
<option value="valider">Demande validée</option>
<option value="refuser">Demande Refusée</option>
<option value="attente">Demande en attente</option>
<option value="terminer">Course terminée</option>
</select>
</div>
</div>
{% endif %}
<div class="row">
<div class="col">
<div id="tableau-demande-vehicule" data-userid = "{{ user.id }}" data-url = "{% url 'gestion_vehicule:liste-demande' %}"></div>
</div>
</div>
<!-- ---------------------------------------- MODAL ENREGISTREMENT VEHICULE ----------------------------------- -->
<div class="modal fade" id="enregistrerVehiculeModal" tabindex="-1" aria-labelledby="enregistrerVehiculeModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5" id="enregistrerVehiculeModalLabel">Enregistrer un véhicule</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<form action="{% url 'gestion_vehicule:enregistrer-voiture' %}" method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ formulaire_enregistrer_vehicule.as_p }}
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Fermer</button>
<button type="submit" class="btn btn-primary">Enregistrer</button>
</div>
</form>
</div>
</div>
</div>
</div>
<!-- ------------------------------------ MODAL ENREGISTREMENT DEMANDE ------------------------------------ -->
<div class="modal fade" id="enregistrerDemandeModal" tabindex="-1" aria-labelledby="enregistrerDemandeModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5" id="enregistrerDemandeModalLabel">Enregistrer une demande</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div id="messageZone"></div>
<form data-url ="{% url 'gestion_vehicule:enregistrer-demande' %}" id="enregistrer-demande-form" enctype="multipart/form-data">
{% csrf_token %}
{{ formulaire_demande_vehicule.as_p }}
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Fermer</button>
<button type="submit" class="btn btn-primary">Enregistrer</button>
</div>
</form>
</div>
</div>
</div>
</div>
<!-- ---------------------------------------- Modal confirmer sortie de la voiture ----------------------- -->
<div class="modal fade" id="confirmerDemandeModal" tabindex="-1" aria-labelledby="confirmerDemandeModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5" id="confirmerDemandeModalLabel">Détail de la demande</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<form action="{% url 'gestion_vehicule:statut_demande' %}" method="post">
{% csrf_token %}
<h5 class="text-center">Décision du logisticien</h5>
<div class="d-flex justify-content-around">
<div class="form-check">
<input class="form-check-input" type="radio" name="radioValider" id="radioValider" value="Valider">
<label class="form-check-label" for="radioValider">
Valider la demande
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="radioValider" id="radioRefuser" value="Refuser">
<label class="form-check-label" for="radioRefuser">
Refuser la demande
</label>
</div>
</div>
<div id="affichage-formulaire">
<h5 class="text-center mt-3">Détail de la demande</h5>
<input type="hidden" name="id-demande" id="id-demande">
<div class="form-group mt-2">
<label for="">Nom du passager :</label>
<input type="text" class="form-control" id="nom-passager" readonly>
</div>
<div class="form-group mt-2">
<label for="">Lieu de départ</label>
<input type="text" class="form-control" id="lieu-depart" readonly>
</div>
<div class="form-group mt-2">
<label for="">Lieu d'arrivé :</label>
<input type="text" class="form-control" id="lieu-arrivee" readonly>
</div>
<div class="form-group mt-2">
<label for="">Date et heure de départ :</label>
<input type="text" class="form-control" id="date-heure-depart" readonly>
</div>
<h5 class="text-center mt-3">Attribution</h5>
<div class="form-group">
<label for="">Véhicule : </label>
<select name="vehicule" id="vehicule" class="form-select"></select>
</div>
<div class="form-group mt-2">
<label for="">Chauffeur :</label>
<select name="chauffeur" id="chauffeur" class="form-select"></select>
</div>
<!-- <h5 class="text-center mt-3">Fin de course</h5>
<div class="form-check">
<input class="form-check-input" name="course_termine" type="checkbox" role="switch" id="courseTermine">
<label class="form-check-label" for="courseTermine">Course terminée</label>
</div>
<div class="form-group mt-2">
<label for="">Date et heure de retour :</label>
<input type="datetime-local" name="date_heure_retour" id="date_heure_retour" class="form-control">
</div> -->
</div>
<div class="form-group mt-2" id="refus">
<label for="">Motifs du refus :</label>
<textarea class="form-control" name="motif" id="motif-refus"></textarea>
</div>
<div class="modal-footer" id="validation-sortie-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Fermer</button>
<button type="submit" class="btn btn-primary" id="demanderValiderEnregistrer">Enregistrer</button>
</div>
</form>
</div>
</div>
</div>
</div>
{% endblock %}
{% block "js" %}
<script src="{% static 'js/gestion_vehicule.js' %}"></script>
{% endblock %}