feature: Affichage du message sur l'tat du contrat

This commit is contained in:
2026-04-30 17:00:00 +02:00
parent cea67c7057
commit c1dc44d223
2 changed files with 31 additions and 14 deletions

View File

@@ -19,12 +19,13 @@
{% endfor %} {% endfor %}
{% endif %} {% endif %}
{% if not expiration_contrat %} {% if not has_contrat %}
<div class="alert alert-danger fade show alert-dismissible mt-2"> <div class="alert alert-danger mt-2">
<strong>Important :</strong> Les informations sur votre contrat n'ont pas été renseignées, veuillez contacter les ressources humaines. <strong>Important :</strong> Les informations sur votre contrat n'ont pas été renseignées, veuillez contacter les ressources humaines.
</div> </div>
{% elif contrat_nb_jours_restant %}
<div class="alert alert-danger fade show alert-dismissible mt-2"> {% elif expiration_contrat %}
<div class="alert alert-warning 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 %} {% endif %}

View File

@@ -122,26 +122,41 @@ def mon_profil(request):
try: try:
employe = Employe.objects.get(user__username=request.user) employe = Employe.objects.get(user__username=request.user)
except Employe.DoesNotExist: except Employe.DoesNotExist:
messages.error(request, "Impossible d'acceder au menu 'Mon profil' car votre profil Utilisateur n'est lié à aucun profil Employé. Veuillez contacter l'Administrateur.") messages.error(
request,
"Impossible d'acceder au menu 'Mon profil' car votre profil Utilisateur n'est lié à aucun profil Employé. Veuillez contacter l'Administrateur."
)
return redirect("gestion_conges:conge") return redirect("gestion_conges:conge")
contrats = Contrat.objects.filter(employe=employe, statut='actif').first() contrats = Contrat.objects.filter(employe=employe, statut='actif').first()
projets = Affectation.objects.filter( projets = Affectation.objects.filter(
employe = employe, employe=employe,
date_fin_daffectation__gte = timezone.now().date() date_fin_daffectation__gte=timezone.now().date()
).select_related('projet') ).select_related('projet')
has_contrat = contrats is not None
expiration_contrat = False
contrat_nb_jours_restant = None
if contrats:
nb_jours = contrats.nombre_jours_restant
contrat_nb_jours_restant = nb_jours
expiration_contrat = nb_jours <= fonctions_utilitaire.DUREE_FIN_CONTRAT
return render( return render(
request, request,
'gestion_employe/monprofil.html', 'gestion_employe/monprofil.html',
{ {
'employe': employe, 'employe': employe,
'contrats': [{ 'contrats': [{
**model_to_dict(contrats), **model_to_dict(contrats),
"type_contrat": dict(Contrat.TYPE_CONTRAT).get(contrats.type_contrat), "type_contrat": dict(Contrat.TYPE_CONTRAT).get(contrats.type_contrat),
"statut": dict(Contrat.STATUT_CONTRAT).get(contrats.statut), "statut": dict(Contrat.STATUT_CONTRAT).get(contrats.statut),
"fichier_contrat": contrats.fichier_contrat.url if contrats.fichier_contrat else "", "fichier_contrat": contrats.fichier_contrat.url if contrats.fichier_contrat else "",
} if contrats else []], }] if contrats else [],
'projets': [ 'projets': [
{ {
**model_to_dict(a.projet), **model_to_dict(a.projet),
@@ -151,12 +166,13 @@ def mon_profil(request):
"pourcentage_temps_affectation": a.pourcentage_temps_affectation "pourcentage_temps_affectation": a.pourcentage_temps_affectation
} for a in projets } for a in projets
], ],
"formation_form": FormationForm(), "formation_form": FormationForm(),
"expiration_contrat": contrats.nombre_jours_restant <= fonctions_utilitaire.DUREE_FIN_CONTRAT if contrats else False, "has_contrat": has_contrat,
"contrat_nb_jours_restant": contrats.nombre_jours_restant if contrats else None "expiration_contrat": expiration_contrat,
"contrat_nb_jours_restant": contrat_nb_jours_restant
} }
) )
@login_required @login_required
def modifier_mot_passe(request): def modifier_mot_passe(request):
"""Vue pour permettre à un utilisateur de modifier son mot de passe et ses informations de profil""" """Vue pour permettre à un utilisateur de modifier son mot de passe et ses informations de profil"""