liste des bailleur

This commit is contained in:
2026-04-29 14:34:00 +02:00
parent 6b977d5809
commit caff8198ed
6 changed files with 49 additions and 22 deletions

View File

@@ -24,9 +24,9 @@ BASE_DIR = Path(__file__).resolve().parent.parent
SECRET_KEY = 'django-insecure--wdb9t(77rvyac$_q!n5gw86&0r(0&&j171v9h!-_$jahsza*5' SECRET_KEY = 'django-insecure--wdb9t(77rvyac$_q!n5gw86&0r(0&&j171v9h!-_$jahsza*5'
# SECURITY WARNING: don't run with debug turned on in production! # SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False DEBUG = True
ALLOWED_HOSTS = ["https://support.cerfig.org", "support.cerfig.org"] ALLOWED_HOSTS = ["*"]
# Application definition # Application definition
@@ -83,11 +83,10 @@ WSGI_APPLICATION = 'SIRH.wsgi.application'
# 'default': { # 'default': {
# 'ENGINE': 'django.db.backends.mysql', # 'ENGINE': 'django.db.backends.mysql',
# 'NAME': 'sirh', # 'NAME': 'sirh',
# 'USER': 'sirh', # 'USER': 'test',
# 'PASSWORD': 'sirh-cerfig', # 'PASSWORD': 'test-django',
# 'HOST': 'localhost', # 'HOST': 'localhost',
# 'PORT': '3306', # 'PORT': '3306',
# }
# } # }
DATABASES = { DATABASES = {
@@ -97,7 +96,6 @@ DATABASES = {
} }
} }
# Password validation # Password validation
# https://docs.djangoproject.com/en/5.2/ref/settings/#auth-password-validators # https://docs.djangoproject.com/en/5.2/ref/settings/#auth-password-validators
@@ -157,3 +155,5 @@ EMAIL_USE_TLS = False
EMAIL_HOST_USER = 'support.it@cerfig.org' EMAIL_HOST_USER = 'support.it@cerfig.org'
EMAIL_HOST_PASSWORD = 'Cerfig2025' EMAIL_HOST_PASSWORD = 'Cerfig2025'
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER DEFAULT_FROM_EMAIL = EMAIL_HOST_USER

View File

@@ -2,6 +2,20 @@
{% load tags_personnaliser %} {% 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-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 }}"
class="rounded-circle"
width="80"
height="80"
style="object-fit:cover;">
{% else %}
<i class="bi bi-person-circle text-white" style="font-size:60px;"></i>
{% endif %}
<div class="text-white mt-2">
{{ user.username }}
</div>
</div>
<a href="{% url 'gestion_employe:mon-profil' %}" class="text-white fw-bold text-decoration-none mb-4" style="font-size:1.4em"> <a href="{% url 'gestion_employe:mon-profil' %}" class="text-white fw-bold text-decoration-none mb-4" style="font-size:1.4em">
<i class="bi bi-person-circle"></i> Mon profil <i class="bi bi-person-circle"></i> Mon profil
</a> </a>

View File

@@ -19,19 +19,15 @@
{% endfor %} {% endfor %}
{% endif %} {% endif %}
{% if not expiration_contrat %}
{% if expiration_contrat %} <div class="alert alert-danger fade show alert-dismissible mt-2">
{% if contrat_nb_jours_restant %} <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"> <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. <strong>Important :</strong> Votre contrat de travail expire dans {{ contrat_nb_jours_restant }} jours, veuillez contacter les ressources humaines.
</div> </div>
{% endif %}
{% else %}
<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>
{% endif %} {% endif %}
<div class="accordion mt-2" id="accordionInformationEmploye"> <div class="accordion mt-2" id="accordionInformationEmploye">
<div class="accordion-item"> <div class="accordion-item">
<h2 class="accordion-header" id="headingContrats"> <h2 class="accordion-header" id="headingContrats">
@@ -42,8 +38,15 @@
<div id="collapseProfil" class="accordion-collapse" aria-labelledby="headingContrats" data-bs-parent="#accordionInformationEmploye"> <div id="collapseProfil" class="accordion-collapse" aria-labelledby="headingContrats" data-bs-parent="#accordionInformationEmploye">
<div class="accordion-body"> <div class="accordion-body">
<div class="row" id="information-personnelles" data-url="{% url 'gestion_employe:modifier-employe' %}"> <div class="row" id="information-personnelles" data-url="{% url 'gestion_employe:modifier-employe' %}">
{% csrf_token %}
<div class="col"> <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>
{% csrf_token %}
<div class="form-group mb-2"> <div class="form-group mb-2">
<label>Matricule :</label> <label>Matricule :</label>
<input type="text" class="form-control" id="matricule" value="{{ employe.matricule|default:'' }}" readonly> <input type="text" class="form-control" id="matricule" value="{{ employe.matricule|default:'' }}" readonly>
@@ -63,12 +66,13 @@
<option value='f' {% if employe.sexe == 'f' %}selected{% endif %}>Femme</option> <option value='f' {% if employe.sexe == 'f' %}selected{% endif %}>Femme</option>
</select> </select>
</div> </div>
</div>
<div class="col">
<div class="form-group mb-2"> <div class="form-group mb-2">
<label>Date de naissance :</label> <label>Date de naissance :</label>
<input type="date" class="form-control" id="date_naissance" value="{{ employe.date_naissance|date:'Y-m-d' }}"> <input type="date" class="form-control" id="date_naissance" value="{{ employe.date_naissance|date:'Y-m-d' }}">
</div> </div>
</div>
<div class="col">
<div class="form-group mb-2"> <div class="form-group mb-2">
<label>Département :</label> <label>Département :</label>
<input type="text" class="form-control" id="departement" value="{{ employe.departement.nom|default:'' }}" readonly> <input type="text" class="form-control" id="departement" value="{{ employe.departement.nom|default:'' }}" readonly>
@@ -167,6 +171,13 @@
{% csrf_token %} {% csrf_token %}
<div class="row"> <div class="row">
<div class="col"> <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"> <div class="form-group mb-2">
<label>CV</label> <label>CV</label>
{% if employe.CV %} {% if employe.CV %}

View File

@@ -177,6 +177,7 @@ def modifier_mot_passe(request):
return redirect("gestion_employe:mon-profil") return redirect("gestion_employe:mon-profil")
def modifier_employer(request): def modifier_employer(request):
"""Vue pour permettre à un utilisateur de modifier les informations d'un employé""" """Vue pour permettre à un utilisateur de modifier les informations d'un employé"""
try: try:
@@ -192,7 +193,8 @@ def modifier_employer(request):
employe.telephone = data['telephone'] employe.telephone = data['telephone']
employe.adresse = data['adresse'] employe.adresse = data['adresse']
employe.sexe = data['sexe'] employe.sexe = data['sexe']
# if request.FILES.get("photo"):
# employe.photo = request.FILES["photo"]
if data['date_naissance']: if data['date_naissance']:
difference = relativedelta(timezone.now().date(), datetime.strptime(data['date_naissance'], "%Y-%m-%d").date()) difference = relativedelta(timezone.now().date(), datetime.strptime(data['date_naissance'], "%Y-%m-%d").date())
if difference.years >= 18: if difference.years >= 18:
@@ -201,13 +203,13 @@ def modifier_employer(request):
return JsonResponse({"message": "Veuillez entrez une date de naissance correcte."}) return JsonResponse({"message": "Veuillez entrez une date de naissance correcte."})
employe.save() employe.save()
user.save() user.save()
return JsonResponse({"message": "Profil mis à jour avec succès."}) return JsonResponse({"message": "Profil mis à jour avec succès."})
def enregistrement_document(request): def enregistrement_document(request):
employe = Employe.objects.get(user__username=request.user) employe = Employe.objects.get(user__username=request.user)
if request.method == "POST": if request.method == "POST":
employe.CV = request.FILES["cv"] if 'cv' in request.FILES else employe.CV employe.CV = request.FILES["cv"] if 'cv' in request.FILES else employe.CV
employe.photo = request.FILES["photo"] if 'photo' in request.FILES else employe.photo
employe.diplome = request.FILES["diplome"] if 'diplome' in request.FILES else employe.diplome employe.diplome = request.FILES["diplome"] if 'diplome' in request.FILES else employe.diplome
employe.rib = request.FILES["rib"] if 'rib' in request.FILES else employe.rib employe.rib = request.FILES["rib"] if 'rib' in request.FILES else employe.rib
employe.casier_judiciaire = request.FILES["casier_judiciaire"] if 'casier_judiciaire' in request.FILES else employe.casier_judiciaire employe.casier_judiciaire = request.FILES["casier_judiciaire"] if 'casier_judiciaire' in request.FILES else employe.casier_judiciaire