This commit is contained in:
2026-09-03 14:25:28 +00:00
36 changed files with 292 additions and 252 deletions

View File

@@ -15,7 +15,7 @@ from django.utils import timezone
from fonction_utilitaire import fonctions_utilitaire
from .forms import AffectationForm, ContratForm, FormationForm
from .models import Affectation, Contrat, Employe, Formation
from .models import Affectation, Contrat, Departement, Employe, Formation
@login_required
@@ -42,7 +42,8 @@ def index(request):
'nombre_stage': nombre_stage,
'nombre_expirants': nombre_expirants,
'affectation_form': AffectationForm(),
'contrat_form': ContratForm()
'contrat_form': ContratForm(),
'departements': Departement.objects.all()
})
@login_required
@@ -285,7 +286,7 @@ def creation_contrat(request):
contrat_actif = Contrat.objects.filter(
employe=employe,
date_fin__gte=datetime.date.today()
date_fin__gte=timezone.now().date()
).exists()
if request.method == "POST":
@@ -360,10 +361,30 @@ def enregistrer_detail_employe(request):
except Employe.DoesNotExist:
return JsonResponse({"error": "Employé non trouvé."}, status=404)
employe.fonction = data['fonction']
employe.date_embauche = data['date_embauche']
employe.matricule = data['matricule']
employe.fonction = data.get('fonction')
employe.date_embauche = data.get('date_embauche')
employe.matricule = data.get('matricule')
# Traiter le département
dept_value = data.get('departement')
print(f"[DEBUG] Département brut: {dept_value!r}")
print(f"[DEBUG] Type département: {type(dept_value).__name__}")
print(f"[DEBUG] Est vide: {not dept_value}")
if dept_value and str(dept_value).strip():
try:
dept_id = int(dept_value)
departement = Departement.objects.get(id=dept_id)
employe.departement = departement
except Departement.DoesNotExist:
employe.departement = None
except (ValueError, TypeError) as e:
employe.departement = None
else:
employe.departement = None
employe.save()
return JsonResponse({"message": "Détails de l'employé mis à jour avec succès."})
else:
return JsonResponse({"message": "Méthode non autorisée."}, status=405)
@@ -426,7 +447,7 @@ def liste_employe(request):
"affectations": affectations,
"projet": projets,
"contrats": contrats,
"departement": employe.departement.nom if employe.departement else "",
"departement": employe.departement.id if employe.departement else "",
"fonction": employe.fonction,
"date_embauche": employe.date_embauche,
"adresse": employe.adresse,