Files
sirh/gestion_projet/__pycache__/models.cpython-313.pyc

110 lines
21 KiB
Plaintext
Raw Normal View History

2026-04-27 10:17:10 +00:00
<EFBFBD>
<00><> ib><00><00><><00>SSKJr SSKJr SSKJr SSKJr SSKJrJr SSK J
r
"SS\R5r "S S
\R5r SS KJr /S Qr"S S\R5r"SS\R5rSSKJr SSKJr SSKJr "SS\R5r"SS\R5r"SS\R5r"SS\R5r\
"\\/\S9S5rg)<1D>)<01>models)<01>date)<01>datetime)<01>timezone)<02> post_save<76> post_delete)<01>receiverc<00><><00>\rSrSr\R
"SSS9r\R
"SSS9r\R"SS9r \R
"SSS9r
\ S5r S r S
rg ) <0C>Bailleur<75> <00><>T)<02>
max_length<EFBFBD>unique<75>d)r<00>blank<6E>rc<00><><00>URR5Vs/sH$oRRUR4PM& sn$s snf<00>N)<05> financements<74>all<6C>bailleur<75>nom<6F> pourcentage)<02>self<6C>fs <20>:C:\Users\ALL AtoZ\Desktop\DD\SIRH\gestion_projet\models.py<70>bailleurs_financeurs<72>Bailleur.bailleurs_financeurss:<00><00>9=<3D>9J<39>9J<39>9N<39>9N<39>9P<39>Q<>9P<39>A<EFBFBD><1A><1A><1E><1E><11><1D><1D>/<2F>9P<39>Q<>Q<><51>Qs<00>+A c<00><00>UR$r<00>r<00>rs r<00>__str__<5F>Bailleur.__str__<00> <00><00><13>x<EFBFBD>x<EFBFBD><0F><00>N)<0F>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__firstlineno__r<00> CharFieldr<00>contact<63>
EmailField<EFBFBD>email<69>pays<79>propertyrr"<00>__static_attributes__r&r%rr r sa<00><00>
<10>
<1A>
<1A>c<EFBFBD>$<24>
7<EFBFBD>C<EFBFBD><14><1E><1E>#<23>T<EFBFBD>:<3A>G<EFBFBD> <12> <1D> <1D>D<EFBFBD> )<29>E<EFBFBD> <11> <1B> <1B>s<EFBFBD>$<24> 7<>D<EFBFBD> <0A>R<01><0E>R<01>r%r c<00><><00>\rSrSr\R
"S\R SS9r\R
"S\R S9r\R"SSS 9r
"S
S 5r S r S r g)<0F>FinancementProjet<65><00>Projetr<00><02> on_delete<74> related_namer )r7<00><00><00><02>
max_digits<EFBFBD>decimal_placesc<00><00>\rSrSrSrSrg)<05>FinancementProjet.Meta<74>)<02>projetrr&N)r'r(r)r*<00>unique_togetherr1r&r%r<00>Metar?s<00><00>0<>r%rCc<00>z<00>URRSURSURR3$)Nz - z% pour )rrrrA<00>
nom_projetr!s rr"<00>FinancementProjet.__str__ s6<00><00><16>-<2D>-<2D>#<23>#<23>$<24>C<EFBFBD><04>(8<>(8<>'9<><17><14><1B><1B>AW<41>AW<41>@X<>Y<>Yr%r&N)r'r(r)r*r<00>
ForeignKey<EFBFBD>CASCADErAr<00> DecimalFieldrrCr"r1r&r%rr3r3sS<00><00> <13> <1E> <1E>x<EFBFBD>6<EFBFBD>><3E>><3E>P^<5E> _<>F<EFBFBD><15> <20> <20><1A>v<EFBFBD>~<7E>~<7E>F<>H<EFBFBD><18>%<25>%<25><11>1<EFBFBD>E<>K<EFBFBD>1<>1<>
Zr%r3)<01>MultiSelectField<6C>)<02> laboratoire<72> Laboratoire)<02>épidémiologieuÉpidémiologie<69>zsciences socialeszSciences sociales)<02> cliniques<65> Cliniques<65><02>autre<72>Autrec<00><00>\rSrSr\R
"\\RSSS9r\R"SSSS9r
\R"SS9r \R"5r \R"5r\R"5r\R"SS9r\R"S/SQS S
9r\R"S/S QS S
9r\R("SS S9r\R("SS S9r\R."SS9r\"\SS9r\S5rSr\S5rSr g)r5<00>.T)r7<00>nullrr)rrrr <00>rrKrN<00>r<00>choices<65>default)rO)<02>
naturelles<EFBFBD>
Naturelles)<02>humaines<65>Humaines)uvétérinairesuVétérinairesr\r:r;<00><01> auto_now_add)rZrc<00>L<00>UR[R"5:agg)N<>Terminé<6E>En cours)<03>date_finr<00>todayr!s r<00>statut<75> Projet.statutUs<00><00> <0F>=<3D>=<3D>4<EFBFBD>:<3A>:<3A><<3C> '<27><1D>r%c<00> <00>URS3$)N<> )rEr!s rr"<00>Projet.__str__[s<00><00><16>/<2F>/<2F>"<22>!<21>$<24>$r%c<00>^<00>[R"5nUR(a<>UR(avURUR:a\URUR-
RnXR-
RnUS:<3A>a[ [ X2- S-S5S5$g)Nrr)rrf<00>
date_debutre<00>days<79>min<69>max)r<00> aujourd_hui<75>total<61>écoulés r<00>
avancement<EFBFBD>Projet.avancement]sy<00><00><1A>j<EFBFBD>j<EFBFBD>l<EFBFBD> <0B> <0F>?<3F>?<3F>t<EFBFBD>}<7D>}<7D><14><1F><1F>4<EFBFBD>=<3D>=<3D>1P<31><19>]<5D>]<5D>T<EFBFBD>_<EFBFBD>_<EFBFBD>4<>:<3A>:<3A>E<EFBFBD>#<23>o<EFBFBD>o<EFBFBD>5<>;<3B>;<3B>H<EFBFBD><14>q<EFBFBD>y<EFBFBD><1A>3<EFBFBD><08> 0<>C<EFBFBD>7<><11>;<3B>S<EFBFBD>A<>A<>r%r&N)!r'r(r)r*rrGr <00>SET_NULLrr+<00> id_projetrE<00> DateFieldrmre<00> TextField<6C> description<6F>numero_convention<6F> type_projet<65>domaine_rechercherI<00>budget<65> budget_RH<52> DateTimeField<6C>
created_atrJ<00>VOLETS_CHOICES<45>voletsr0rgr"rtr1r&r%rr5r5.s(<00><00><15> <20> <20><18>V<EFBFBD>_<EFBFBD>_<EFBFBD>4<EFBFBD>W[<5B>\<5C>H<EFBFBD><16> <20> <20>C<EFBFBD>t<EFBFBD>D<EFBFBD>I<>I<EFBFBD><17>!<21>!<21>S<EFBFBD>1<>J<EFBFBD><17>!<21>!<21>#<23>J<EFBFBD><15><1F><1F>!<21>H<EFBFBD><18>"<22>"<22>$<24>K<EFBFBD><1E>(<28>(<28>C<EFBFBD>8<><15><18>"<22>"<22><16>
<EFBFBD>"<22>
<06>K<EFBFBD><1F>(<28>(<28><16>
<EFBFBD> <1D> <06><15> <12> <1E> <1E>#<23>Q<EFBFBD> ?<3F>F<EFBFBD><14>!<21>!<21>S<EFBFBD><01>B<>I<EFBFBD><17>%<25>%<25>4<EFBFBD>8<>J<EFBFBD><1E>n<EFBFBD>D<EFBFBD> A<>F<EFBFBD><0E><1A><0E><1A>
%<25> <0A><11><0E>r%r5c<00>T<00>\rSrSr\R
"S\R SS9r/SQr\R"SS9r
\R"S\S S
9r \R"SS 9r\R"SS9r
\R"SSSS 9r\R "SSS 9r\R$"SS9rSr\S5rSrg)<14>DocumentProjet<65>jr5<00> documentsr6) )<02> protocoleuProtocole détude)<02>ethiqueu!Approbation du comité d'éthique)<02> autorisationzAutorisation (DNLP))<02>rapport_techniquezRapport technique)<02>rapport_financierzRapport financier)<02>rappotrt_avancementzRapport d'avancement)<02>
convention<EFBFBD>
Convention)<02> rapport_finalz Rapport finalrRTr`rrSrYr<00>rrrW<00>rrWzdocuments_projets/)<01> upload_toc<00>B<00>UR5SURS3$<00>N<> (<28>))<02>get_nom_document_displayrAr!s rr"<00>DocumentProjet.__str__<5F>s#<00><00><16>/<2F>/<2F>1<>2<>"<22>T<EFBFBD>[<5B>[<5B>M<EFBFBD><11>C<>Cr%c<00> <00>URS:H$)Nr<4E>)<01> nom_documentr!s r<00>est_document_ethique<75>#DocumentProjet.est_document_ethique<75>s<00><00><13> <20> <20>I<EFBFBD>-<2D>-r%r&N)r'r(r)r*rrGrHrA<00>NOM_DOCUMENT_CHOICESr<53><00>
date_ajoutr+r<>ryrz<00>numerorx<00> date_validite<74> FileField<6C>fichierr"r0r<>r1r&r%rr<>r<>js<><00><00> <13> <1E> <1E><10><18>.<2E>.<2E> <20><06>F<EFBFBD>
<06><18><18>%<25>%<25>4<EFBFBD>8<>J<EFBFBD><19>#<23>#<23><16>$<24><17><06>L<EFBFBD>
<19>"<22>"<22><14>.<2E>K<EFBFBD><17>%<25>%<25>4<EFBFBD>8<>J<EFBFBD> <13> <1D> <1D><13>D<EFBFBD>t<EFBFBD> D<>F<EFBFBD><1A>$<24>$<24>4<EFBFBD>d<EFBFBD>;<3B>M<EFBFBD><14><1E><1E>)=<3D>><3E>G<EFBFBD>D<01><0E>.<2E><0E>.r%r<>)<01> timedeltac<00>X^<00>\rSrSr\R
"\\RSSS9r\R"SS9r
\R"SS9r \R"5r\R"5r\R"SSS9r\R"SSS9r/S Qr\R"S
\S S S 9rU4SjrSrU=r$)<10>PlanningChefProjet<65><74><00> planningsT)r7r8rr rXrr<>)<04>rdrd<00>rcrc)<02>À venirr<72>)<02> En retardr<64><00>r<>F<>rrZr[<00>editablec<00>><01>[R"5R5n[UR[
5(a4[ R"URS5R5Ul[UR[
5(a4[ R"URS5R5UlX0R:aSUl O<>URUs=::aUR::a O OSUl OmX0R:<3A>a^URRRUS9nUR5(a[SU55(aSUl OSUl [TU]@"U0UD6 g)Nz%Y-%m-%dr<64>rd)<01>planningc3<00>># <00>UHoRS:Hv<00> M g7f)rcN<>rg)<02>.0<EFBFBD>as r<00> <genexpr><3E>*PlanningChefProjet.save.<locals>.<genexpr><3E>s<00><00><00>)T<>)<29>Q<EFBFBD>(<28>(<28>j<EFBFBD>*@<40>)<29>s<00>rcr<>)r<00>nowr<00>
isinstancerm<00>strr<00>strptimerergrA<00> activites<65>filter<65>existsr<00>super<65>save)r<00>args<67>kwargsrfr<><00> __class__s <20>rr<><00>PlanningChefProjet.save<76>s<00><><00><18> <0C> <0C><0E>#<23>#<23>%<25><05> <16>d<EFBFBD>o<EFBFBD>o<EFBFBD>s<EFBFBD> +<2B> +<2B>&<26>/<2F>/<2F><04><0F><0F><1A>L<>Q<>Q<>S<>D<EFBFBD>O<EFBFBD> <15>d<EFBFBD>m<EFBFBD>m<EFBFBD>S<EFBFBD> )<29> )<29>$<24>-<2D>-<2D>d<EFBFBD>m<EFBFBD>m<EFBFBD>Z<EFBFBD>H<>M<>M<>O<>D<EFBFBD>M<EFBFBD> <11>?<3F>?<3F> "<22>$<24>D<EFBFBD>K<EFBFBD> <11>_<EFBFBD>_<EFBFBD><05> 6<><14><1D><1D> 6<>$<24>D<EFBFBD>K<EFBFBD> <12>]<5D>]<5D> "<22><1C> <0B> <0B>-<2D>-<2D>4<>4<>d<EFBFBD>4<>C<>I<EFBFBD><18><1F><1F>!<21>!<21>c<EFBFBD>)T<>)<29>)T<>&T<>&T<>(<28><04> <0B>)<29><04> <0B> <0A><07> <0C>d<EFBFBD>%<25>f<EFBFBD>%r%)rmrerg)r'r(r)r*rrGr5rHrAr+<00>titreryrzrxrmre<00> date_reelle<6C>motif<69>STATUT_CHOICESrgr<>r1<00> __classcell__<5F>r<>s@rr<>r<><00>s<><00><><00> <13> <1E> <1E>v<EFBFBD><16><1E><1E>k<EFBFBD>ae<61> f<>F<EFBFBD> <12> <1C> <1C><03> ,<2C>E<EFBFBD><18>"<22>"<22><14>.<2E>K<EFBFBD><17>!<21>!<21>#<23>J<EFBFBD><15><1F><1F>!<21>H<EFBFBD><18>"<22>"<22><14>D<EFBFBD>9<>K<EFBFBD> <12> <1C> <1C>4<EFBFBD>d<EFBFBD> 3<>E<EFBFBD><06>N<EFBFBD> <14> <1D> <1D><12>^<5E>Z<EFBFBD>bg<62> h<>F<EFBFBD>&<26>&r%r<>c<00><><00>\rSrSr\R
"S\R SS9r\R
"S\R SS9r\R"5r
\R"SS9r S r S
rg ) <0C>Reunion<6F><6E>r<><00>reunionsr6<00>ActiviteProjet<65> reunion_setF<74>r[c<00>P<00>SURRSURS3$)Nu Réunion r<>r<>)<03>activiter<65>rr!s rr"<00>Reunion.__str__<5F>s&<00><00><1A>4<EFBFBD>=<3D>=<3D>.<2E>.<2E>/<2F>r<EFBFBD>$<24>)<29>)<29><1B>A<EFBFBD>><3E>>r%r&N)r'r(r)r*rrGrHr<>r<>rxr<00> BooleanField<6C>notification_envoyeer"r1r&r%rr<>r<><00>sZ<00><00><15> <20> <20>!5<><16><1E><1E>^h<>i<>H<EFBFBD><15> <20> <20>!1<>V<EFBFBD>^<5E>^<5E>Zg<5A>h<>H<EFBFBD> <11> <1B> <1B> <1D>D<EFBFBD>!<21>.<2E>.<2E>u<EFBFBD>=<3D><18>?r%r<>c<00>r^<00>\rSrSr\R
"SS9r\R"SSS9r\R"SSSS9r \R"5r \R"SSS9r \R"SSS9r \R
"SSSS9r\R"S S
S 9r\R""S S 9r\R&"S SS SS9r\R&"S SS SS9r\R,"S\R.SS9r\R,"S\R.SSSS9r\R4"SSS 9r\R4"SSS 9r\R4"SSS 9r\R4"SSS 9r\R
"S/SQSSS9r\R@"SSSS 9r!S!r"\R
"S"/S#QS$SS%9r#S&r$S'r%U4S(jr&\'S)5r(\'S*5r)\'S+5r*\'S,5r+S-r"S.r,U=r-$)/r<><00><><00><>rXTr<54>uDétails / Observations)rrW<00> verbose_namer<65>rzNombre de livrables attendus)r[r<>r<><00>r:u Budget prévu)r<r=r[r<>uBudget dépensér5r<>r6r<>)r7r8rrWFu!Besoin de ressources financièreszBesoin de ressources humainesu!Besoin de ressources matériellesuCest une réunion ?r<>))<02> Hebdomadairer<65>)<02> Mensueller<65>)<02> Bimensueller<65>)<02> Quotidienner<65>)rTrT)rrZrrWz0=Lundi, 6=Dimanche)rrW<00> help_textc<00>N<00>URSURRS3$r<><00>r<>rArEr!s rr"<00>ActiviteProjet.__str__<5F><00>$<00><00><16>*<2A>*<2A><1C>R<EFBFBD><04> <0B> <0B> 6<> 6<>7<>q<EFBFBD>9<>9r%<00>)<05><02>Prévur<75>r<>r<><00><02>Retardr<64>)<02>Terminé en Retardr<64>r<>r<>c<00> <00>URR5R5 URnXR::GaJUR
S:XaGUR 5UR:Xa)[RRURUS9 O<>UR
S:XaCURUR:Xa)[RRURUS9 O<>UR
S:Xa9URS;a)[RRURUS9 O8UR
S:Xa([RRURUS9 U[SS9- nXR::aGMIg g )
u8Créer automatiquement les réunions selon la fréquencer<65>)r<>rr<>r<>)<02>r<>r<>r<>)rnN)r<>r<00>deletermre<00> type_reunion<6F>weekday<61> jour_reunionr<6E><00>objects<74>creater<65><00>dayr<79>)r<00> date_currents r<00>generer_reunions<6E>ActiviteProjet.generer_reunions
s)<00><00> <0C><18><18><1C><1C><1E>%<25>%<25>'<27><1B><EFBFBD><EFBFBD> <0C><1A>m<EFBFBD>m<EFBFBD>+<2B><13> <20> <20>N<EFBFBD>2<>|<7C>7K<37>7K<37>7M<37>QU<51>Qb<51>Qb<51>7b<37><17><0F><0F>&<26>&<26><04> <0A> <0A>L<EFBFBD>&<26>Q<><15>"<22>"<22>k<EFBFBD>1<>l<EFBFBD>6F<36>6F<36>$<24>J[<5B>J[<5B>6[<5B><17><0F><0F>&<26>&<26><04> <0A> <0A>L<EFBFBD>&<26>Q<><15>"<22>"<22>m<EFBFBD>3<> <0C>8H<38>8H<38>G<EFBFBD>8S<38><17><0F><0F>&<26>&<26><04> <0A> <0A>L<EFBFBD>&<26>Q<><15>"<22>"<22>m<EFBFBD>3<><17><0F><0F>&<26>&<26><04> <0A> <0A>L<EFBFBD>&<26>Q<> <18>I<EFBFBD>1<EFBFBD>-<2D> -<2D>L<EFBFBD><1B>m<EFBFBD>m<EFBFBD>+<2B>+r%c<00><><00>URnURRSS/S9R5nUS:XaSUlO[ X!- S-S5UlUR 5 g)u{
Calcule le pourcentage de réalisation d'une activité
uniquement en fonction du nombre de livrables attendus et livrés.
rc<00>livré en Retard)<01>
statut__inrrr:N)<07>nombre_livrables_attendus<75> livrablesr<73><00>count<6E>pourcentage_realisation<6F>roundr<64>)r<00>total_attendus<75>livrables_livress r<00> calculer_pourcentage_realisation<6F>/ActiviteProjet.calculer_pourcentage_realisationsk<00><00>
<1E>7<>7<><0E><1F>><3E>><3E>0<>0<>Z<EFBFBD>I[<5B><\<5C>0<>]<5D>c<>c<>e<><18> <1A>Q<EFBFBD> <1E>+,<2C>D<EFBFBD> (<28>+0<>2B<32>2S<32>WZ<57>1Z<31>\]<5D>+^<5E>D<EFBFBD> (<28> <0C> <09> <09> r%c<00><>><01>[R"5nURS:XaSUlO<>UR(a(URU:aURS:XaSUlOiUR(a(URU:aURS:waSUlO0UR
(aUR
U:<3A>aSUlOSUl[ TU]"U0UD6 g) uHMet à jour automatiquement le statut selon les dates et lavancement.rrcrr<><00>Terminé (livrables en attente)r<>rdN)rrfr<>rgrermr<>r<><00>rr<>r<>rfr<>s <20>rr<><00>ActiviteProjet.save+s<><00><><00><14>
<EFBFBD>
<EFBFBD> <0C><05> <0F> '<27> '<27>3<EFBFBD> .<2E>$<24>D<EFBFBD>K<EFBFBD> <11>]<5D>]<5D>t<EFBFBD>}<7D>}<7D>u<EFBFBD>4<><14>9U<39>9U<39>YZ<59>9Z<39>"<22>D<EFBFBD>K<EFBFBD> <11>]<5D>]<5D>t<EFBFBD>}<7D>}<7D>u<EFBFBD>4<><14>9U<39>9U<39>YZ<59>9Z<39><<3C>T<EFBFBD>[<5B> <11>_<EFBFBD>_<EFBFBD><14><1F><1F>5<EFBFBD>!8<>"<22>D<EFBFBD>K<EFBFBD>$<24>D<EFBFBD>K<EFBFBD> <0A><07> <0C>d<EFBFBD>%<25>f<EFBFBD>%r%c<00>\<00>[R"5nURS:XagUR(a!URU:aURS:XagUR(a!URU:aURS:wagUR(aURU:<3A>agg)Nrrcrr<>r<>r<>rd)rrfr<>rerm<00>rrfs r<00>statut_calculé<6C>ActiviteProjet.statut_calculé?s|<00><00><14>
<EFBFBD>
<EFBFBD> <0C><05> <0F> '<27> '<27>3<EFBFBD> .<2E><1D> <11>]<5D>]<5D>t<EFBFBD>}<7D>}<7D>u<EFBFBD>4<><14>9U<39>9U<39>YZ<59>9Z<39><1B> <11>]<5D>]<5D>t<EFBFBD>}<7D>}<7D>u<EFBFBD>4<><14>9U<39>9U<39>YZ<59>9Z<39>'<27> <11>_<EFBFBD>_<EFBFBD><14><1F><1F>5<EFBFBD>!8<><1B>r%c<00> <00>[R"5nURS:Xa=URS:Xa,URR SS9R 5S:<3A>aggURS:Xa-URR SS9R5(agUR(a2URU:a"URS:aURS:<3A>aggUR(aURU:<3A>ag g
) Nrr<>r<>ruLivré en retardrcrr<>r<>rd)
rrfr<>r<>r<>r<><00>excluder<65>rermrs r<00>statut_calcule<6C>ActiviteProjet.statut_calculeMs<><00><00><14>
<EFBFBD>
<EFBFBD> <0C><05> <0F> '<27> '<27>3<EFBFBD> .<2E><13>+<2B>+<2B>s<EFBFBD>2<>t<EFBFBD>~<7E>~<7E>7L<37>7L<37>Tf<54>7L<37>7g<37>7m<37>7m<37>7o<37>rs<72>7s<37>)<29>'<27><12> )<29> )<29>S<EFBFBD> 0<>T<EFBFBD>^<5E>^<5E>5K<35>5K<35>S]<5D>5K<35>5^<5E>5e<35>5e<35>5g<35>5g<35>4<><12>]<5D>]<5D>t<EFBFBD>}<7D>}<7D>u<EFBFBD>4<><14>9U<39>9U<39>X[<5B>9[<5B><13>+<2B>+<2B>a<EFBFBD>/<2F>5<><1F><12>_<EFBFBD>_<EFBFBD><14><1F><1F>5<EFBFBD>!8<><1B>r%c<00>p<00>URS:<3A>a&[URUR- S-S5$g)u+Renvoie le pourcentage du budget dépensé.rrr:)<03> budget_prevur<75><00>budget_depenser!s r<00> taux_depense<73>ActiviteProjet.taux_depensejs8<00><00> <10> <1C> <1C>q<EFBFBD> <20><18>$<24>-<2D>-<2D><04>0A<30>0A<30>A<>S<EFBFBD>H<>!<21>L<> L<>r%c<00>X<00>UR=(d SUR=(d S-
$)Nr)rrr!s r<00> ecart_budget<65>ActiviteProjet.ecart_budgetqs#<00><00><14>!<21>!<21>&<26>Q<EFBFBD>4<EFBFBD>+><3E>+><3E>+C<>!<21>D<>Dr%c<00>N<00>URSURRS3$r<>r<>r!s rr"r<>vr<>r%)r<>rg).r'r(r)r*rr+r<>ryrz<00>detailsrxrmre<00>
date_reller<EFBFBD><00>PositiveIntegerFieldr<64><00>
FloatFieldr<EFBFBD>rIrrrGrHrAr<>r<><00>besoin_ressource_financiere<72>besoin_ressource_humaine<6E>besoin_ressource_materielle<6C> est_reunionr<6E><00> IntegerFieldr<64>r"rgr<>rr<>r0r r rrr1r<>r<>s@rr<>r<><00>s1<00><><00> <12> <1C> <1C><03> ,<2C>E<EFBFBD><18>"<22>"<22><14>D<EFBFBD>9<>K<EFBFBD><14><1E><1E>T<EFBFBD><04>C\<5C>]<5D>G<EFBFBD><17>!<21>!<21>#<23>J<EFBFBD><15><1F><1F>d<EFBFBD><14>6<>H<EFBFBD><17>!<21>!<21><04>4<EFBFBD>8<>J<EFBFBD> <12> <1C> <1C><03>4<EFBFBD>d<EFBFBD> C<>E<EFBFBD> &<26> ;<3B> ;<3B>A<EFBFBD>Tr<54> s<><1D>$<24>/<2F>/<2F><01>:<3A><1B><19>&<26>&<26>"<22>Q<EFBFBD>PQ<50>`o<>p<>L<EFBFBD><1B>(<28>(<28>B<EFBFBD>q<EFBFBD>RS<52>bt<62>u<>N<EFBFBD> <13> <1E> <1E>x<EFBFBD>6<EFBFBD>><3E>><3E>P[<5B> \<5C>F<EFBFBD><15> <20> <20>!5<><16><1E><1E>^i<>qu<71>}A<02>B<02>H<EFBFBD>"(<28>"5<>"5<>e<EFBFBD>Ru<52>"v<><1F>%<25>2<>2<>5<EFBFBD>On<4F>o<><1C>"(<28>"5<>"5<>e<EFBFBD>Ru<52>"v<><1F><19>%<25>%<25>e<EFBFBD>BZ<42>[<5B>K<EFBFBD><1A>#<23>#<23><15>
<EFBFBD><13> <11> <06>L<EFBFBD><1A>&<26>&<26>T<EFBFBD><04>H]<5D>^<5E>L<EFBFBD>:<3A><14> <1D> <1D><15>
<EFBFBD><19><16> <06>F<EFBFBD>.<2E> <14>"&<26>(<0E> <1E><0E> <1E><0E><1E><0E><1E>8<0E><11><0E><11> <0E>E<01><0E>E<01>:<3A>:r%r<>c<00>\^<00>\rSrSr\R
"\\RSS9r\R"SS9r
\R"SSS9r \R"SSSS 9r\R"SSS9r\R"SSS9r\R"SSS9r\R"S
/S QS S S9rU4SjrSrSrU=r$)<12>Livrableiyr<>r6r<>rXTr<54>z
livrables/)r<>rrWr<>)r<>r<>r<>r<>)r<>r<>r<>Fr<46>c<00><>><01>[R"5nUR(a;UR(a"URUR::aSUlOaSUlOYUR(aURU:aSUlO0UR
(aUR
U:<3A>aSUlOSUl[ TU]"U0UD6 UR(aURR5 gg)u\Détermine automatiquement le statut du livrable selon les dates et met à jour l'activité.rcr<>r<>r<>rdN)
rrf<00>date_livraisonrergrmr<>r<>r<>rrs <20>rr<><00> Livrable.save<76>s<><00><><00><14>
<EFBFBD>
<EFBFBD> <0C><05> <0F> <1E> <1E><13>}<7D>}<7D><14>!4<>!4<><04> <0A> <0A>!E<>(<28><04> <0B>0<><04> <0B><13>}<7D>}<7D><14><1D><1D><15>!6<>&<26><04> <0B><15><1F><1F>T<EFBFBD>_<EFBFBD>_<EFBFBD>u<EFBFBD>%<<3C>&<26><04> <0B>(<28><04> <0B> <0A><07> <0C>d<EFBFBD>%<25>f<EFBFBD>%<25> <0F>=<3D>=<3D> <10>M<EFBFBD>M<EFBFBD> :<3A> :<3A> <<3C> r%c<00><00>UR$rr r!s rr"<00>Livrable.__str__<5F>r$r%r<>)r'r(r)r*rrGr<>rHr<>r+rryrzr<><00>livrablerxrmrer$rgr<>r"r1r<>r<>s@rr"r"ys<><00><><00><15> <20> <20><1E>6<EFBFBD>><3E>><3E>Xc<58>d<>H<EFBFBD>
<10>
<1A>
<1A>c<EFBFBD>
*<2A>C<EFBFBD><18>"<22>"<22><14>D<EFBFBD>9<>K<EFBFBD><15><1F><1F>,<2C>d<EFBFBD><14>N<>H<EFBFBD><18>!<21>!<21><04>4<EFBFBD>8<>J<EFBFBD><15><1F><1F>d<EFBFBD><14>6<>H<EFBFBD><1B>%<25>%<25>D<EFBFBD>t<EFBFBD><<3C>N<EFBFBD> <13> <1D> <1D><15>
<EFBFBD><19><16> <06>F<EFBFBD>=<3D>,<18>r%r")<01>senderc <00>8<00>URR5 gr)r<>r)r)<00>instancer<65>s r<00>update_pourcentage_livrablesr,<00>s<00><00> <0C><15><15>6<>6<>8r%N)<19> django.dbrrr<00> django.utilsr<00>django.db.models.signalsrr<00>django.dispatchr <00>Modelr r3<00>multiselectfieldrJr<>r5r<>r<>r<>r<>r<>r"r,r&r%r<00><module>r3s<><00><01><1C><19><1D>!<21>;<3B>$<24> <18>v<EFBFBD>|<7C>|<7C> <18>
Z<01><06> <0C> <0C>
Z<01>.<2E><02><0E>8<11>V<EFBFBD>\<5C>\<5C>8<11>x%.<2E>V<EFBFBD>\<5C>\<5C>%.<2E>L"<22><1C><1E>
&&<26><16><1C><1C>&&<26>T?<3F>f<EFBFBD>l<EFBFBD>l<EFBFBD>?<3F>m:<3A>V<EFBFBD>\<5C>\<5C>m:<3A>^/<18>v<EFBFBD>|<7C>|<7C>/<18>b
<EFBFBD>9<EFBFBD>k<EFBFBD>
"<22>8<EFBFBD>4<>9<>5<>9r%