Compare commits
3 Commits
34a261a4af
...
99434a21e0
| Author | SHA1 | Date | |
|---|---|---|---|
| 99434a21e0 | |||
| f6b90e7dd0 | |||
| fcfac71026 |
BIN
SIRH/__pycache__/__init__.cpython-310.pyc
Normal file
BIN
SIRH/__pycache__/__init__.cpython-310.pyc
Normal file
Binary file not shown.
BIN
SIRH/__pycache__/settings.cpython-310.pyc
Normal file
BIN
SIRH/__pycache__/settings.cpython-310.pyc
Normal file
Binary file not shown.
BIN
SIRH/__pycache__/urls.cpython-310.pyc
Normal file
BIN
SIRH/__pycache__/urls.cpython-310.pyc
Normal file
Binary file not shown.
BIN
SIRH/__pycache__/views.cpython-310.pyc
Normal file
BIN
SIRH/__pycache__/views.cpython-310.pyc
Normal file
Binary file not shown.
BIN
SIRH/__pycache__/wsgi.cpython-310.pyc
Normal file
BIN
SIRH/__pycache__/wsgi.cpython-310.pyc
Normal file
Binary file not shown.
Binary file not shown.
BIN
gestion_conge/__pycache__/__init__.cpython-310.pyc
Normal file
BIN
gestion_conge/__pycache__/__init__.cpython-310.pyc
Normal file
Binary file not shown.
BIN
gestion_conge/__pycache__/admin.cpython-310.pyc
Normal file
BIN
gestion_conge/__pycache__/admin.cpython-310.pyc
Normal file
Binary file not shown.
BIN
gestion_conge/__pycache__/apps.cpython-310.pyc
Normal file
BIN
gestion_conge/__pycache__/apps.cpython-310.pyc
Normal file
Binary file not shown.
BIN
gestion_conge/__pycache__/forms.cpython-310.pyc
Normal file
BIN
gestion_conge/__pycache__/forms.cpython-310.pyc
Normal file
Binary file not shown.
BIN
gestion_conge/__pycache__/models.cpython-310.pyc
Normal file
BIN
gestion_conge/__pycache__/models.cpython-310.pyc
Normal file
Binary file not shown.
BIN
gestion_conge/__pycache__/urls.cpython-310.pyc
Normal file
BIN
gestion_conge/__pycache__/urls.cpython-310.pyc
Normal file
Binary file not shown.
BIN
gestion_conge/__pycache__/views.cpython-310.pyc
Normal file
BIN
gestion_conge/__pycache__/views.cpython-310.pyc
Normal file
Binary file not shown.
BIN
gestion_employe/__pycache__/__init__.cpython-310.pyc
Normal file
BIN
gestion_employe/__pycache__/__init__.cpython-310.pyc
Normal file
Binary file not shown.
BIN
gestion_employe/__pycache__/admin.cpython-310.pyc
Normal file
BIN
gestion_employe/__pycache__/admin.cpython-310.pyc
Normal file
Binary file not shown.
BIN
gestion_employe/__pycache__/forms.cpython-310.pyc
Normal file
BIN
gestion_employe/__pycache__/forms.cpython-310.pyc
Normal file
Binary file not shown.
BIN
gestion_employe/__pycache__/models.cpython-310.pyc
Normal file
BIN
gestion_employe/__pycache__/models.cpython-310.pyc
Normal file
Binary file not shown.
BIN
gestion_employe/__pycache__/urls.cpython-310.pyc
Normal file
BIN
gestion_employe/__pycache__/urls.cpython-310.pyc
Normal file
Binary file not shown.
BIN
gestion_employe/__pycache__/views.cpython-310.pyc
Normal file
BIN
gestion_employe/__pycache__/views.cpython-310.pyc
Normal file
Binary file not shown.
Binary file not shown.
@@ -1,5 +1,5 @@
|
|||||||
import json
|
import json
|
||||||
from datetime import timedelta, datetime
|
from datetime import date, timedelta, datetime
|
||||||
from dateutil.relativedelta import relativedelta
|
from dateutil.relativedelta import relativedelta
|
||||||
|
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
@@ -247,14 +247,25 @@ def suppression_affectation(request):
|
|||||||
return JsonResponse({"message": "Affectation supprimée avec succès."})
|
return JsonResponse({"message": "Affectation supprimée avec succès."})
|
||||||
|
|
||||||
def creation_contrat(request):
|
def creation_contrat(request):
|
||||||
"""Vue pour permettre à un utilisateur de créer un contrat pour un employé"""
|
"""Créer un contrat pour un employé (avec contrôle d'existence de contrat actif)"""
|
||||||
|
|
||||||
try:
|
try:
|
||||||
employe = Employe.objects.get(id=request.POST.get('employe_id'))
|
employe = Employe.objects.get(id=request.POST.get('employe_id'))
|
||||||
except Employe.DoesNotExist:
|
except Employe.DoesNotExist:
|
||||||
messages.error(request, "Employé non trouvé.")
|
messages.error(request, "Employé non trouvé.")
|
||||||
return redirect('employe-index')
|
return redirect('employe-index')
|
||||||
|
contrat_actif = Contrat.objects.filter(
|
||||||
|
employe=employe,
|
||||||
|
date_fin__gte=date.today()
|
||||||
|
).exists()
|
||||||
|
|
||||||
if request.method == "POST":
|
if request.method == "POST":
|
||||||
|
if contrat_actif:
|
||||||
|
messages.error(
|
||||||
|
request,
|
||||||
|
"Impossible de créer un contrat : cet employé a déjà un contrat actif."
|
||||||
|
)
|
||||||
|
return redirect('gestion_employe:index')
|
||||||
form = ContratForm(request.POST, request.FILES)
|
form = ContratForm(request.POST, request.FILES)
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
contrat = form.save(commit=False)
|
contrat = form.save(commit=False)
|
||||||
@@ -263,9 +274,13 @@ def creation_contrat(request):
|
|||||||
messages.success(request, "Contrat créé avec succès.")
|
messages.success(request, "Contrat créé avec succès.")
|
||||||
return redirect('gestion_employe:index')
|
return redirect('gestion_employe:index')
|
||||||
messages.error(request, "Formulaire non valide")
|
messages.error(request, "Formulaire non valide")
|
||||||
|
|
||||||
else:
|
else:
|
||||||
form = ContratForm(initial={'employe': employe})
|
form = ContratForm(initial={'employe': employe})
|
||||||
return render(request, 'gestion_employe/index.html', {'contrat_form': form})
|
|
||||||
|
return render(request, 'gestion_employe/index.html', {
|
||||||
|
'contrat_form': form
|
||||||
|
})
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def enregistrer_detail_employe(request):
|
def enregistrer_detail_employe(request):
|
||||||
|
|||||||
BIN
gestion_projet/__pycache__/__init__.cpython-310.pyc
Normal file
BIN
gestion_projet/__pycache__/__init__.cpython-310.pyc
Normal file
Binary file not shown.
BIN
gestion_projet/__pycache__/admin.cpython-310.pyc
Normal file
BIN
gestion_projet/__pycache__/admin.cpython-310.pyc
Normal file
Binary file not shown.
BIN
gestion_projet/__pycache__/forms.cpython-310.pyc
Normal file
BIN
gestion_projet/__pycache__/forms.cpython-310.pyc
Normal file
Binary file not shown.
BIN
gestion_projet/__pycache__/models.cpython-310.pyc
Normal file
BIN
gestion_projet/__pycache__/models.cpython-310.pyc
Normal file
Binary file not shown.
BIN
gestion_projet/__pycache__/urls.cpython-310.pyc
Normal file
BIN
gestion_projet/__pycache__/urls.cpython-310.pyc
Normal file
Binary file not shown.
BIN
gestion_projet/__pycache__/views.cpython-310.pyc
Normal file
BIN
gestion_projet/__pycache__/views.cpython-310.pyc
Normal file
Binary file not shown.
BIN
gestion_salle/__pycache__/__init__.cpython-310.pyc
Normal file
BIN
gestion_salle/__pycache__/__init__.cpython-310.pyc
Normal file
Binary file not shown.
BIN
gestion_salle/__pycache__/admin.cpython-310.pyc
Normal file
BIN
gestion_salle/__pycache__/admin.cpython-310.pyc
Normal file
Binary file not shown.
BIN
gestion_salle/__pycache__/apps.cpython-310.pyc
Normal file
BIN
gestion_salle/__pycache__/apps.cpython-310.pyc
Normal file
Binary file not shown.
BIN
gestion_salle/__pycache__/forms.cpython-310.pyc
Normal file
BIN
gestion_salle/__pycache__/forms.cpython-310.pyc
Normal file
Binary file not shown.
BIN
gestion_salle/__pycache__/models.cpython-310.pyc
Normal file
BIN
gestion_salle/__pycache__/models.cpython-310.pyc
Normal file
Binary file not shown.
BIN
gestion_salle/__pycache__/urls.cpython-310.pyc
Normal file
BIN
gestion_salle/__pycache__/urls.cpython-310.pyc
Normal file
Binary file not shown.
BIN
gestion_salle/__pycache__/views.cpython-310.pyc
Normal file
BIN
gestion_salle/__pycache__/views.cpython-310.pyc
Normal file
Binary file not shown.
Reference in New Issue
Block a user