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

97 lines
25 KiB
Plaintext
Raw Normal View History

2026-04-29 12:44:26 +02:00
<EFBFBD>
2026-04-29 14:34:00 +02:00
8<><38>i<EFBFBD>P<00><00><><00>ddlZddlmZmZddlmZddlmZddlmZddl m
2026-04-29 12:44:26 +02:00
Z
ddl m Z ddl mZmZdd lmZdd
lmZdd lmZdd lmZd dlmZmZmZmZd dlmZmZm Z ddl!m"Z"ed<11><00>Z#ed<12><00>Z$ed<13><00>Z%ed<14><00>Z&ed<15><00>Z'd<16>Z(d<17>Z)d<18>Z*d<19>Z+d<1A>Z,ed<1B><00>Z-ed<1C><00>Z.ed<1D><00>Z/d<1E>Z0ed<1F><00>Z1ed <20><00>Z2y)!<21>N)<02> 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 <00><><00>tjj<00>jd<01>}tjj <00>}t
jj d<02><03>j <00>}t
jj d<04><03>j <00>}tj<00>j<00>td<05><06>z}t
jj |tj<00>j<00>d<07><08>j <00>}t|d |||||t<00>t<00>d
<EFBFBD><07>S) z Vue d'indexz-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)r<00>objects<74>all<6C>order_by<62>countr<00>filterr<00>now<6F>daterr
rr)<07>requestr&r'r(r)<00> date_limiter*s <20>0/home/fatima/modif/sirh/gestion_employe/views.py<70>indexr7s<00><00><17><EFBFBD><EFBFBD>"<22>"<22>$<24>-<2D>-<2D>.B<>C<>H<EFBFBD><1D>o<EFBFBD>o<EFBFBD>+<2B>+<2B>-<2D>O<EFBFBD><18><1F><1F>'<27>'<27>5I<35>'<27>J<>P<>P<>R<>J<EFBFBD><1A>?<3F>?<3F>)<29>)<29><EFBFBD>)<29>G<>M<>M<>O<>L<EFBFBD><1A>,<2C>,<2C>.<2E>%<25>%<25>'<27>)<29><12>*<<3C><<3C>K<EFBFBD><1E><EFBFBD><EFBFBD>-<2D>-<2D>!<21><1E>l<EFBFBD>l<EFBFBD>n<EFBFBD>)<29>)<29>+<2B><16>.<2E><06> <0C>e<EFBFBD>g<EFBFBD> <15> <12>'<27>7<><1C>*<2A> <20>$<24>,<2C>+<2B>-<2D>#<23> <0A>:<06> <07><07>c
<00><><00>tj<00>j<00>ttj
2026-04-29 14:34:00 +02:00
<00><01>z}t jj|tj<00>j<00>d<02><03>D<00>cgc]<5D>}|jjj<00>d|jjj<00><00>tt j<00>j|j <00>|j"|j$|j&|j(r|j(j*ndd<06><06><02><>}}t-|d<07><08>Scc}w) z Liste des contrats proches rr r!<00> <20>)<06>employer<00>
2026-04-29 12:44:26 +02:00
date_debut<EFBFBD>date_finr$<00>fichier_contratF<74><01>safe)rr2r3rr<00>DUREE_FIN_CONTRATrr-r1r<<00>user<65>
first_name<EFBFBD> last_name<6D>dict<63> TYPE_CONTRAT<41>getrr=r>r$r?<00>urlr )r4r5<00>contrat<61>contats_expirantss r6<00>liste_contrat_expirantsrL,s
<00><00><1B>,<2C>,<2C>.<2E>%<25>%<25>'<27>)<29>;O<>;a<>;a<>*b<>b<>K<EFBFBD> <10><0F><0F><1E><1E>[<5B><08> <0C> <0C><0E>H[<5B>H[<5B>H]<5D>fm<66><1E>n<> <06> <14>"<22>/<2F>/<2F>.<2E>.<2E>9<>9<>:<3A>!<21>G<EFBFBD>O<EFBFBD>O<EFBFBD><P<><P<><Z<><Z<>;[<5B>\<5C> <20><17>!5<>!5<>6<>:<3A>:<3A>7<EFBFBD>;O<>;O<>P<>!<21>,<2C>,<2C><1F>(<28>(<28><1D>n<EFBFBD>n<EFBFBD>>E<>>U<>>U<>w<EFBFBD>6<>6<>:<3A>:<3A>[]<5D> 
<EFBFBD> <06><15> <06> <18>)<29><05> 6<>6<><36> s<00>CEc
<00>P<00>|jdk(<00>rR|jjd<02>} tjj|<01><03>}t|j<00>}|j<00><00>r<>|jd}|jd}|jd}|jd }|r<>|r<>tjj|<02>
<EFBFBD>jtd<08><00> <0B>d xsd }||kr!t j |d<0E>td<05>S||j"kDr2t j |d|<05>d|j"<00>d<11><05>td<05>S||zdkDrBt j |d|j$<00>d|j&<00>d||z<00>d<16><07>td<05>Stjj)|||jd ||jd|d<18><04><19>t j*|d|j,j$<00>d|j,j&<00>d|j.<00>d<1C><07>td<05>St j|d<1D>td<05>Std<05>S#tj
$r$t j|d<04>td<05>cYSwxYw)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_affectationrXruPLa 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>rVrTrZrU)r<rS<00>defaultsu L'employé u a été affecté au projet <20>.zErreur : Formulaire non valide.)<18>methodrNrHrr-<00> DoesNotExistr<00>errorr r<00>is_valid<69> cleaned_datarr1<00> aggregater<00>warningr>rDrE<00>update_or_create<74>successrC<00>
nom_projet) r4<00>
employe_idr<<00>formrS<00>date_fin_affectation<6F> temps_nouveaurV<00>total_affectations r6<00>affecter_employe_projetrm@s<><00><00><0F>~<7E>~<7E><16><1F><1C>\<5C>\<5C>%<25>%<25>&;<3B><<3C>
<EFBFBD> 5<><1D>o<EFBFBD>o<EFBFBD>)<29>)<29>Z<EFBFBD>)<29>8<>G<EFBFBD>
<1F>w<EFBFBD>|<7C>|<7C>,<2C><04> <0F>=<3D>=<3D>?<3F><19>&<26>&<26>x<EFBFBD>0<>F<EFBFBD>#'<27>#4<>#4<>5L<35>#M<> <20> <20>-<2D>-<2D>.M<>N<>M<EFBFBD>#<23>0<>0<>1C<31>D<> <1C>$<24>)9<><1F>'<27>'<27>.<2E>.<2E>w<EFBFBD>.<2E>?<3F><1E>Y<EFBFBD>s<EFBFBD>Cb<43>?c<>Y<EFBFBD>d<>4<>6<>;<3B>9:<3A>"<22>
)<29>+;<3B>;<3B><1C>$<24>$<24>W<EFBFBD>/A<02>B<02>#<23>$;<3B><<3C><<3C>)<29>F<EFBFBD>O<EFBFBD>O<EFBFBD>;<3B><1C>$<24>$<24>W<EFBFBD>0Q<30>Rf<52>Qg<51>hZ<02>[a<02>[j<02>[j<02>Zk<02>km<02>/n<02>o<02>#<23>$;<3B><<3C><<3C>&<26><1D>6<><13><<3C><1C>$<24>$<24><1F>G<><07>HZ<48>HZ<48>G[<5B>[\<5C>]d<>]n<>]n<>\o<>p\<02>]n<02>q~<02>]~<02>\<02>B<03>C<03><16>$<24>$;<3B><<3C><<3C> <17> <1F> <1F> 0<> 0<><1F><1D>(,<2C>(9<>(9<>:L<>(M<>-A<> <20>-<2D>-<2D>f<EFBFBD>5<>5B<35> <12> 1<> <0E> <15> <1C> <1C>W<EFBFBD> <0B>G<EFBFBD>L<EFBFBD>L<EFBFBD>4K<34>4K<34>3L<33>A<EFBFBD>g<EFBFBD>l<EFBFBD>l<EFBFBD>Nd<4E>Nd<4E>Me<4D>fB<02>CI<02>CT<02>CT<02>BU<02>UV<02>'W<02> X<02><1B>3<>4<> 4<> <14>N<EFBFBD>N<EFBFBD>7<EFBFBD>$E<> F<><1B>3<>4<> 4<><17>/<2F>0<>0<><30>]<17>#<23>#<23> 5<> <14>N<EFBFBD>N<EFBFBD>7<EFBFBD>$I<> J<><1B>3<>4<> 4<> 5<>s<00> I.<00>.4J%<03>$J%c<00><><00> tjj|j<00><01>}tjj|d<04><05>j<00>}tjj|tj<00>j<00><00><06>jd<07>}t!|d||r<>it#|<02><00>t%tj&<00>j|j(<00>t%tj*<00>j|j,<00>|j.r|j.j0nd d
<EFBFBD><03>ngg|D<00>cgc]n}it#|j2<00><00>|j4|j6t%tj8<00>j|j:<00>|j<d <0B><04><01><02>pc}t?<00>|r|j@tBjDknd |r|j@d<0E><06>Sd d<0E><06>S#tj$r$t j |d<02>td<03>cYSwxYwcc}w)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__gterSzgestion_employe/monprofil.htmlr;)rr$r?r[FN)r<<00>contrats<74>projets<74>formation_form<72>expiration_contrat<61>contrat_nb_jours_restant)#rr-rHrCr_rr`r rr1<00>firstrrr2r3<00>select_relatedr
rrFrGr<00>STATUT_CONTRATr$r?rIrSrVrT<00> ROLE_CHOICESrZrUr<00>nombre_jours_restantrrB)r4r<rtru<00>as r6<00>
mon_profilrws<00><00>0<><19>/<2F>/<2F>%<25>%<25>W<EFBFBD>\<5C>\<5C>%<25>B<><07>
<17><EFBFBD><EFBFBD>%<25>%<25>g<EFBFBD>g<EFBFBD>%<25>F<>L<>L<>N<>H<EFBFBD><19>!<21>!<21>(<28>(<28><19>%-<2D>\<5C>\<5C>^<5E>%8<>%8<>%:<3A>)<29><06><15>n<EFBFBD>X<EFBFBD><1E> <0C>
<12><0F>(<28><1E> <1A> <0E><1F><08>)<29><0E> $<24>W<EFBFBD>%9<>%9<> :<3A> ><3E> ><3E>x<EFBFBD>?T<>?T<> U<><1E>w<EFBFBD>5<>5<>6<>:<3A>:<3A>8<EFBFBD>?<3F>?<3F>K<>CK<43>C[<5B>C[<5B>8<EFBFBD>#;<3B>#;<3B>#?<3F>#?<3F>ac<61> <0E>
"<22> #<23>#<23><0E><18> <12>#<23>A<EFBFBD>H<EFBFBD>H<EFBFBD>-<2D><12>()<29>(:<3A>(:<3A>-.<2E>-D<>-D<> <20><1B>!9<>!9<>:<3A>><3E>><3E>q<EFBFBD>v<EFBFBD>v<EFBFBD>F<>56<35>5T<35>5T<35> <12><0E>,<2C>o<EFBFBD>mu<6D>(<28>"?<3F>"?<3F>CW<43>Ci<43>Ci<43>"i<>|A<02>IQ<49><08>(E<>(E<>'
<EFBFBD> <06><06>,X\<01>'
<EFBFBD> <06><06><> <13> <1F> <1F>0<><10><0E><0E>w<EFBFBD>!s<02> t<02><17>.<2E>/<2F>/<2F>0<><30>*s<00>*H
<00>A3I<10>
4I<03>Ic<00><00>tjj|j<00><01>}|jdk(r<>|j
d}|j
d}|j
d}t ||j|<02><06><00>!tj|d<07>td
<EFBFBD>S||k7r!tj|d<08>td
<EFBFBD>S|j|<03>|j<00>tj|d <09>td
<EFBFBD>S) u_Vue pour permettre à un utilisateur de modifier son mot de passe et ses informations de profil<69><01>usernamerNz
ancien-mdpz nouveau-mdpzconfirmation-mdp)r<><00>passwordzAncien mot de passe incorrect.z'Les deux nouveaux ne correspondent pas.u#Mot de passe modifié avec succès.<2E>gestion_employe:mon-profil) rr-rHrCr^rNr rr`<00> set_password<72>saverfr )r4rC<00>
ancien_mdp<EFBFBD> nouveau_mdp<64>confirmation_mdps r6<00>modifier_mot_passer<65><00>s<><00><00> <10><<3C><<3C> <1B> <1B>W<EFBFBD>\<5C>\<5C> <1B> 2<>D<EFBFBD><0E>~<7E>~<7E><16><1F><1C>\<5C>\<5C>,<2C>/<2F>
<EFBFBD><1D>l<EFBFBD>l<EFBFBD>=<3D>1<> <0B>"<22><<3C><<3C>(:<3A>;<3B><18> <17><07>'<27>,<2C>,<2C><1A> L<> T<> <14>N<EFBFBD>N<EFBFBD>7<EFBFBD>$D<> E<> <14>0<> 1<>1<><19>,<2C> ,<2C> <14>N<EFBFBD>N<EFBFBD>7<EFBFBD>$M<> N<> <14>0<> 1<>1<> <11> <1D> <1D>k<EFBFBD> *<2A> <10>I<EFBFBD>I<EFBFBD>K<EFBFBD> <14> <1C> <1C>W<EFBFBD>&K<> L<> <13>0<> 1<>1r8c<00>$<00> tjj|j<00><01>}|j dk(<00>r/tj|j<00>}tjj|j<00><05>}|d|_ |d|_ |d|_ |d |_|d
|_|d |_|d rxt#t%j&<00>j)<00>t+j,|d d <0A>j)<00><00>}|j.dk\r |d |_n t ddi<01>S|j3<00>|j3<00>t ddi<01>Sy#tj$rt ddi<01>cYSwxYw)uOVue pour permettre à un utilisateur de modifier les informations d'un employéro<00>message<67>Employé non trouvé.rNr<><00>nom<6F>prenom<6F>email<69> telephone<6E>adresse<73>sexe<78>date_naissancez%Y-%m-%d<>z/Veuillez entrez une date de naissance correcte.u Profil mis à jour avec succès.N)rr-rHrCr_r r^<00>json<6F>loads<64>bodyrrErDr<>r<>r<>r<>rrr2r3r<00>strptime<6D>yearsr<73>r<>)r4r<<00>datarC<00>
2026-04-29 14:34:00 +02:00
differences r6<00>modifier_employerr<72><00>se<00><00>B<01><19>/<2F>/<2F>%<25>%<25>W<EFBFBD>\<5C>\<5C>%<25>B<><07><0F>~<7E>~<7E><16><1F><13>z<EFBFBD>z<EFBFBD>'<27>,<2C>,<2C>'<27><04><13>|<7C>|<7C><1F><1F><17><1C><1C><1F>6<><04><1D>e<EFBFBD><1B><04><0E><1E>x<EFBFBD>.<2E><04><0F><19>'<27>]<5D><04>
<EFBFBD> <20><1B>-<2D><07><19><1E>y<EFBFBD>/<2F><07><0F><1B>F<EFBFBD>|<7C><07> <0C> <10> <20> !<21>&<26>x<EFBFBD>|<7C>|<7C>~<7E>':<3A>':<3A>'<<3C>h<EFBFBD>>O<>>O<>PT<50>Ue<55>Pf<50>hr<68>>s<>>x<>>x<>>z<>{<7B>J<EFBFBD><19><1F><1F>2<EFBFBD>%<25>)-<2D>.><3E>)?<3F><07>&<26>#<23>Y<EFBFBD>0a<30>$b<>c<>c<><0F> <0C> <0C><0E> <0C> <09> <09> <0B><1B>Y<EFBFBD>(J<>K<>L<>L<>' <20><> <13> <1F> <1F>B<01><1B>Y<EFBFBD>(?<3F>@<40>A<>A<>B<01>s<00>*E,<00>, F<03>Fc<00><><00>tjj|j<00><01>}|jdk(<00>r d|j
2026-04-29 12:44:26 +02:00
vr|j
dn |j |_d|j
vr|j
dn |j|_d|j
vr|j
dn |j|_d|j
vr|j
2026-04-29 14:34:00 +02:00
dn |j|_ d|j
vr|j
dn |j|_
tj|d<08>|j<00>td <09>S)
NrorN<00>cv<63>photo<74>diplome<6D>rib<69>casier_judiciaireu$Documents enregistrés avec succès.r<>)rr-rHrCr^<00>FILES<45>CVr<56>r<>r<>r<>rrfr<>r )r4r<s r6<00>enregistrement_documentr<74><00>s
<00><00><15>o<EFBFBD>o<EFBFBD>!<21>!<21><17><1C><1C>!<21>><3E>G<EFBFBD><0E>~<7E>~<7E><16><1F>,0<>G<EFBFBD>M<EFBFBD>M<EFBFBD>,A<>W<EFBFBD>]<5D>]<5D>4<EFBFBD>(<28>w<EFBFBD>z<EFBFBD>z<EFBFBD><07>
<EFBFBD>29<EFBFBD>W<EFBFBD>]<5D>]<5D>2J<32><07> <0A> <0A>g<EFBFBD>.<2E>PW<50>P]<5D>P]<5D><07> <0A>6?<3F>7<EFBFBD>=<3D>=<3D>6P<36>'<27>-<2D>-<2D> <09>2<>V]<5D>Ve<56>Ve<56><07><0F>.3<EFBFBD>w<EFBFBD>}<7D>}<7D>.D<>g<EFBFBD>m<EFBFBD>m<EFBFBD>E<EFBFBD>*<2A>'<27>+<2B>+<2B><07> <0B>J]<5D>ah<61>an<61>an<61>Jn<4A>G<EFBFBD>M<EFBFBD>M<EFBFBD>2E<32>$F<>t{<7B>uN<02>uN<02><07>!<21><10><18><18><17>"H<>I<><0F> <0C> <0C><0E> <13>0<> 1<>1r8c<00>><00>tj|j<00>d} tjj |<01><02>}|j<00>tddi<01>S#tj $r(tj|d<03>tddid<05><06>cYSwxYw)u<Vue pour permettre à un utilisateur de supprimer un contratrQ)<01>numero_contratuContrat non trouvé.r<><00><><00><01>statusuContrat supprimé avec succès.) r<>r<>r<>rr-rHr_rr`r <00>delete)r4<00>
id_contratrJs r6<00>suppression_contratr<74><00>s<><00><00><15><1A><1A>G<EFBFBD>L<EFBFBD>L<EFBFBD>)<29>$<24>/<2F>J<EFBFBD>M<01><19>/<2F>/<2F>%<25>%<25>z<EFBFBD>%<25>B<><07>
 <0C>N<EFBFBD>N<EFBFBD><14> <17><19>$E<>F<> G<>G<><47> <13> <1F> <1F>M<01><10><0E><0E>w<EFBFBD> 6<>7<><1B>Y<EFBFBD>(><3E>?<3F><03>L<>L<>M<01>s<00> A!<00>!8B<03>Bc<00><00>tj|j<00>d} tjj |<01><02>}|j<00>tddi<01>S#tj $rtddid<05><06>cYSwxYw)uAVue pour permettre à un utilisateur de supprimer une affectationrQrPr<>uAffectation non trouvée.r<>r<>u$Affectation supprimée avec succès.) r<>r<>r<>rr-rHr_r r<>)r4<00>id_affectation<6F> affectations r6<00>suppression_affectationr<6E><00>s<><00><00><19>Z<EFBFBD>Z<EFBFBD><07> <0C> <0C>-<2D>d<EFBFBD>3<>N<EFBFBD>R<01>!<21>)<29>)<29>-<2D>-<2D><1E>-<2D>@<40> <0B><10><16><16><18> <17><19>$J<>K<> L<>L<><4C> <17> #<23> #<23>R<01><1B>Y<EFBFBD>(C<>D<>S<EFBFBD>Q<>Q<>R<01>s<00> A!<00>!"B<03>Bc<00>d<00> tjj|jjd<01><00><02>}|jdk(r<>t|j|j<00>}|j<00>rJ|jd<06><07>}||_ |j<00>t j|d<08>td <09>St j |d
<EFBFBD>ntd |i<01> <0C>}t|d d|i<01>S#tj$r$t j |d<03>td<04>cYSwxYw)uJVue pour permettre à un utilisateur de créer un contrat pour un employérhrPr<>z employe-indexrNF<><01>commituContrat créé avec succès.rRzFormulaire non valider<)<01>initialr%r,)rr-rHrNr_rr`r r^rr<>rar<>r<rfr
)r4r<rirJs r6<00>creation_contratr<74><00>s<><00><00>)<29><19>/<2F>/<2F>%<25>%<25><17><1C><1C>)9<>)9<>,<2C>)G<>%<25>H<><07>
2026-04-29 12:44:26 +02:00
<0F>~<7E>~<7E><16><1F><1A>7<EFBFBD><<3C><<3C><17><1D><1D>7<><04> <0F>=<3D>=<3D>?<3F><1A>i<EFBFBD>i<EFBFBD>u<EFBFBD>i<EFBFBD>-<2D>G<EFBFBD>%<25>G<EFBFBD>O<EFBFBD> <13>L<EFBFBD>L<EFBFBD>N<EFBFBD> <14> <1C> <1C>W<EFBFBD>&D<> E<><1B>3<>4<> 4<><10><0E><0E>w<EFBFBD> 7<>8<><1A>I<EFBFBD>w<EFBFBD>#7<>8<><04> <11>'<27>7<>.<2E>$<24>9O<39> P<>P<><50> <13> <1F> <1F>)<29><10><0E><0E>w<EFBFBD> 7<>8<><17><0F>(<28>(<28>)<29>s<00>9C8<00>84D/<03>.D/c<00><><00>|jdk(r~tj|j<00>} tj
j |d<00><03>}|d|_ |d |_
|d
2026-04-29 14:34:00 +02:00
|_ |j<00>td d i<01>Std d id<0E><07>S#tj$rtddid<06><07>cYSwxYw)uaVue pour permettre à un utilisateur de modifier les détails d'un employé via une requête AJAXrNrQrPr`r<>r<>r<><00>fonction<6F> date_embauche<68> matriculer<65>u0Détails de l'employé mis à jour avec succès.uMéthode non autorisée.i<>) r^r<>r<>r<>rr-rHr_r r<>r<>r<>r<>)r4r<>r<s r6<00>enregistrer_detail_employer<65> s<><00><00><0F>~<7E>~<7E><16><1F><13>z<EFBFBD>z<EFBFBD>'<27>,<2C>,<2C>'<27><04> P<01><1D>o<EFBFBD>o<EFBFBD>)<29>)<29>T<EFBFBD>$<24>Z<EFBFBD>)<29>8<>G<EFBFBD> <20>
2026-04-29 12:44:26 +02:00
<EFBFBD>+<2B><07><18> $<24>_<EFBFBD> 5<><07><1D> <20><1B>-<2D><07><19><0F> <0C> <0C><0E><1B>Y<EFBFBD>(Z<>[<5B>\<5C>\<5C><1B>Y<EFBFBD>(B<>C<>C<EFBFBD>P<>P<><50><17>#<23>#<23> P<01><1F><17>*A<> B<>3<EFBFBD>O<> O<> P<01>s<00>#B<00>"C<03>Cc <00>X<00>tjjdd<01><02>}g}|D<00>]<5D>}|jjdk7s<01>|jj
dk7s<01>8dj tjj|tj<00>j<00><00><05>D<00>cgc]}|jj<00><02>c}<04>g}tjj|<03><06>D<00>cgc]_}|j|j |j"|j$|j&|j(r|j(j*ndd<07><06><02>a}}t,jj|d<08> <09>D<00>cgc]j}|j.|j0|j2|j&|j4|j6|j8r|j8j*ndd
<EFBFBD><07><02>l} }tjj|tj<00>j<00><00><05>D<00>
cgc]'}
it;|
<EFBFBD><00>d |
jji<01><01><02>)} }
|j=id |j><00>d |jj<00>d|jj
<00><00><03>d|j@<00>d|jjB<00>d|<07>d| <0B>d |<05>d| <09>d|jDr|jDjFnd<01>d|jH<00>d|jJ<00>d|jL<00>d|jN<00>d|jP<00>d|jRr|jRj*nd<01>d|jTr|jTj*nd<01>d|jVr|jVj*nd<01>|jXr|jXj*nd|jZr|jZj*nd|j\d<1C><03><01><00><03><>t_d|d<1E>d<1F> <20>Scc}wcc}wcc}wcc}
w)!u3 Vue pour retourner la liste de tous les employés r;)<02>user__first_name<6D>user__last_namer:z, rrrW)<06>titre<72> organisme<6D> description<6F>date_obtentionr><00>
2026-04-29 14:34:00 +02:00
certificatr rq)r<>rr=r><00>salaire_mensuelr$r?rSrQr<r<>r<><00>
formations<EFBFBD> affectationsrt<00> departementr<74>r<>r<>r<>r<>r<>r<>r<>)r<>r<>r<>T)rfr<>Fr@)0rr-<00>excluderCrDrE<00>joinrr1rr2r3rSrgrr<>r<>r<>r<>r>r<>rIrr<>rr=r<>r$r?r<00>appendrQr<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r ) r4r&r<>r<r~ru<00> formationr<6E>rJrtr<>r<>s r6<00> liste_employer<65>s<><00><00><17><EFBFBD><EFBFBD>&<26>&<26>"<22>PR<50>&<26>S<>H<EFBFBD> <0A>D<EFBFBD><1B>@<0E><07> <12><<3C><<3C> "<22> "<22>c<EFBFBD> )<29>g<EFBFBD>l<EFBFBD>l<EFBFBD>.D<>.D<><03>.K<><14> <09> <09>1<<3C>1D<31>1D<31>1K<31>1K<31> '<27>3;<3B><<3C><<3C>><3E>3F<33>3F<33>3H<33>2L<01>2<16><12>,-<2D>A<EFBFBD>H<EFBFBD>H<EFBFBD>'<27>'<27><12><13><0E>G<EFBFBD> $-<2D>#4<>#4<>#;<3B>#;<3B>G<EFBFBD>#;<3B>#L<> <0E> <20> '<27>_<EFBFBD>_<EFBFBD>!*<2A>!4<>!4<>#,<2C>#8<>#8<>&/<2F>&><3E>&><3E> )<29> 2<> 2<>>G<>>R<>>R<>)<29>"6<>"6<>":<3A>":<3A>XZ<58> <12> <0E>J<EFBFBD> <0E>(")<29><1F><1F>!7<>!7<><07>PW<50>!7<>!X<>
2026-04-29 12:44:26 +02:00
<0E><1E>'.<2E>&<<3C>&<<3C>$+<2B>$8<>$8<>")<29>"4<>"4<> '<27> 0<> 0<>'.<2E>'><3E>'><3E>%<25>n<EFBFBD>n<EFBFBD>FM<46>F]<5D>F]<5D>w<EFBFBD>'><3E>'><3E>'B<>'B<>ce<63><12>
<0E>H<EFBFBD>
<0E>$/<2F>#6<>#6<>#=<3D>#=<3D>#<23>/7<>|<7C>|<7C>~<7E>/B<>/B<>/D<>$><3E>$<12><0E><1F>X<01>=<3D><1B>-<2D>W<>x<EFBFBD><1B>9K<39>9K<39>9V<39>9V<39>W<><0E>L<EFBFBD><0E> <11>K<EFBFBD>K<EFBFBD><12><18>'<27>*<2A>*<2A><12><1D>'<27>,<2C>,<2C>"9<>"9<>!:<3A>!<21>G<EFBFBD>L<EFBFBD>L<EFBFBD><R<><R<>;S<>T<><12> <20><17>!2<>!2<><12><1C>W<EFBFBD>\<5C>\<5C>/<2F>/<2F> <12>
!<21>*<2A> <12> #<23>L<EFBFBD> <12><1D>g<EFBFBD><12><1F><08><12>"<22>g<EFBFBD>>Q<>>Q<>7<EFBFBD>#6<>#6<>#:<3A>#:<3A>WY<57><12><1F><07> 0<> 0<><12>$<24>W<EFBFBD>%:<3A>%:<3A><12><1E>w<EFBFBD><EFBFBD><EFBFBD><12> <20><17>!2<>!2<><12><1B>G<EFBFBD>L<EFBFBD>L<EFBFBD><12><19>G<EFBFBD>J<EFBFBD>J<EFBFBD>'<27>*<2A>*<2A>.<2E>.<2E>B<EFBFBD><12> <1E>g<EFBFBD>o<EFBFBD>o<EFBFBD>w<EFBFBD><EFBFBD><EFBFBD>2<>2<>2<EFBFBD>!<12>"<1A>g<EFBFBD>k<EFBFBD>k<EFBFBD>7<EFBFBD>;<3B>;<3B>?<3F>?<3F>r<EFBFBD>#<12>$3:<3A>-<2D>-<2D>W<EFBFBD>]<5D>]<5D>.<2E>.<2E>R<EFBFBD>JQ<4A>Jc<4A>Jc<4A><17>)B<>)B<>)F<>)F<>ik<69>&-<2D>&<<3C>&<<3C>)<12> <0E>S@<0E>B <18>D<EFBFBD>$<24>7<>e<EFBFBD> D<>D<><44>}<12><> <0E><>
<0E><>s<00>,P
<EFBFBD>3A$P<06><A/P"<06>0,P'c<00><><00>tjj|j<00><01>}|jdk(r<>t |j |j<00>}|j<00>rJ|jd<03><04>}||_
2026-04-29 14:34:00 +02:00
|j<00>tj|d<05>td<06>Stj|d<07>td<06>S)uGVue pour permettre à un employé d'ajouter une formation à son profilrorNFr<46>u Formation ajoutée avec succès r<><00>CFormulaire non valide. Veuillez vérifier les informations saisies.)rr-rHrCr^rrNr<>rar<>r<rrfr r`)r4r<r<><00> ma_formations r6<00>ajouter_formationr<6E>ds<><00><00><16>o<EFBFBD>o<EFBFBD>!<21>!<21><17><1C><1C>!<21>><3E>G<EFBFBD><0E>~<7E>~<7E><16><1F>!<21>'<27>,<2C>,<2C><07> <0A> <0A>><3E> <09> <14> <1D> <1D> <1F>$<24>><3E>><3E><15>><3E>7<>L<EFBFBD>#*<2A>L<EFBFBD> <20> <18> <1D> <1D> <1F> <14> <1C> <1C>W<EFBFBD>&H<> I<><1B>8<>9<> 9<><10><0E><0E>w<EFBFBD> e<>f<> <13>0<> 1<>1r8c <00><00>tjj|j<00><01>j d<02>}t |D<00>cgc]5}it |<02><00>d|jr|jjndi<01><01><02>7c}d<05><06>Scc}w)N)<01>employe__user__usernamez-date_obtentionr<6E>r;Fr@) rr-r1rCr/r rr<>rI)r4r<>r<>s r6<00>liste_formationr<6E>ss<><00><00><1A>"<22>"<22>)<29>)<29>'<27>,<2C>,<2C>)<29>O<>X<>X<>Yj<59>k<>J<EFBFBD> <17>
2026-04-29 12:44:26 +02:00
$<24> <06>
<16> 
<EFBFBD><1B>I<EFBFBD>&<26>
<EFBFBD> <18>i<EFBFBD>6J<36>6J<36>)<29>.<2E>.<2E>2<>2<>PR<50>
2026-04-29 14:34:00 +02:00
<EFBFBD><06> <12>  <13><13><>s<00>:Bc<00><><00> tjj||j<00><01>}|jdk(rnt|j|j|<02><05>}|j<00>r&t j|d<06>|j<00>t j |d<07>td<03>S#tj$r$t j |d<02>td<03>cYSwxYw)uIVue pour permettre à un employé de modifier une formation de son profil<69>rQr&<00>Formation non trouvée.<2E>mes_formationsrN)<01>instanceuFormation mise à jour r<>)rr-rHrCr_rr`r r^rrNr<>rarfr<><00>r4<00> id_formationr<6E>s r6<00>modifier_formationr<6E>}s<><00><00>*<2A><1D>%<25>%<25>)<29>)<29>\<5C>G<EFBFBD>L<EFBFBD>L<EFBFBD>)<29>Q<> <09>
<0F>~<7E>~<7E><16><1F>!<21>'<27>,<2C>,<2C><07> <0A> <0A> <09>R<> <09> <14> <1D> <1D> <1F> <14> <1C> <1C>W<EFBFBD>&?<3F> @<40> <15>N<EFBFBD>N<EFBFBD> <1C><10><0E><0E>w<EFBFBD> e<>f<> <13>$<24> %<25>%<25><> <15> !<21> !<21>*<2A><10><0E><0E>w<EFBFBD> 9<>:<3A><17>(<28>)<29>)<29>*<2A>s<00>+B5<00>54C,<03>+C,c<00>N<00> tjj||j<00><01>}|jdk(r&|j<00>t j|d<05>td<03>S#tj$r$t j |d<02>td<03>cYSwxYw)uJVue pour permettre à un employé de supprimer une formation de son profilr<6C>r<>r<>rNuFormation supprimée ) rr-rHrCr_rr`r r^r<>rfr<>s r6<00>supprimer_formationr<6E><00>s<><00><00>*<2A><1D>%<25>%<25>)<29>)<29>\<5C>G<EFBFBD>L<EFBFBD>L<EFBFBD>)<29>Q<> <09>
2026-04-29 12:44:26 +02:00
<0F>~<7E>~<7E><16><1F><11><18><18><1A><10><18><18><17>"9<>:<3A> <13>$<24> %<25>%<25><> <15> !<21> !<21>*<2A><10><0E><0E>w<EFBFBD> 9<>:<3A><17>(<28>)<29>)<29>*<2A>s<00>+A-<00>-4B$<03>#B$)3r<33>rr<00>dateutil.relativedeltar<00> django.utilsr<00>django.contribr<00>django.contrib.auth.modelsr<00>django.contrib.authr <00>django.shortcutsr
2026-04-29 14:34:00 +02:00
r <00>django.contrib.auth.decoratorsr <00> django.httpr <00>django.forms.modelsr<00>django.db.modelsr<00>modelsrrrr<00>formsrrr<00>fonction_utilitairerr7rLrmrr<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<><00>r8r6<00><module>r<>s)<00><01> <0B>(<28>0<>!<21>#<23>+<2B>,<2C>-<2D>9<>$<24>-<2D> <20><<3C><<3C>><3E>><3E>4<><0F><07><10><07>.<10>7<><10>7<>&<10>41<><10>41<>l<10>&<06><10>&<06>P<10>2<><10>2<>(M<01>6 2<>
2026-04-29 12:44:26 +02:00
H<01> M<01>Q<01>*<10>Q<01><10>Q<01>"<10>FE<01><10>FE<01>P<10> 2<><10> 2<><13><10>&<26><10>&<26>"<10> &<26><10> &r8