Compare commits
2 Commits
message_co
...
54dc65f0d8
| Author | SHA1 | Date | |
|---|---|---|---|
| 54dc65f0d8 | |||
|
|
29a42ee6be |
Binary file not shown.
@@ -15,6 +15,8 @@ try:
|
|||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
EMAIL_EQUIPE_INFORMATIQUE = ["support@cerfig.org"]
|
||||||
|
|
||||||
def solde_conge(employe):
|
def solde_conge(employe):
|
||||||
"""Fonction de calcul du solde de congé restant l'employé"""
|
"""Fonction de calcul du solde de congé restant l'employé"""
|
||||||
contrat = Contrat.objects.filter(employe=employe, statut='actif').order_by('-date_debut').first()
|
contrat = Contrat.objects.filter(employe=employe, statut='actif').order_by('-date_debut').first()
|
||||||
|
|||||||
Binary file not shown.
@@ -3,8 +3,8 @@ from datetime import datetime, timedelta
|
|||||||
|
|
||||||
import requests
|
import requests
|
||||||
from dateutil.relativedelta import relativedelta
|
from dateutil.relativedelta import relativedelta
|
||||||
|
from decouple import config
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.contrib.auth import logout
|
|
||||||
from django.contrib.auth.decorators import login_required
|
from django.contrib.auth.decorators import login_required
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.contrib.auth.password_validation import validate_password
|
from django.contrib.auth.password_validation import validate_password
|
||||||
@@ -27,6 +27,18 @@ def index(request):
|
|||||||
if not request.user.groups.filter(name="ressource_humaine").exists():
|
if not request.user.groups.filter(name="ressource_humaine").exists():
|
||||||
return redirect('gestion_employe:mon-profil')
|
return redirect('gestion_employe:mon-profil')
|
||||||
|
|
||||||
|
response = requests.get(f"{config('SERVEUR_AUTHENTIFICATION')}recuperer-list-departement/")
|
||||||
|
|
||||||
|
if response.status_code == 200:
|
||||||
|
try:
|
||||||
|
departements_data = response.json()
|
||||||
|
for dept in departements_data:
|
||||||
|
Departement.objects.update_or_create(
|
||||||
|
nom = dept['nom']
|
||||||
|
)
|
||||||
|
except json.JSONDecodeError as e:
|
||||||
|
print(f"[ERROR] Erreur lors du décodage JSON : {e}")
|
||||||
|
|
||||||
employes = Employe.objects.all().order_by('-user__date_joined')
|
employes = Employe.objects.all().order_by('-user__date_joined')
|
||||||
nombre_employes = Employe.objects.count()
|
nombre_employes = Employe.objects.count()
|
||||||
nombre_cps = Contrat.objects.filter(type_contrat='contrat_prestation').count()
|
nombre_cps = Contrat.objects.filter(type_contrat='contrat_prestation').count()
|
||||||
@@ -521,7 +533,7 @@ def modifier_mot_passe(request):
|
|||||||
}
|
}
|
||||||
|
|
||||||
response = requests.post(
|
response = requests.post(
|
||||||
"http://localhost:8000/modifier-mot-de-passe/",
|
f"{config('SERVEUR_AUTHENTIFICATION')}modifier-mot-de-passe/",
|
||||||
json=donnees,
|
json=donnees,
|
||||||
headers=headers
|
headers=headers
|
||||||
)
|
)
|
||||||
|
|||||||
Binary file not shown.
@@ -16,7 +16,7 @@ from .models import Reservation
|
|||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def index(request: HttpRequest):
|
def index(request: HttpRequest):
|
||||||
|
"""Vue d'affichage de la page d'accueil de la gestion des salles"""
|
||||||
try:
|
try:
|
||||||
employe = Employe.objects.get(user=request.user)
|
employe = Employe.objects.get(user=request.user)
|
||||||
except Employe.DoesNotExist:
|
except Employe.DoesNotExist:
|
||||||
@@ -37,11 +37,11 @@ def index(request: HttpRequest):
|
|||||||
besoin_ordi = form.cleaned_data['besoin_ordi']
|
besoin_ordi = form.cleaned_data['besoin_ordi']
|
||||||
|
|
||||||
if date_fin < date_debut:
|
if date_fin < date_debut:
|
||||||
messages.error(request, "Date fin invalide.")
|
messages.error(request, "La date de fin est antérieure à la date de début.")
|
||||||
return redirect('gestion_salle:reservation-salle')
|
return redirect('gestion_salle:reservation-salle')
|
||||||
|
|
||||||
if heure_fin <= heure_debut:
|
if heure_fin <= heure_debut:
|
||||||
messages.error(request, "Heure invalide.")
|
messages.error(request, "L'heure de fin est antérieure à l'heure de début.")
|
||||||
return redirect('gestion_salle:reservation-salle')
|
return redirect('gestion_salle:reservation-salle')
|
||||||
|
|
||||||
if not request.user.first_name.strip() or not request.user.last_name.strip():
|
if not request.user.first_name.strip() or not request.user.last_name.strip():
|
||||||
@@ -55,7 +55,6 @@ def index(request: HttpRequest):
|
|||||||
current_date = date_debut
|
current_date = date_debut
|
||||||
|
|
||||||
while current_date <= date_fin:
|
while current_date <= date_fin:
|
||||||
|
|
||||||
reservation = Reservation.objects.create(
|
reservation = Reservation.objects.create(
|
||||||
employe=employe,
|
employe=employe,
|
||||||
date_debut=current_date,
|
date_debut=current_date,
|
||||||
@@ -74,16 +73,27 @@ def index(request: HttpRequest):
|
|||||||
|
|
||||||
messages.success(request, "Réservation(s) créée(s) avec succès.")
|
messages.success(request, "Réservation(s) créée(s) avec succès.")
|
||||||
|
|
||||||
if fonctions_utilitaire.EMAIL_ASSISTANTE_DE_DIRECTION:
|
if fonctions_utilitaire.EMAIL_ASSISTANTE_DE_DIRECTION and salle != "lien_zoom":
|
||||||
fonctions_utilitaire.envoyer_mail(
|
fonctions_utilitaire.envoyer_mail(
|
||||||
sujet = "Reservation de salle",
|
sujet = "Reservation de salle",
|
||||||
message = f"""
|
message = f"""Bonjour,
|
||||||
Une nouvelle demande de réservation de la {dict(Reservation.TYPE_CHOICES).get(salle)} a été effectuée par {employe.user.first_name} {employe.user.last_name} du {form.cleaned_data.get('date_debut').strftime('%d/%m/%Y')} au {form.cleaned_data.get('date_fin').strftime('%d/%m/%Y')} pour motif "{motif}".
|
Une nouvelle demande de réservation de la {dict(Reservation.TYPE_CHOICES).get(salle)} a été effectuée par {employe.user.first_name} {employe.user.last_name} du {form.cleaned_data.get('date_debut').strftime('%d/%m/%Y')} au {form.cleaned_data.get('date_fin').strftime('%d/%m/%Y')} pour motif "{motif}".
|
||||||
Veuillez vous connecter à la plateforme pour plus de détails.""",
|
Veuillez vous connecter à la plateforme pour plus de détails.""",
|
||||||
destinataires = fonctions_utilitaire.EMAIL_ASSISTANTE_DE_DIRECTION
|
destinataires = fonctions_utilitaire.EMAIL_ASSISTANTE_DE_DIRECTION
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if (salle == "lien_zoom" or besoin_zoom or besoin_ordi) and fonctions_utilitaire.EMAIL_EQUIPE_INFORMATIQUE:
|
||||||
|
fonctions_utilitaire.envoyer_mail(
|
||||||
|
sujet="Demande de lien Zoom",
|
||||||
|
message=f"""Bonjour,
|
||||||
|
Une nouvelle demande de réservation de salle nécessitant un lien Zoom a été effectuée par {employe.user.first_name} {employe.user.last_name} du {date_debut.strftime('%d/%m/%Y')} au {date_fin.strftime('%d/%m/%Y')} de {heure_debut.strftime('%H:%M')} a {heure_fin.strftime('%H:%M')} pour le motif {motif}
|
||||||
|
|
||||||
|
Veuillez vous connecter à la plateforme pour plus de détails.""",
|
||||||
|
destinataires=fonctions_utilitaire.EMAIL_EQUIPE_INFORMATIQUE
|
||||||
|
)
|
||||||
return redirect('gestion_salle:reservation-salle')
|
return redirect('gestion_salle:reservation-salle')
|
||||||
|
|
||||||
|
|
||||||
formulaire_reservation = ReservationForm()
|
formulaire_reservation = ReservationForm()
|
||||||
departement = employe.departement
|
departement = employe.departement
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user