Ajout de la prise en charge des photos de profil
This commit is contained in:
67
gestion_employe/templates/gestion_employe/index.html
Normal file
67
gestion_employe/templates/gestion_employe/index.html
Normal file
@@ -0,0 +1,67 @@
|
||||
{% extends "BASE.html" %}
|
||||
{% load static %}
|
||||
{% block 'titre_page' %} Gestion des projets {% endblock %}
|
||||
{% block 'css' %}
|
||||
{% endblock %}
|
||||
{% block 'contenu' %}
|
||||
<div class="col px-2">
|
||||
<h3>Gestion des employés</h3>
|
||||
{% if messages %}
|
||||
{% for message in messages %}
|
||||
<div class="alert alert-{% if message.tags == 'error' %}danger{% else %}success{% endif %} alert-dismissible fade show" role="alert">
|
||||
{{ message }}
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
<div class="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">
|
||||
<span class="fs-5">Nombre de prestataires</span>
|
||||
<h3>{{ nombre_cps }}</h3>
|
||||
</div>
|
||||
<div class="col text-white bg-warning d-flex flex-column justify-content-center align-items-center border rounded p-4">
|
||||
<span class="fs-5">Nombre de stagiaires</span>
|
||||
<h3>{{ nombre_stage }}</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mt-4">
|
||||
<div class="col d-flex justify-content-between mb-3">
|
||||
<h3>
|
||||
<i class="bi bi-people"></i>
|
||||
La liste des employés
|
||||
</h3>
|
||||
<button type="button" class="btn btn-danger" data-bs-toggle="modal" data-bs-target="#modalListeDesContratExpirants" id="boutonContratExpirants" data-urlexpirants="{% url 'gestion_employe:liste-contrat-expirants' %}">
|
||||
Contrats proches de la fin <span class="badge badge-light">{{ nombre_expirants }}</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="row mb-2 d-flex justify-content-end">
|
||||
<div class="col">
|
||||
<div class="row">
|
||||
<div class="col d-flex justify-content-center">
|
||||
<input class="form-control d-block" type="search" placeholder="Recherche par nom et prénom..." id="input-recherche">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-responsive">
|
||||
<div id="tableau_liste_employe" data-url={% url 'gestion_employe:liste-employes' %}></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% block 'modal' %}
|
||||
{% include "gestion_employe/parts/modalDetailEmploye.html" %}
|
||||
{% include "gestion_employe/parts/modalCreationContrat.html" %}
|
||||
{% include "gestion_employe/parts/modalAffectationProjet.html" %}
|
||||
{% include "gestion_employe/parts/modalDocument.html" %}
|
||||
{% include "gestion_employe/parts/modalListeContratExpirants.html" %}
|
||||
{% endblock %}
|
||||
{% block 'js' %}
|
||||
<script type="text/javascript" src="{% static 'gestion_employe/js/index.js' %}"></script>
|
||||
{% endblock %}
|
||||
105
gestion_employe/templates/gestion_employe/modifier-profil.html
Normal file
105
gestion_employe/templates/gestion_employe/modifier-profil.html
Normal file
@@ -0,0 +1,105 @@
|
||||
{% extends "BASE.html" %}
|
||||
{% load static %}
|
||||
{% block 'titre_page' %} Gestion des employés - Mon profil {% endblock %}
|
||||
{% block 'contenu' %}
|
||||
<div class="card shadow-sm border-0 w-100" style="max-width: 850px;">
|
||||
<div class="card-header bg-orange-dark">
|
||||
<h5 class="mb-0 fw-bold">
|
||||
<i class="bi bi-pencil-square me-2"></i> Modifier mon profil
|
||||
</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<form method="POST" enctype="multipart/form-data">
|
||||
{% csrf_token %}
|
||||
<div class="accordion" id="accordionProfil">
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header" id="headingInfo">
|
||||
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseInfo" aria-expanded="false" aria-controls="collapseInfo">
|
||||
<i class="bi bi-person-lines-fill me-2"></i> Informations personnelles
|
||||
</button>
|
||||
</h2>
|
||||
<div id="collapseInfo" class="accordion-collapse collapse" aria-labelledby="headingInfo" data-bs-parent="#accordionProfil">
|
||||
<div class="accordion-body">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="form-group mb-2">
|
||||
<label>Photo de profil :</label>
|
||||
<input type="file" class="form-control">
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>Prénom :</label>
|
||||
<input type="text" class="form-control">
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>Nom :</label>
|
||||
<input type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="form-group mb-2">
|
||||
<label>Email :</label>
|
||||
<input type="email" class="form-control">
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>Téléphone :</label>
|
||||
<input type="text" class="form-control">
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>Adresse :</label>
|
||||
<input type="text" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header" id="headingDocs">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseDocs" aria-expanded="false" aria-controls="collapseDocs">
|
||||
<i class="bi bi-file-earmark-text me-2"></i> Documents
|
||||
</button>
|
||||
</h2>
|
||||
<div id="collapseDocs" class="accordion-collapse collapse" aria-labelledby="headingDocs" data-bs-parent="#accordionProfil">
|
||||
<div class="accordion-body">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="form-group mb-2">
|
||||
<label>CV :</label>
|
||||
<input type="file" class="form-control">
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>Diplome :</label>
|
||||
<input type="file" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="form-group mb-2">
|
||||
<label>RIB :</label>
|
||||
<input type="file" class="form-control">
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>Casier judiciaire :</label>
|
||||
<input type="file" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex justify-content-end mt-4 gap-2 flex-wrap">
|
||||
<a href="{% url 'gestion_employe:mon-profil' %}" class="btn btn-outline-secondary">
|
||||
<i class="bi bi-x-circle me-1"></i> Annuler
|
||||
</a>
|
||||
<button type="submit" class="btn btn-primary">
|
||||
<i class="bi bi-check-circle me-1"></i> Enregistrer
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% block 'modal' %}
|
||||
{% endblock %}
|
||||
{% block 'js' %}
|
||||
{% endblock %}
|
||||
241
gestion_employe/templates/gestion_employe/monprofil.html
Normal file
241
gestion_employe/templates/gestion_employe/monprofil.html
Normal file
@@ -0,0 +1,241 @@
|
||||
{% extends "BASE.html" %}
|
||||
{% load static %}
|
||||
{% block 'titre_page' %} Gestion des employés - Mon profil {% endblock %}
|
||||
{% block 'contenu' %}
|
||||
<div class="d-flex justify-content-between">
|
||||
<h5 class="fw-bold">
|
||||
<i class="bi bi-pencil-square me-2"></i> Les informations de mon profil
|
||||
</h5>
|
||||
<button type="button" class="btn btn-warning" data-bs-toggle="modal" data-bs-target="#modalModifierProfil">
|
||||
<i class="bi bi-pencil-square me-1"></i> Modifier le mot de passe
|
||||
</button>
|
||||
</div>
|
||||
{% if messages %}
|
||||
{% for message in messages %}
|
||||
<div class="alert alert-{% if message.tags == 'error' %}danger{% else %}success{% endif %} alert-dismissible fade show" role="alert">
|
||||
{{ message }}
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
{% if not expiration_contrat %}
|
||||
<div class="alert alert-danger fade show alert-dismissible mt-2">
|
||||
<strong>Important :</strong> Les informations sur votre contrat n'ont pas été renseignées, veuillez contacter les ressources humaines.
|
||||
</div>
|
||||
{% elif contrat_nb_jours_restant %}
|
||||
<div class="alert alert-danger fade show alert-dismissible mt-2">
|
||||
<strong>Important :</strong> Votre contrat de travail expire dans {{ contrat_nb_jours_restant }} jours, veuillez contacter les ressources humaines.
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="accordion mt-2" id="accordionInformationEmploye">
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header" id="headingContrats">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseProfil" aria-expanded="false" aria-controls="collapseProfil">
|
||||
<i class="bi bi-file-earmark-text me-2"></i> Mon identité
|
||||
</button>
|
||||
</h2>
|
||||
<div id="collapseProfil" class="accordion-collapse" aria-labelledby="headingContrats" data-bs-parent="#accordionInformationEmploye">
|
||||
<div class="accordion-body">
|
||||
<div class="row" id="information-personnelles" data-url="{% url 'gestion_employe:modifier-employe' %}">
|
||||
{% csrf_token %}
|
||||
<div class="col">
|
||||
<div class="form-group mb-2">
|
||||
<label>photo</label>
|
||||
{% if employe.photo %}
|
||||
<span>Fichier actuel : <a href="{{ employe.photo.url }}">{{employe.photo}}</a></span>
|
||||
{% endif %}
|
||||
<input type="file" id="photo" name="photo" class="form-control">
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>Matricule :</label>
|
||||
<input type="text" class="form-control" id="matricule" value="{{ employe.matricule|default:'' }}" readonly>
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>Nom :</label>
|
||||
<input type="text" class="form-control" id="nom" value="{{ employe.user.last_name }}">
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>Prénom :</label>
|
||||
<input type="text" class="form-control" id="prenom" value="{{ employe.user.first_name }}">
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>Sexe :</label>
|
||||
<select id='sexe' class="form-select">
|
||||
<option value='h' {% if employe.sexe == 'h' %}selected{% endif %}>Homme</option>
|
||||
<option value='f' {% if employe.sexe == 'f' %}selected{% endif %}>Femme</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="form-group mb-2">
|
||||
<label>Date de naissance :</label>
|
||||
<input type="date" class="form-control" id="date_naissance" value="{{ employe.date_naissance|date:'Y-m-d' }}">
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>Département :</label>
|
||||
<input type="text" class="form-control" id="departement" value="{{ employe.departement.nom|default:'' }}" readonly>
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>Email :</label>
|
||||
<input type="email" class="form-control" id="email" value="{{ employe.user.email|default:'' }}">
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>Téléphone :</label>
|
||||
<input type="text" class="form-control" id="telephone" value="{{ employe.telephone|default:'' }}">
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>Adresse :</label>
|
||||
<input type="text" class="form-control" id="adresse" value="{{ employe.adresse|default:'' }}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-success d-block m-auto" id="enregistrerProfil">Enregistrer</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header" id="headingContrats">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseContrats" aria-expanded="false" aria-controls="collapseContrats">
|
||||
<i class="bi bi-file-earmark-text me-2"></i> Contrats
|
||||
</button>
|
||||
</h2>
|
||||
<div id="collapseContrats" class="accordion-collapse collapse" aria-labelledby="headingContrats" data-bs-parent="#accordionInformationEmploye">
|
||||
<div class="accordion-body">
|
||||
{% for contrat in contrats %}
|
||||
<div class="mb-3 p-3 border rounded">
|
||||
<div class="form-group mb-2">
|
||||
<label>Numéro :</label>
|
||||
<input type="text" class="form-control" value="{{ contrat.numero_contrat }}" id="numero_contrat" readonly>
|
||||
</div><div class="form-group mb-2">
|
||||
<label>Type de Contrat :</label>
|
||||
<input type="text" class="form-control" value="{{ contrat.type_contrat }}" id="type_contrat" readonly>
|
||||
</div><div class="form-group mb-2">
|
||||
<label>Date début :</label>
|
||||
<input type="date" class="form-control" value="{{ contrat.date_debut|date:'Y-m-d' }}" id="date_debut" readonly>
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>Date fin :</label>
|
||||
<input type="date" class="form-control" value="{{ contrat.date_fin|date:'Y-m-d' }}" id="date_fin" readonly>
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>Salaire :</label>
|
||||
<input type="number" class="form-control" value="{{ contrat.salaire_mensuel }}" id="salaire" readonly>
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>Statut :</label>
|
||||
<input type="text" class="form-control" value="{{ contrat.statut }}" id="satut" readonly>
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>fichier :</label>
|
||||
<a href="{{ contrat.fichier_contrat }}" target="_blank" class="btn btn-outline-primary">Voir le contrat</a>
|
||||
</div>
|
||||
</div>
|
||||
{% empty %}
|
||||
<p class="text-danger">Aucun contrat trouvé.</p>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header" id="headingProjets">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseProjets" aria-expanded="false" aria-controls="collapseProjets">
|
||||
<i class="bi bi-briefcase me-2"></i> Projets
|
||||
</button>
|
||||
</h2>
|
||||
<div id="collapseProjets" class="accordion-collapse collapse" aria-labelledby="headingProjets" data-bs-parent="#accordionInformationEmploye">
|
||||
<div class="accordion-body">
|
||||
<ul class="list-group">
|
||||
{% for projet in projets %}
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
{{ projet.nom_projet }} ({{ projet.pourcentage_temps_affectation }}%) du <strong>{{ projet.date_debut|date:"d/m/Y" }}</strong> au
|
||||
<strong>{{ projet.date_fin|date:"d/m/Y" }}</strong> en tant que {{ projet.role }}.
|
||||
</li>
|
||||
{% empty %}
|
||||
<li class="list-group-item text-muted text-center">Vous n'êtes affecté à aucun projet.</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header" id="headingDocs">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseDocs" aria-expanded="false" aria-controls="collapseDocs">
|
||||
<i class="bi bi-file-earmark-text me-2"></i> Documents
|
||||
</button>
|
||||
</h2>
|
||||
<div id="collapseDocs" class="accordion-collapse collapse" aria-labelledby="headingDocs" data-bs-parent="#accordionInformationEmploye">
|
||||
<div class="accordion-body">
|
||||
<form method="POST" action="{% url 'gestion_employe:enregistrement-document-rh' %}" enctype="multipart/form-data">
|
||||
{% csrf_token %}
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="form-group mb-2">
|
||||
<label>photo</label>
|
||||
{% if employe.photo %}
|
||||
<span>Fichier actuel : <a href="{{ employe.photo.url }}">{{employe.photo}}</a></span>
|
||||
{% endif %}
|
||||
<input type="file" class="form-control" name="photo">
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>CV</label>
|
||||
{% if employe.CV %}
|
||||
<span>Fichier actuel : <a href="{{ employe.CV.url }}">{{employe.CV}}</a></span>
|
||||
{% endif %}
|
||||
<input type="file" class="form-control" name="cv">
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>Diplôme</label>
|
||||
{% if employe.diplome %}
|
||||
<span>Fichier actuel : <a href="{{ employe.diplome.url }}">{{employe.diplome}}</a></span>
|
||||
{% endif %}
|
||||
<input type="file" class="form-control" name="diplome">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="form-group mb-2">
|
||||
<label>Casier judiciaire</label>
|
||||
{% if employe.casier_judiciaire %}
|
||||
<span>Fichier actuel : <a href="{{ employe.casier_judiciaire.url }}">{{employe.casier_judiciaire}}</a></span>
|
||||
{% endif %}
|
||||
<input type="file" class="form-control" name="casier_judiciaire">
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>RIB</label>
|
||||
{% if employe.rib %}
|
||||
<span>Fichier actuel : <a href="{{ employe.rib.url }}">{{employe.rib}}</a></span>
|
||||
{% endif %}
|
||||
<input type="file" class="form-control" name="rib">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-success d-block m-auto">Enregistrer</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header" id="headingCertificat">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseCertificat" aria-expanded="false" aria-controls="collapseCertificat">
|
||||
<i class="bi bi-file-earmark-text me-2"></i> Certificats
|
||||
</button>
|
||||
</h2>
|
||||
<div id="collapseCertificat" class="accordion-collapse collapse" aria-labelledby="headingCertificat" data-bs-parent="#accordionInformationEmploye">
|
||||
<div class="accordion-body">
|
||||
<div id="tableau-certificat" data-url="{% url 'gestion_employe:liste-formation' %}"></div>
|
||||
<button class="btn btn-success d-block m-auto" data-bs-toggle="modal" data-bs-target="#modalAjouterFormation">Ajouter un certificat</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% block 'modal' %}
|
||||
{% include "gestion_employe/parts/modificationMotPasse.html" %}
|
||||
{% include "gestion_employe/parts/modalAjoutFormation.html" %}
|
||||
{% endblock %}
|
||||
{% block 'js' %}
|
||||
|
||||
<script src="{% static 'gestion_employe/js/mon_profil.js' %}"></script>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,28 @@
|
||||
<div class="modal fade" id="modalAffectation" tabindex="-1" aria-labelledby="modalAffectationLabel" aria-hidden="true">
|
||||
<div class="modal-dialog ">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header bg-orange-dark">
|
||||
<h5 class="modal-title" id="modalAffectationLabel" >
|
||||
Affectation de projet (<span id="affectation-nom-employe"></span>)
|
||||
</h5>
|
||||
<button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal">
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form action="{% url 'gestion_employe:affecter_employe_projet' %}" method="POST">
|
||||
{% csrf_token %}
|
||||
<input type="hidden" name="affecter_employe_id" id="affecter_employe_id">
|
||||
{{ affectation_form.as_p }}
|
||||
<div class="modal-footer bg-light">
|
||||
<button type="submit" class="btn btn-success">
|
||||
<i class="bi bi-check-circle"></i> affecter
|
||||
</button>
|
||||
<button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">
|
||||
<i class="bi bi-x-circle me-1"></i> Annuler
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,21 @@
|
||||
<div class="modal fade" id="modalAjouterFormation" tabindex="-1">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header bg-orange-dark">
|
||||
<h5 class="modal-title">Ajouter un certificat</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form method="post" action="{% url 'gestion_employe:ajouter_formation' %}" enctype="multipart/form-data">
|
||||
{% csrf_token %}
|
||||
{{ formation_form.as_p }}
|
||||
<div class="modal-footer">
|
||||
<button type="submit" class="btn btn-success">Enregistrer</button>
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Annuler</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,57 @@
|
||||
<div class="modal fade" id="modalContrat" tabindex="-1" aria-labelledby="modalContratLabel" aria-hidden="true">
|
||||
<div class="modal-dialog ">
|
||||
<div class="modal-content bg-white">
|
||||
<div class="modal-header ">
|
||||
<h5 class="modal-title" id="modalContratLabel">
|
||||
<i class="bi bi-file-earmark-text me-2"></i>
|
||||
Contrat de <span id="contrat-employe"></span>
|
||||
</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form action="{% url 'gestion_employe:creation-contrat' %}" method="POST" id="contrat_form" enctype="multipart/form-data">
|
||||
{% csrf_token %}
|
||||
<input type="hidden" name="employe_id" value="" id="employeIdInput">
|
||||
{{ contrat_form.as_p }}
|
||||
<div class="modal-footer bg-light">
|
||||
<button type="submit" class="btn btn-success">
|
||||
<i class="bi bi-check-circle me-1"></i> Enregistrer
|
||||
</button>
|
||||
<button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">
|
||||
<i class="bi bi-x-circle me-1"></i> Annuler
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
{% comment %} <fieldset class="border p-3 mb-4">
|
||||
<legend class="fw-bold mb-3 text-muted">Informations du contrat</legend>
|
||||
|
||||
<div class="form-group mb-2">
|
||||
<label>Numero de contrat :</label>
|
||||
<input type="text" class="form-control">
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>Type contrat :</label>
|
||||
<input type="text" class="form-control">
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>date de début :</label>
|
||||
<input type="date" class="form-control">
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>date de fin :</label>
|
||||
<input type="date" class="form-control">
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>Salaire mensuel :</label>
|
||||
<input type="text" class="form-control">
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>Fichier du contrat :</label>
|
||||
<input type="file" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
</fieldset> {% endcomment %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,136 @@
|
||||
{% load tags_personnaliser %}
|
||||
<div class="modal fade" id="modalDetailEmploye" tabindex="-1" aria-labelledby="modalDetailEmployeLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-xl modal-dialog-scrollable">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header ">
|
||||
<h5 class="modal-title bi-pencil-square" id="modalDetailEmployeLabel">
|
||||
Détails de l'employé <span id="detail-employe"></span>
|
||||
</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
|
||||
</div>
|
||||
<div class="modal-body" id="modalDetailEmployeBody" data-url="{% url 'gestion_employe:enregistrer-detail-employe' %}">
|
||||
<div class="row g-3">
|
||||
<input type="hidden" id="detail-id">
|
||||
<div class="col-md-6">
|
||||
{% csrf_token %}
|
||||
<div class="form-group mb-2">
|
||||
<label>Matricule :</label>
|
||||
<input type="text" class="form-control" id="detail-matricule">
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>Date d'embauche :</label>
|
||||
<input type="date" class="form-control" id="detail-dateEmbauche">
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>Département :</label>
|
||||
<input type="text" class="form-control" id="detail-departement">
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>Sexe :</label>
|
||||
<select id="detail-sexe" class="form-select">
|
||||
<option value="">-- Sélectionner --</option>
|
||||
<option value="h">Masculin</option>
|
||||
<option value="f">Féminin</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>Date de naissance :</label>
|
||||
<input type="date" class="form-control" id="detail-dateNaissance">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="form-group mb-2">
|
||||
<label>Fonction :</label>
|
||||
<select class="form-select" id='detail-fonction'>
|
||||
<option value='chauffeur'>Chauffeur</option>
|
||||
<option value='technicien_surface'>Technicien de surface</option>
|
||||
<option value='qualiticien'>Qualiticien</option>
|
||||
<option value='post_doctorant'>Post-Doctorant</option>
|
||||
<option value='logisticien'>Logisticien</option>
|
||||
<option value='data_manager'>Data Manager</option>
|
||||
<option value='raf'>RAF</option>
|
||||
<option value='comptable'>Comptable</option>
|
||||
<option value='assistant_direction'>Assistante de direction</option>
|
||||
<option value='directeur'>Directeur</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>Email :</label>
|
||||
<input type="email" class="form-control" id="detail-email">
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>Téléphone :</label>
|
||||
<input type="text" class="form-control" id="detail-telephone">
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>Adresse :</label>
|
||||
<input type="text" class="form-control" id="detail-adresse">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
{% if user|has_group:"ressource_humaine" %}
|
||||
<div class="col">
|
||||
<button type="button" class="btn btn-success d-block m-auto" id="enregistrerDetail">
|
||||
<i class="bi bi-save"></i> Enregistrer
|
||||
</button>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col text-end">
|
||||
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#modalDocuments">
|
||||
<i class="bi bi-folder2-open"></i> Voir les documents RH
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<hr class="my-4">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="d-flex justify-content-between">
|
||||
<h5>
|
||||
<i class="bi bi-file-earmark-text me-2"></i> Liste des Contrats
|
||||
</h5>
|
||||
{% if user|has_group:"ressource_humaine" %}
|
||||
<div>
|
||||
<button class="btn btn-secondary" disabled>
|
||||
<i class="bi bi-file-earmark-lock"></i> Contrat actif
|
||||
</button>
|
||||
<button type="button" class="btn btn-success" data-bs-toggle="modal" data-bs-target="#modalContrat{{ item.employe.id }}">
|
||||
<i class="bi bi-file-earmark-text"></i> Créer contrat
|
||||
</button>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% csrf_token %}
|
||||
<div class="row" id="contrats-list"></div>
|
||||
</div>
|
||||
</div>
|
||||
<hr class="my-4">
|
||||
<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>
|
||||
{% 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>
|
||||
<div class="row">
|
||||
<div id="affectations-list"></div>
|
||||
</div>
|
||||
</div>
|
||||
<hr class="my-4">
|
||||
<div class="row g-3">
|
||||
<h5 class="mb-3"><i class="bi bi-award-fill me-2"></i> Formations</h5>
|
||||
<div class="row" id="formations-list"></div>
|
||||
</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>
|
||||
@@ -0,0 +1,41 @@
|
||||
<div class="modal fade" id="modalDocuments" tabindex="-1" aria-labelledby="modalDocumentsLabel" aria-hidden="true">
|
||||
<div class="modal-dialog ">
|
||||
<div class="modal-content border-0 shadow-lg">
|
||||
<div class="modal-header ">
|
||||
<h5 class="modal-title" id="modalDocumentsLabel">
|
||||
<i class="bi bi-folder2-open me-2"></i> Documents RH de <span id="document-employe"></span>
|
||||
</h5>
|
||||
<button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="row g-3">
|
||||
<div class="col">
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item">
|
||||
<strong>Diplôme :</strong>
|
||||
<a id="document-diplome" target="_blank"></a>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<strong>CV :</strong>
|
||||
<a id="document-cv" target="_blank"></a>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<strong>RIB :</strong>
|
||||
<a id="document-rib" target="_blank"></a>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<strong>Casier judiciaire :</strong>
|
||||
<a id="document-casier-judiciaire" target="_blank"></a>
|
||||
</li>
|
||||
</ul>
|
||||
</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>
|
||||
</div>
|
||||
@@ -0,0 +1,17 @@
|
||||
<div class="modal fade" id="modalListeDesContratExpirants" tabindex="-1">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">Contrats expirants dans un maximum de 60 jours</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div id='listeContratExpirant'></div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Fermer</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,36 @@
|
||||
<div class="modal fade" id="modalModifierProfil" tabindex="-1" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title"><i class="bi bi-person-lines-fill me-2"></i> Modifier le mot de passe</h5>
|
||||
<button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form method="POST" action="{% url 'gestion_employe:modifier-mot-passe' %}">
|
||||
{% csrf_token %}
|
||||
<div class="form-group mb-2">
|
||||
<label>Votre mot de passe actuel :</label>
|
||||
<input class="form-control" type="password" name="ancien-mdp">
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>Votre nouveau mot de passe :</label>
|
||||
<input class="form-control" type="password" name="nouveau-mdp">
|
||||
</div>
|
||||
<div class="form-group mb-2">
|
||||
<label>Confirmez votre nouveau mot de passe :</label>
|
||||
<input class="form-control" type="password" name="confirmation-mdp">
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">
|
||||
Fermer
|
||||
</button>
|
||||
<button type="submit" class="btn btn-success">
|
||||
<i class="bi bi-check-circle me-1"></i> Enregistrer
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user