Files
sirh/gestion_employe/__pycache__/views.cpython-310.pyc

102 lines
14 KiB
Plaintext
Raw Normal View History

o
2026-08-31 09:48:21 +00:00
<00> <0A>jcO<00>@s|ddlZddlmZmZmZddlmZddlmZddlm Z ddl
m Z ddl m Z ddlmZmZdd lmZdd
2026-08-31 09:48:21 +00:00
lmZdd lmZdd lmZd dlmZmZmZmZd dlmZm Z m!Z!ddl"m#Z#edd<12><00>Z$edd<14><00>Z%edd<16><00>Z&edd<18><00>Z'edd<1A><00>Z(dd<1C>Z)dd<1E>Z*dd <20>Z+d!d"<22>Z,d#d$<24>Z-ed%d&<26><00>Z.ed'd(<28><00>Z/ed)d*<2A><00>Z0d+d,<2C>Z1ed-d.<2E><00>Z2ed/d0<64><00>Z3dS)1<>N)<03>date<74> timedelta<74>datetime)<01> relativedelta)<01>timezone)<01>messages)<01>User)<01> authenticate)<02>render<65>redirect)<01>login_required)<01> JsonResponse)<01> model_to_dict)<01>Sum<75>)<04>Employe<79>Contrat<61> Affectation<6F> Formation)<03>AffectationForm<72> ContratForm<72> FormationForm)<01>fonctions_utilitairec Cs<>|jjjdd<02><01><03>std<03>Stj<06><07><00>d<04>}tj<06> <09>}t
jjdd<06><01> <09>}t
jjdd<06><01> <09>}t <0B> <0C><00> <0A>tdd <09>}t
jj|t <0B> <0C><00> <0A>d
d <0B><03> <09>}t|d |||||t<10>t<11>d <0A><07>S)z Vue d'index<65>ressource_humaine)<01>name<6D>gestion_employe:mon-profilz-user__date_joined<65>contrat_prestation)<01> type_contrat<61> contrat_stage<67><<00><01>days<79>actif<69><03> date_fin__lte<74> date_fin__gte<74>statut<75>gestion_employe/index.html)<07>employes<65>nombre_employes<65>
nombre_cps<EFBFBD> nombre_stage<67>nombre_expirants<74>affectation_form<72> contrat_form)<12>user<65>groups<70>filter<65>existsr r<00>objects<74>all<6C>order_by<62>countrr<00>nowrrr
rr)<07>requestr(r)r*r+<00> date_limiter,<00>r:<00>&/var/www/sirh/gestion_employe/views.py<70>indexs.

2026-08-31 09:48:21 +00:00
<04><02><08>r<cCsHt<00><01><00><02>ttjd<01>}dd<03>tjj|t<00><01><00><02>dd<05>D<00>}t |dd<07>S)z Liste des contrats proches r c SsVg|]'}|jjj<02>d|jjj<03><00>ttj<06><01>|j<08>|j |j
|j |j r%|j j ndd<02><06>qS)<03> <20>)<06>employer<00>
date_debut<EFBFBD>date_finr&<00>fichier_contrat)r?r/<00>
first_name<EFBFBD> last_name<6D>dictr<00> TYPE_CONTRAT<41>getrr@rAr&rB<00>url<72><02>.0<EFBFBD>contratr:r:r;<00>
<listcomp>4s <18><04><06>z+liste_contrat_expirants.<locals>.<listcomp>r"r#F<><01>safe)
rr7rrr<00>DUREE_FIN_CONTRATrr3r1r )r8r9<00>contats_expirantsr:r:r;<00>liste_contrat_expirants/s

2026-08-31 09:48:21 +00:00
<06> rQc Cs(|jdk<02>r|j<01>d<02>}z tjj|d<03>}Wntjy)t<06>|d<04>td<05>YSwt |j<01>}|<03>
<EFBFBD><00>r|j d}|j d}|j d}|j d }|r<>|r<>t jj |d
<EFBFBD>jtd<08>d <0B>d p\d }||krkt<06>|d<0E>td<05>S||jkr<>t<06>|d|<05>d|j<11>d<11><05>td<05>S||dkr<>t<06>|d|jj<13>d|jj<14>d||<00>d<16><07>td<05>St jj|||j d ||j d|d<18>d<19>t<06>|d|jj<13>d|jj<14>d|j<17>d<1C><07>tjdd|jj<13>d|jj<14>d|j<17><1A><00>d |j d <00>d!<21><01>d"|<05>d!<21><01>d#tt j<1D><01>|j d<00><01>d$<24> |jjgd%<25>td<05>St<06>|d&<26>td<05>Std<05>S)'u[Vue pour affecter un employé à un projet avec vérification des contraintes d'affectation<6F>POST<53>affecter_employe_id<69><01>idu#L'employé spécifié n'existe pas.<2E>gestion_employe:index<65>projet<65>date_fin_daffectation<6F>pourcentage_temps_affectation<6F>date_affectation<6F>r?)<01>total_pourcentage_affectationr\ruPLa date de fin d'affectation ne peut pas être antérieure à la date de début.z!La date de fin de l'affectation (u2) ne peut pas dépasser la date de fin du projet (z).<2E>du-Les pourcentages d'affectation de l'employé r=u, dépasse 100% sur les différents projets (z%).<2E>role<6C>rZrXr^rY)r?rW<00>defaultsu L'employé u a été affecté au projet <20>.uAffectation à un projetzBonjour u%, vous avez été affecté au projet u pour la période du z%d/%m/%Yz au z en tant que u9.
Veuillez consulter votre profil pour plus de détails.)<03>sujet<65>message<67> destinataireszErreur : Formulaire non valide.)<1F>methodrRrGrr3<00> DoesNotExistr<00>errorr r<00>is_valid<69> cleaned_datarr1<00> aggregater<00>warningrAr/rCrD<00>update_or_create<74>success<73>
nom_projetr<00> envoyer_mail<69>upper<65>strftimerE<00> ROLE_CHOICES<45>email) r8<00>
employe_idr?<00>formrW<00>date_fin_affectation<6F> temps_nouveaurZ<00>total_affectationr:r:r;<00>affecter_employe_projetCsj    <02>
2026-05-07 11:22:14 +00:00





 <04><04><02> 
2026-08-31 09:48:21 +00:00
 "<04><04><06>*
Z<06> ryc
Cs<>z
tjj|jd<01>}Wntjyt<05>|d<02>td<03>YSwtjj |dd<05><02>
<EFBFBD>}t jj |t <0C> <0A><00><0E>d<06><02>d<07>}t|d||r_it|<02><01>ttj<13><01>|j<14>ttj<15><01>|j<16>|jrZ|jjnd d
2026-08-31 09:48:21 +00:00
<EFBFBD><03>nggd d <0C>|D<00>t<19>|rq|jtjknd |rz|jd<0F><06>Sdd<0F><06>S)uBVue pour afficher et modifier le profil de l'utilisateur connecté<74><01>user__usernameu<65>Impossible d'acceder au menu 'Mon profil' car votre profil Utilisateur n'est lié à aucun profil Employé. Veuillez contacter l'Administrateur.zgestion_conges:conger"<00>r?r&<00>r?<00>date_fin_daffectation__gterWzgestion_employe/monprofil.htmlr>)rr&rBcSs<g|]}it|j<01><01>|j|jttj<06><01>|j<08>|j d<00><04><01>qS)r_)
rrWrZrXrErrrrGr^rY<00>rJ<00>ar:r:r;rL<00>s<02><02><06><06>zmon_profil.<locals>.<listcomp>FN)r?<00>contrats<74>projets<74>formation_form<72>expiration_contrat<61>contrat_nb_jours_restant)rr3rGr/rfrrgr rr1<00>firstrrr7r<00>select_relatedr
rrErFr<00>STATUT_CONTRATr&rBrHr<00>nombre_jours_restantrrO)r8r?r<>r<>r:r:r;<00>
mon_profil<EFBFBD>sL  <02>
<04><02><04><02><08><02><04> <04><04><04><04>r<EFBFBD>cCs<>tjj|jd<01>}|jdkrM|jd}|jd}|jd}t||j|d<06>dur0t<07>|d<08>t d <0B>S||kr>t<07>|d <09>t d <0B>S|<01> |<03>|<01>
<EFBFBD>t<07> |d
2026-08-31 09:48:21 +00:00
<EFBFBD>t d <0B>S) u_Vue pour permettre à un utilisateur de modifier son mot de passe et ses informations de profil<69><01>usernamerRz
ancien-mdpz nouveau-mdpzconfirmation-mdp)r<><00>passwordNzAncien mot de passe incorrect.z'Les deux nouveaux ne correspondent pas.u#Mot de passe modifié avec succès.r) rr3rGr/rerRr rrg<00> set_password<72>savermr )r8r/<00>
ancien_mdp<EFBFBD> nouveau_mdp<64>confirmation_mdpr:r:r;<00>modifier_mot_passe<73>s



 <08> 
2026-08-31 09:48:21 +00:00
<EFBFBD> r<>cCs&z
2026-07-14 09:03:28 +00:00
tjj|jd<01>}Wntjytddi<01>YSw|jdkr<>tjj|jd<05>}|jd|_ |jd|_
|jd|_ |jd |_ |jd
2026-08-31 09:48:21 +00:00
|_ |jd |_|j<0F>d <0C>rX|jd |_|jd r<>tt<12><13><00><14>t<15>|jd d<0E><02><14><00>}|jdkr{|jd |_nt<19>|d<10>|<01><1B>|<02><1B>t<19>|d<11>td<12>S)uOVue pour permettre à un utilisateur de modifier les informations d'un employérzrc<00>Employé non trouvé.rRr<><00>nom<6F>prenomrs<00> telephone<6E>adresse<73>sexe<78>photo<74>date_naissancez%Y-%m-%d<>z/Veuillez entrez une date de naissance correcte.u Profil mis à jour avec succès.r)rr3rGr/rfr rerrRrDrCrsr<>r<>r<><00>FILESr<53>rrr7rr<00>strptime<6D>yearsr<73>rrgr<>rmr )r8r?r/<00>
differencer:r:r;<00>modifier_employer<65>s0<02>
2026-07-14 09:03:28 +00:00
        
$
2026-08-31 09:48:21 +00:00
  r<>cCs<>tjj|jd<01>}|jdkrO|j<05>d<03>r|jd|_d|jvr$|jd|_d|jvr/|jd|_d|jvr:|jd|_ d|jvrE|jd|_
|<01> <0B>t <0C> |d<08>td <09>S)
2026-08-31 09:48:21 +00:00
ufVue pour permettre à un utilisateur de télécharger et enregistrer des documents liés à son profil)r/rRr<><00>cv<63>diplome<6D>rib<69>casier_judiciaireu$Documents enregistrés avec succès.r)rr3rGr/rer<>r<><00>CVr<56>r<>r<>r<>rrmr )r8r?r:r:r;<00>enregistrement_document<6E>s
  
 
 
 
2026-08-31 09:48:21 +00:00
  r<>cCsht<00>|j<02>d}z tjj|d<02>}Wntjy)t<07>|d<03>t ddidd<06>YSw|<02>
<EFBFBD>t ddi<01>S)u<Vue pour permettre à un utilisateur de supprimer un contratrU)<01>numero_contratuContrat non trouvé.rc<00><><00><01>statusuContrat supprimé avec succès.) <0B>json<6F>loads<64>bodyrr3rGrfrrgr <00>delete)r8<00>
id_contratrKr:r:r;<00>suppression_contrat<61>s <02> r<>cCs\t<00>|j<02>d}z tjj|d<02>}Wntjy#tddidd<06>YSw|<02><08>tddi<01>S)uAVue pour permettre à un utilisateur de supprimer une affectationrUrTrcuAffectation non trouvée.r<>r<>u$Affectation supprimée avec succès.) r<>r<>r<>rr3rGrfr r<>)r8<00>id_affectation<6F> affectationr:r:r;<00>suppression_affectation<6F>s<02> r<>cCs<>z tjj|j<03>d<01>d<02>}Wntjy!t<05>|d<03>td<04>YSwtjj |t
<EFBFBD> <0B>d<05><02> <0C>}|j dkrh|r?t<05>|d<07>td<08>St|j|j<0F>}|<03><10>ra|jd d
2026-08-31 09:48:21 +00:00
<EFBFBD>}||_|<04><11>t<05>|d <0B>td<08>St<05>|d <0C>ntd |id<0E>}t|dd|i<01>S)uPCréer un contrat pour un employé (avec contrôle d'existence de contrat actif)rtrTr<>z employe-index)r?r%rRuIImpossible de créer un contrat : cet employé a déjà un contrat actif.rVF<><01>commituContrat créé avec succès.zFormulaire non valider?)<01>initialr'r.)rr3rGrRrfrrgr rr1r<00>todayr2rerr<>rhr<>r?rmr
)r8r?<00> contrat_actifrurKr:r:r;<00>creation_contrats>  <02><04><02>
<04>  <06>r<EFBFBD>cCs<>|jdkrBt<01>|j<03>}z tjj|dd<03>}Wntjy(tddidd<07>YSw|d|_ |d |_
|d
2026-08-31 09:48:21 +00:00
|_ |<02> <0C>td d i<01>Std d idd<07>S)uaVue pour permettre à un utilisateur de modifier les détails d'un employé via une requête AJAXrRrUrTrgr<>r<>r<><00>fonction<6F> date_embauche<68> matriculercu0Détails de l'employé mis à jour avec succès.uMéthode non autorisée.i<>) rer<>r<>r<>rr3rGrfr r<>r<>r<>r<>)r8<00>datar?r:r:r;<00>enregistrer_detail_employe(s
 <02>


2026-08-31 09:48:21 +00:00
 r<>cCs<>tjjddd<02>}g}|D]<5D>}|jjdkr<>|jjdkr<>d<04>dd<06>tjj|t <09>
<EFBFBD><00> <0B>d<07>D<00><01>g}dd<06>t jj|d <09>D<00>}d
d<06>t jj|d d <0C>D<00>}d d<06>tjj|t <09>
2026-08-31 09:48:21 +00:00
<EFBFBD><00> <0B>d<07>D<00>}|<02>id|j<0F>d|jj<04>d|jj<05><00><03>d|j<10>d|jj<11>d|<05>d|<07>d|<04>d|<06>d|jr<>|jjnd<01>d|j<14>d|j<15>d|j<16>d|j<17>d|j<18>d|jr<>|jjnd<01>d|jr<>|jjnd<01>d|jr<>|jjnd<01>|jr<>|jjnd|jr<>|jjnd|jd<1F><03><01>q t d |d!<21>d"d#<23>S)$u3 Vue pour retourner la liste de tous les employés r>)<02>user__first_name<6D>user__last_namer=z, cSsg|]}|jj<01>qSr:)rWrnrr:r:r;rLCs<06>z!liste_employe.<locals>.<listcomp>r}c Ss6g|]}|j|j|j|j|j|jr|jjndd<01><06>qS)r>)<06>titre<72> organisme<6D> description<6F>date_obtentionrA<00>
certificat)r<>r<>r<>r<>rAr<>rH<00>rJ<00> formationr:r:r;rLJs<04><04><06>r[c
Ss:g|]}|j|j|j|j|j|j|jr|jjndd<01><07>qS)r>)r<>rr@rA<00>salaire_mensuelr&rB)r<>rr@rAr<>r&rBrHrIr:r:r;rLUs <04><04><06>r"r|cSs$g|]}it|<01><01>d|jji<01><01>qS)rW)rrWrn)rJr<>r:r:r;rLas<16><06>rUr?r<>rs<00>
formations<EFBFBD> affectationsrWr<><00> departementr<74>r<>r<>r<>r<>r<>r<>r<>)r<>r<>r<>T)rmr<>FrM)!rr3<00>excluder/rCrD<00>joinrr1rr7rrr<00>appendrUr<>rsr<>r<>r<>r<>r<>r<>r<>r<>rHr<>r<>r<>r<>r<>r )r8r(r<>r?r<>r<>r<>r<>r:r:r;<00> liste_employe:s<>

<04><06><04> <06>  <06> 
<04><06><02><02><02><02><02><02><02><02> <02>
2026-08-31 09:48:21 +00:00
<02> <02> <02> <02><02><02><02><02><06><04><02>r<>cCsrtjj|jd<01>}|jdkr5t|j|j<07>}|<02><08>r/|j dd<04>}||_
|<03> <09>t <0B> |d<05>t d<06>St <0B>|d<07>t d<06>S)uGVue pour permettre à un employé d'ajouter une formation à son profilrzrRFr<46>u Formation ajoutée avec succès r<00>CFormulaire non valide. Veuillez vérifier les informations saisies.)rr3rGr/rerrRr<>rhr<>r?rrmr rg)r8r?r<><00> ma_formationr:r:r;<00>ajouter_formation<6F>s
   r<>cCs,tjj|jd<01><01>d<02>}tdd<04>|D<00>dd<06>S)N)<01>employe__user__usernamez-date_obtentioncSs.g|]}it|<01><01>d|jr|jjndi<01><01>qS)r<>r>)rr<>rHr<>r:r:r;rL<00>s<02><02><04><06>z#liste_formation.<locals>.<listcomp>FrM)rr3r1r/r5r )r8r<>r:r:r;<00>liste_formation<6F>s <04><06>r<EFBFBD>cCs<>z tjj||jd<01>}Wntjyt<05>|d<02>td<03>YSw|jdkrBt |j
|j |d<05>}|<02> <0C>r<t<05> |d<06>|<02><0E>t<05>|d<07>td<03>S)uIVue pour permettre à un employé de modifier une formation de son profil<69>rUr(<00>Formation non trouvée.<2E>mes_formationsrR)<01>instanceuFormation mise à jour r<>)rr3rGr/rfrrgr rerrRr<>rhrmr<><00>r8<00> id_formationr<6E>r:r:r;<00>modifier_formation<6F>s  <02>
  r<>cCsfz tjj||jd<01>}Wntjyt<05>|d<02>td<03>YSw|jdkr/|<02> <09>t<05>
|d<05>td<03>S)uJVue pour permettre à un employé de supprimer une formation de son profilr<6C>r<>r<>rRuFormation supprimée ) rr3rGr/rfrrgr rer<>rmr<>r:r:r;<00>supprimer_formation<6F>s  <02>
 r<>)4r<34>rrr<00>dateutil.relativedeltar<00> django.utilsr<00>django.contribr<00>django.contrib.auth.modelsr<00>django.contrib.authr <00>django.shortcutsr
r <00>django.contrib.auth.decoratorsr <00> django.httpr <00>django.forms.modelsr<00>django.db.modelsr<00>modelsrrrr<00>formsrrr<00>fonction_utilitairerr<rQryr<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r:r:r:r;<00><module>sR          


2026-05-07 11:22:14 +00:00
=
(
2026-07-14 09:03:28 +00:00
  $

H