
    X@	g                     `   d dl mZmZmZmZmZmZmZmZm	Z	m
Z
mZ d dlmZ d dlmZmZmZmZmZmZmZ d dlmZmZ d dlmZ d dlmZmZmZ d dlm Z m!Z!m"Z"m#Z#m$Z$m%Z% d dl&m'Z' d d	l(m)Z)m*Z* d d
l+Z+d d
l,Z,d Z-d Z.d Z/d Z0d Z1d Z2d Z3d Z4d Z5d Z6d Z7d Z8d Z9d Z:d Z;d Z<d Z=d Z>d Z?d dZ@d
S )!    )Groupe	JourFerieColleSemaineEleveColleurCreneau	RamassageMatiereClasseConfig)	timedelta)CountFMinMaxCaseValueWhen)Http404HttpResponse)messages)renderredirectget_object_or_404)SemaineFormCreneauForm	ColleForm
GroupeFormGroupe2FormColloscopeImportForm)easyPdf)Table
TableStyleNc           	      6   t          t          j                            |d                              dd                    }t          t          j                            |d                              dd                    }t          | d||||d          S )N   )matieresclasselvpknom   zmixte/groupe.html)classegroupeslv1lv2)dictr   objectsfiltervalues_listr   )requestr,   r-   r.   r/   s        /opt/e-colle/mixte/mixte.pymixtegrouper6      s    
w%%vA%FFRRSWY^__
`
`C
w%%vA%FFRRSWY^__
`
`C'-WZbe.f.fggg    c           	         |j         rt          |d | j        pd           }d}nt          |d | j        pd           }d}|                                r7|                                 t          | j        j        rdnd|j	                  S t          j        d |j        d         j        D                       }t          | |d|||d          S )	Nmixte/groupe2Modif.htmlmixte/groupeModif.htmlgroupe_colleurgroupe_secretc                 n    g | ]2}|j         |j        sd n|j        j        |j        sd n|j        j        f3S  )idr.   r)   r/   .0eleves     r5   
<listcomp>z$mixtegroupeCreer.<locals>.<listcomp>   sW      [  [  [rw59!F%),QVQZGlrr`e`i`lm  [  [  [r7   eleve0Fmodifformr,   hide)	semestresr    POSTr   is_validsaver   usercolleurr)   jsondumpsfieldsquerysetr   )r4   r,   rH   htmlrI   s        r5   mixtegroupeCreerrU      s     (6$w|';t<<(&gl&:d;;'}} b		GL,@U((oW]W`aaa:  [  [{  |G  HP  |Q  |Z  [  [  [  \  \D'$tVSWXXYYYr7   c                     	 |                                  n%# t          $ r t          j        | d           Y nw xY wt	          | j        j        rdnd|j        j                  S )NuH   Impossible de supprimer le groupe car il est présent dans le colloscoper;   r<   	delete	Exceptionr   errorr   rN   rO   r,   r)   )r4   groupes     r5   mixtegroupesupprr\       sv    k k k kwijjjjjk(<Q$$/RXR_Rbccc    99c           	         d t          |j                                                  D             }|j        |d<   |j        }|j        rSd t          |j                                                  D             }i ||}t          ||| j        pd |          }d}nt          ||| j        pd |          }d}|
                                r<|                                 t          | j        j        rdnd|j        j                  S t!          j        d	 |j        d
         j        D                       }t)          | |d|||d          S )Nc                 @    i | ]\  }}d                      |          |S )zeleve{}formatrB   irC   s      r5   
<dictcomp>z$mixtegroupemodif.<locals>.<dictcomp>(   s,    \\\WQuy""5\\\r7   r*   c                 @    i | ]\  }}d                      |          |S )zeleve2{}r`   rb   s      r5   rd   z$mixtegroupemodif.<locals>.<dictcomp>,   s,    ccc71UJ%%a((cccr7   initialr9   r:   r;   r<   c                     g | ]F}|j         |j        sd n|j        j        |j        sd n|j        j        |j        sd n|j        j        fGS r>   )r@   r.   r)   r/   optionrA   s     r5   rD   z$mixtegroupemodif.<locals>.<listcomp>6   s      G  G  G  _d59!F%),QVQZGlrr`e`i`lw|  xD  nYmomo  JO  JV  JY  Z  G  G  Gr7   rE   TrF   )	enumerategroupeeleveallr*   r,   rJ   groupe2elever    rK   r   rL   rM   r   rN   rO   r)   rP   rQ   rR   rS   r   )r4   r[   rg   r,   initial2rH   rT   rI   s           r5   mixtegroupemodifro   '   s   \\	&BTBXBXBZBZ8[8[\\\G:GEN]F (cciH[H_H_HaHa>b>bccc)W))6&)=wOOO(&(<gNNN'}} i		GL,@U((oW]WdWghhh:  G  G  hl  hs  t|  h}  hF  G  G  G  H  HD'$T6QUVVWWWr7   c                 J   t           j                            |j                  }|                    t          t          dt          d                    t          dt          d                                         t          | j	        j
        rdnd|j                  S )Nr)   TF)rJ   then)rJ   r;   r<   )r   r1   r2   r)   updater   r   r   r   rN   rO   )r4   r,   rS   s      r5   mixtegroupeSwaprt   9   s    ~$$	$22HOOdt%,,///u5;;///1 1O 2 2 2 (<Q$$/SYS\]]]r7   c           	         t          d          }d                    |j                  |d<   t          j        |d          }|j        r|                    g d           t          j        	                    |          
                    d	          D ]E}d
|j        g}t          |j        
                    dd                    D ]f\  }}|                    d                    |j        j                                        |j        j                                                             g|d
gd|z
  z  d
|j        gz   z  }|j        
                    dd          D ]c}|                    d                    |j        j                                        |j        j                                                             d|                    |           Gn|                    g d           t          j        	                    |          
                    d	          D ]}|j        g}|j        
                    dd          D ]c}|                    d                    |j        j                                        |j        j                                                             d|                    |           |S )Ntext/csvcontent_typez%attachment; filename="groupes_{}.csv"Content-Disposition;	delimiter)
z
semestre 1r[   eleve 1eleve 2eleve 3z
semestre 2r[   r}   r~   r   r,   r*   r?   user__last_nameuser__first_namez{} {}r+   )r[   r}   r~   r   )r   ra   r*   csvwriterrJ   writerowr   r1   r2   order_byrj   rk   appendrN   	last_nameupper
first_nametitlerm   )r4   r,   responser   r[   rowrc   rC   s           r5   mixtegroupecsvr   @   s   444H&M&T&TU[U_&`&`H"#Z3///F !  B  B  B  	C  	C  	Cn++V+<<EEeLL 	! 	!Ffj/C$V%7%@%@ARTf%g%ghh h h%

7>>%**>*D*D*F*F
H]HcHcHeHeffggggB41:FJ//C,556GI[\\ h h

7>>%**>*D*D*F*F
H]HcHcHeHeffggggOOC    	! 	@@@AAAn++V+<<EEeLL 	! 	!F:,C+445FHZ[[ h h

7>>%**>*D*D*F*F
H]HcHcHeHeffggggOOC    Or7   c                    t          | j        pd ||d          }|                                rFt          | j        j        rdnd||j        |j        d         j        |j        d         j                  S t          j	        
                                j        }|j        o
||j        k    }|sd}|r|                    dd	          nd
}	|rd| j        d<   t           j	                            |||d
d          \  }
}}t%          | d|||||||                                |	|g dt'          |
|          |                    ||          d          S d
| j        d<   t           j	                            |||d
          \  }}
}}t%          | d||||||||                                |	|
g dt'          ||          |                    ||          d          S )Nseminsemaxrf   colloscope2_colleurcolloscope2_secretr   r   i  Tr+   F	transposezmixte/colloscopetranspose.htmllundimardimercredijeudivendredisamedi)r   r   	semestre2rH   isprofr,   dictgroupesdictgroupes2semaines
listejourscreneauxgroupedictColleurszmixte/colloscope.html)r   r   r   rH   r   r,   joursr   r   creneauxr   collesemainer   )r   rK   rL   r   rN   rO   r)   cleaned_datar   r1   
get_configr   rJ   numerodictGroupessessionr   classe2colloscoper   zipr   )r4   r,   r   r   r   r   rH   r   rJ   dictGroupes2r   r-   r   r   colless                  r5   mixtecolloscoper   X   s
   	W\)T52O2O	P	P	PD}} s1E_--K_ajlrluvz  wH  IP  wQ  wT  UY  Uf  gn  Uo  Ur  s  s  	s))++5I >Y%,%>I 	2;F6%%dA...L 	i'+$&+m&E&EfUSXY^_c&d&d#'8g>u)DRXbhw}  xJ  xJ  xL  xL  ^j  w  ME  ME  ME  WZ  [c  dk  Wl  Wl  |B  |O  |O  PU  V[  |\  |\  	]  	]^ ^ 	^ (-$',}'F'FveTYZ_'`'`&hvhg5u)DRXbhqv  FL  FX  FX  FZ  FZ  lx  EM  [S  [S  [S  cf  go  pv  cw  cw  GM  GZ  GZ  [`  af  Gg  Gg  	h  	hi i 	ir7   c                    t           j                            ||dd          \  }}}t          d          }d                    j        |j        |j                  |d<   g d}t          j        |d	          }	|		                    g d
d |D             z              t          ||          D ]\  }
}fd|D             }|		                    |
d         |
d         rd                    |
d                   ndz   |
d                                         |
d                                         d                    ||
d                  |
d         dz  |
d         dz            |
d         g|z              |S )NFTrv   rw   z0attachment; filename="colloscope_{}_S{}-S{}.csv"ry   )lumamejevesa,r{   )   MatièreNomu   Prénomu   CréneauSallec                 B    g | ]}d                      |j                  S )zS{})ra   r   )rB   semaines     r5   rD   zmixteCSV.<locals>.<listcomp>r   s)    DzDzDzfmU\\RYR`EaEaDzDzDzr7   c                     g | ]b}|d          dk    r*|d         dk    r|d                              dd          n+dn)|d                                          |d                  ndcS )temps   r[   0r   rz   r?   id_eleve)replace
dictEleves)rB   r[   r,   s     r5   rD   zmixteCSV.<locals>.<listcomp>t   s      c  c  c  QW[abi[jnp[p[pvh7G37N7N&"**3s333TVTV  dj  ku  dv  dBx~  yJ  yJ  yL  yL  MS  T^  M_  y`  y`  HJ  c  c  cr7   matiere_nomr(   z(lv{})r?   r*   prenomz{} {}h{:02d}jdsheure<   salle)r   r1   r   r   ra   r*   r   r   r   r   r   r   r   )r4   r,   r   r   r   groupescoller   r   r   r   creneaur-   casess    `           r5   mixteCSVr   l   s   ',}'F'FveTYZ_`d'e'e$HlH444H&X&_&_`f`jlqlxz  {G  'H  'HH"#
.
.
.EZ3///F
OOCCCDzDzqyDzDzDzz{{{,77 A A c  c  c  c  [b  c  c  c/U\]aUb3j8??74=3Q3Q3Qhjkmtuzm{  nB  nB  nD  nD  FM  NV  FW  F]  F]  F_  F_!!%"79I29MwW^O_`bObddfmnufvxz@ 	A 	A 	A 	AOr7   c                 
   t          | j        pd ||d          }|                                rEt          | j        j        rdnd|j        |j        d         j        |j        d         j                  S t          |d           }t          j
                            |||d          \  }}}	}
|r|nt          |          }t          j
                                        j        }|j        o
||j        k    }t%          | j        pd |	          }|                                r|r|                                 ntt          j
                            ||j        d
         |j        d                                                   rt-          j        | d           n|                                 t          | j        j        rdnd|j        |j        |j                  S t1          |j                            |d                              ddd                              ddddd                              t;          d                              }t1          t<          j
                            d                               ||j                                         d                              ddd                              ddddd                    }tB          j
                            |          fd|j                            |          "                                                    ddd          D             }|rNfd|j                            |          "                                                    ddd          D             ng }g }|D ]0}|#                    |d |d                              |d |d          = 1tI          d!d"|%                                z  z             d#z   }tI          d$tM          |          |j'        %                                z   t<          j
                            |%          %                                z   z            d#z   }|sd&}tQ          | d'i d|d|d(|d)|d*|d+|d,|d-d.tS          |||          d/|sd0ntS          |||          d1|d2|d3|d4|d5|d6g d7d8tS          |
|	          |*                    ||          tW          j,        |-                    d9                    tW          j,        |r|-                    d9d:          nd0          tW          j,        |.                                          d;          S )<Nr   rf   colloscopemodif_colleurcolloscopemodif_secretr   r   Tr   )instancejourr   )r,   r   r   uP   Il y a déjà un créneau ce jour à cette heure, utiliser la fonction dupliquer)colleur__classescolleur__user__is_activer*   r(   r   r)   couleurrO   )nb)matieres)classesmatieres__inuser__is_activer   r   matieres__nommatieres__lvmatieres__tempsc                 .    g | ]fd D             S )c                 >    g | ]}|                               |S  	haslanguerB   r[   matieres     r5   rD   z3mixtecolloscopemodif.<locals>.<listcomp>.<listcomp>   s,    RRR68H8H8Q8QRRRRr7   r   rB   r   r-   s    @r5   rD   z(mixtecolloscopemodif.<locals>.<listcomp>   sB      }  }  }W^RRRRWRRR  }  }  }r7   )r   c                 .    g | ]fd D             S )c                 @    g | ]}|                     d           |S )r+   r   r   s     r5   rD   z3mixtecolloscopemodif.<locals>.<listcomp>.<listcomp>   s/    VVVF9I9I'ST9U9UVVVVr7   r   r   s    @r5   rD   z(mixtecolloscopemodif.<locals>.<listcomp>   sB      A  A  A[bVVVVgVVV  A  A  Ar7      i  *   px   )r   zmixte/colloscopeModif.htmlform1rH   form2largeurhauteurr-   r   	matieres2r?   r   r,   r   r   r   r   r   r   Fr+   )r   r   r   r   )/r   rK   rL   r   rN   rO   r)   r   r   r   r1   r   r	   r   r   r   rJ   r   r   rM   r2   existsr   rZ   listr   r   r3   annotater   r   excluderl   r   distinctr   strcountlenclasseelever   r   r   rP   rQ   r   dictElevespk)r4   r,   r   r   creneaumodifr   r   r   r   r   r   r   r   rJ   rH   r   colleursmatieresgroupesmatieresgroupes2listeColleursxr   r   r-   s                          @r5   mixtecolloscopemodifr  z   sy   
gl*dE%3P3P
Q
Q
QE~~ qW\5Ig11Oghnhqrw  sE  FM  sN  sQ  RW  Rd  el  Rm  Rp  q  q  	q
F4
 
 E%*]%D%DVERWX\%]%]"E(6((DLLgV.D.D.DG))++5I >Y%,%>I	W\)T7	;	;	;D}} E 	IIKKKK%%V9J69RY]YjkrYs%tt{{}} w'yzzzz		W\5Ig11Oghnhqrwrz  |A  |D  E  E  	EFO**F_c*ddmmnstx  zA  B  B  N  N  OS  TY  Zc  dk  lp  q  q  z  z  ~C  DM  ~N  ~N  z  O  O  P  PHGO++t+<<CCFcicrcvcvcxcx  MQC  R  R  ^  ^  _c  dv  wH  I  I  R  R  Sb  dr  tE  GX  Zl  m  m  n  nHn##6#22G }  }  }  }bhbqbxbx  KQbx  cR  cR  c[  c[  c]  c]  cf  cf  gl  nr  t{  c|  c|  }  }  }O EN  V  A  A  A  Aflfuf|f|  OUf|  gV  gV  g_  g_  ga  ga  gj  gj  kp  rv  x  g@  g@  A  A  A  A  TV M  Xeqte_---UadUOOBx~~''''((-GCMM&"4":":"<"<<W_=S=S\b=S=c=c=i=i=k=kklmmnrrG 	'6[WU [75 [ [vd [75 [SZ [[del [mvw~ [  @J  KN  OW  Xe  fu  Kv  Kv [  wB  NW  DI  DF  DF  ]`  ai  jw  xH  ]I  ]I [  JS  T` [f[ [+25[9CH[MY  [S  [S  [S[ Tb  cf  go  pv  cw  cw[ GM  GZ  GZ  [`  af  Gg  Gg  w{  wA  BH  BT  BT  UZ  B[  B[  w\  w\  mq  mw  Xa  xi  x~  xJ  xJ  KP  RS  xT  xT  xT  gi  mj  mj  y}  yC  DJ  DW  DW  DY  DY  yZ  yZ[ [ [\ \ \r7   c                     t          || j        pd | j        pd           }|                                r8|                                 t          | j        j        rdndd|j                  S t          | d||d          S )Ncolloscope_colleurcolloscope_secretr&   zmixte/colloscopeimport.html)rH   r,   )
r!   rK   FILESrL   rM   r   rN   rO   r)   r   )r4   r,   rH   s      r5   mixteColloscopeImportr	     s    (<gm>StTTD}} n		1E^,,K^`aciclmmm'7v8V8VWWWr7   c                     	 |                                  n%# t          $ r t          j        | d           Y nw xY wt	          | j        j        rdnd|j        j        ||          S )Nu>   Vous ne pouvez pas effacer un créneau qui contient des collesr   r   rW   )r4   r   id_seminid_semaxs       r5   mixtecreneausupprr     s    a a a aw_`````a1Ec--Kcdkdrduv~  @H  I  I  Ir]   c                     d |_         d |_        |                                 t          | j        rdnd|j        j         ||          S )Nr   r   )r)   r   rM   r   rO   r,   )rN   r   r  r  s       r5   mixtecreneauduplir     sQ    GJGMLLNNN[--C[\c\j\mnvw  A  A  Ar7   c                    g dt           j                            | d                              ddddd                              t          d	d
                                        d                              ddddd          }d                    fd|D                       }t           j                            | j	                  }|d                    fd|D                       z  }t           j                            |                               dddd                              t          d	d
                                        d                              dddd          }d                    fd|D                       }t           j        
                    | j	                  }d                    fd|D                       }t           j                            |                               ddd                              t          d	d
                                        d                              ddd          }d                    d |D                       }|dt          t          |                    z  z   |z   dt          t          |                    z  z   |z   dt          t          |                    z  z   |z   }|sd}t          |          S )N)r   r   r   r   r   r   dimancher   )creneau__classematiere__temps__gtcolleur__user__first_namecolleur__user__last_namesemaine__numerocreneau__jourcreneau__heurer)   T)r   )nbcollesr&   )nbcolles__gt
c                     g | ]w}d                      |d                                         |d                                         |d         |d         |d                  |d         dz  |d         dz            xS )u=   le colleur {} {} a {} colles en semaine {} le {} à {}h{:02d}r  r  r  r  r  r  r   ra   r   r   rB   valeurLISTE_JOURSs     r5   rD   z#mixteajaxcompat.<locals>.<listcomp>   s4     Z  Z  Z  GMW^^_e  gB  `C  `I  `I  `K  `K  LR  Sm  Ln  Lt  Lt  Lv  Lv  w}  ~H  wI  JP  Qb  Jc  do  pv  wF  pG  dH  IO  P`  Ia  ce  Ie  fl  m}  f~  A  fA  B  B  Z  Z  Zr7   c                     g | ]w}d                      |d                                         |d                                         |d         |d         |d                  |d         dz  |d         dz            xS )uE   le colleur {} {} colle {} étudiants en semaine {} le {} à {}h{:02d}r   r*   nbelevesr   r   r   r   r  r  s     r5   rD   z#mixteajaxcompat.<locals>.<listcomp>   s,     `  `  `  FLbiijpqyjz  kA  kA  kC  kC  DJ  KP  DQ  DW  DW  DY  DY  Z`  ak  Zl  ms  t|  m}  ~I  JP  QW  JX  ~Y  Z`  ah  Zi  km  Zm  nt  u|  n}  ~@  n@  A  A  `  `  `r7   )groupe__classegroupe__nomc                     g | ]L}d                      |d         |d         |d         |d                  |d         dz  |d         dz            MS )u9   le groupe {} a {} colles en semaine {} le {} à {}h{:02d}r$  r  r  r  r  r   r`   r  s     r5   rD   z#mixteajaxcompat.<locals>.<listcomp>   s      Q  Q  Q  @FQXXY_`mYnou  wA  pB  CI  J[  C\  ]h  io  p  i@  ]A  BH  IY  BZ  \^  B^  _e  fv  _w  xz  _z  {  {  Q  Q  Qr7   c                     g | ]w}d                      |d                                         |d                                         |d         |d         |d                  |d         dz  |d         dz            xS )u<   l'élève {} {} a {} colles en semaine {} le {} à {}h{:02d}r   r*   nbCollesr   r   r   r   r  r  s     r5   rD   z#mixteajaxcompat.<locals>.<listcomp>   s     Q  Q  Q  }CY``aghpaqawawayay  {A  BG  {H  {N  {N  {P  {P  QW  Xb  Qc  dj  ks  dt  u@  AG  HN  AO  uP  QW  X_  Q`  bd  Qd  ek  ls  et  uw  ew  x  x  Q  Q  Qr7   matiere__nomc           	          g | ]D}d                      |d         |d         |d                                         |d                   ES )z,le groupe {} a {} colles de {} en semaine {}r$  r  r(  r  )ra   r   )rB   r  s     r5   rD   z#mixteajaxcompat.<locals>.<listcomp>   s      I  I  I  w}GNNvVcOdeklvewx~  @N  yO  yU  yU  yW  yW  X^  _p  Xq  r  r  I  I  Ir7   z

u*   aucune incompatibilité dans le colloscope)r   r1   r2   valuesr   r   r   joincompatColleurr)   compatEleveintboolr   )r,   r   colleurs_groupeeleves	elevesolor-   reponser   s          @r5   mixteajaxcompatr4     s   SSSK}##Fb#QQXXYt  vP  Qb  cr  sC  D  D  M  M  Y^  _c  mq  Yr  Yr  Yr  M  s  s  z  z  HI  z  J  J  S  S  Te  fu  vF  Ga  b}  ~  ~HYY  Z  Z  Z  Z  QY  Z  Z  Z  [  [Hm11&)<<O		  `  `  `  `  P_  `  `  `  a  a  aH]!!!88??N_`o  qA  B  B  K  K  W\  ]a  ko  Wp  Wp  Wp  K  q  q  x  x  FG  x  H  H  Q  Q  Rc  ds  tD  ER  S  SF99  Q  Q  Q  Q  JP  Q  Q  Q  R  RF))&)44I		  Q  Q  Q  Q  GP  Q  Q  Q  R  RIM   77>>}^\mnnww  DI  JN  X\  D]  D]  D]w  ^  ^  e  e  st  e  u  u  ~  ~  P  Q_  `m  n  nGii  I  I  AH  I  I  I  J  JGVCX////6vc$v,,>O>O7OOPYYZ`adeijsetetauauZuuv}}G =<   r7   c           	      	    t           j                            ||                              |                                          sGt           j                            ||                                                                         rIt           j                            ||                                           t          |j                  }nt           j                            ||                              d          	                    dd          }|j        t           j                            ||          	                    dd          v rbt          d                    |j                                        |j                 d                    d	 |D                                           S t           j                                        j        }|j        }|j        r|j        |k    r|j        |j        hd hz
  d
 D             t           j                            ||          	                    dddddd                                          }	t1          fd|	D                       }
t2          j                            |          }t1           fd|D                       }nt           j                            ||          	                    ddddd                                          }	t1          d |	D                       }
t2          j                            |          }t1           fd|D                       }|
|z   dk    rt           j                            ||                                           t          ||||                                            t          d                    |j                                        |j                 |j                            S d                    d t           j                            ||          	                    dd          D             t          |j                  gz             }t          ||||                                            t          d                    |j                                        |j                 |                    S )Nr   r   rO   r   r$  Tflat{}:{}r   c                 ,    g | ]}t          |          S r   r   rB   r  s     r5   rD   z'mixteajaxcolloscope.<locals>.<listcomp>   s#    b{b{b{nocfghcicib{b{b{r7   c                     g | ]	}|j         
S r   rq   r>  s     r5   rD   z'mixteajaxcolloscope.<locals>.<listcomp>   s    ---qt---r7   groupe__groupe2elevegroupe__groupe2eleve__optiongroupe__groupe2eleve__lv1groupe__groupe2eleve__lv2matiere__pkmatiere__lvc                     g | ]r}|d          v r|d         |d          k    sR|d          vr|d         dk    s<|d         dk    r|d         |d          k    s|d         dk    ^|d         |d          k    p|sS    r&   r   r   r+      r   rB   r  optionss     r5   rD   z'mixteajaxcolloscope.<locals>.<listcomp>   s&     t  t  t!1QqTQqT\\UVWXUYahUhUhmnopmquvmvmvz{|}z~  CD  {D  {D  IJ  KL  IM  QR  ST  QU  IU  IU  YZ  [\  Y]  ab  Yb  Yb  gh  ij  gk  op  qr  os  gs  gsA  gs  gs  gsr7   groupe2c                     g | ]X}j         v r|j        k    s@j         vrj        d k    s,j        dk    r|j        k    sj        dk    K|j        k    V|YS r   r&   r+   r)   ri   r(   r.   r/   rB   r  r   rK  s     r5   rD   z'mixteajaxcolloscope.<locals>.<listcomp>   s     c  c  c17:3H3HQXY`M`M`dkdnv}d}d}  CJ  CM  QR  CR  CR  V]  V`  de  Ve  Ve  jk  jo  sz  jz  jz  ~E  ~H  LM  ~M  ~M  RS  RW  [b  Rb  RbQ  Rb  Rb  Rbr7   groupe__groupeelevegroupe__groupeeleve__lv1groupe__groupeeleve__lv2c                     g | ]L}|d          dk    s<|d          dk    r|d         |d         k    s|d          dk    8|d         |d         k    J|MS rH  r   r&   rI  r+   r   r>  s     r5   rD   z'mixteajaxcolloscope.<locals>.<listcomp>   sm    www!1adaiiAaDTUVWTXLL\]^_\`de\e\ejklmjnrsturvjvjvAjvjvjvr7   r[   c                     g | ];}j         d k    s,j         dk    r|j        k    sj         dk    .|j        k    9|<S rO  r(   r.   r/   rB   r  r   s     r5   rD   z'mixteajaxcolloscope.<locals>.<listcomp>   s      T  T  T17:??gjTUooZ[Z_cjZjZjnunx|}n}n}  CD  CH  LS  CS  CSQ  CS  CS  CSr7   rI  r   r   r[   rO   r   c                 ,    g | ]}t          |          S r   r=  r>  s     r5   rD   z'mixteajaxcolloscope.<locals>.<listcomp>   s0      E  E  EAQ  E  E  Er7   )r   r1   r2   r   r   rX   r   r*   r   r3   r   ra   r,   r   r)   r+  r   r   r   rJ   r   option1option2r   r   r   rM   )r   rO   r[   r   r   nomsr-   r   r,   r1  r"  eleves2	nbeleves2rK  s   `            @r5   mixteajaxcolloscoperb     sv   }GW==EEgEVV]]__ Xchcpcwcw  AH  RYcw  dZ  dZ  db  db  kr  db  ds  ds  dz  dz  d|  d| XWW==DDFFF6: -&&ww&GGPPQ^__kkly  @Dk  E  E:--gg-NNZZ[hnrZssssw~/J/J/L/LWZ/XY\YaYab{b{szb{b{b{Y|Y| } }~~~N--//9	 	U) ; ;~v~6$?G--W---G]))'')JJVVWm  oM  Ni  jE  FS  Ta  b  b  k  k  m  mF  t  t  t  tv  t  t  t  u  uHm**6*::G  c  c  c  c  c  c  c  c  d  dII]))'')JJVVWl  nH  Ic  dq  r  @  @  I  I  K  KFwwvwwwxxHm**&*99G  T  T  T  T  T  T  T  U  UIi!##M   AAHHJJJ''X_```eegggw~/J/J/L/LWZ/XY_Yc d deeexx  E  E)=)=gV])=)^)^)j)jkx  C)j  *D  *D  E  E  E  GJ  KQ  KU  GV  GV  FW  W  X  X	''PWXXX]]___w~'B'B'D'DWZ'PQUVVWWWr7   c                    	 t           j                            |          }n# t          $ r d }Y nw xY wt          j                            ||                                           d t          j                                        	                    d          D             }t	          |||||           }|i|j
        |_
        |                                 t          |j
                                        |j                 dz   |j
        j        d d         z             S |                                 t          |j
                                        |j                 dz   |z             S )Nrq   r6  c                     g | ]
}|d          S dater   rB   dics     r5   rD   z,mixteajaxcolloscopeeleve.<locals>.<listcomp>       LLLcc&kLLLr7   rf  )r   r   rO   rC   r   :rH  )r   r1   getrY   r   r2   rX   r   rl   r*  r,   rM   r   r   r)   r*   )	r   rO   r   r   r   loginrC   feriescolles	            r5   mixteajaxcolloscopeelevero     sH   !!X!..   	M99@@BBBLLY%6%:%:%<%<%C%CF%K%KLLLF
eT[
\
\
\E}^

GN7799'*EcI%,JZ[]\][]J^^___

GN7799'*EcI%OPPPs    # 22c                     t           j                            | |                                           t	          d          S )Nr6  efface)r   r1   r2   rX   r   r6  s     r5   mixteajaxcolloscopeeffacerrr     s7    	M99@@BBB!!!r7   c                    t           j                            d|                               dddd                              dd          }fd|D             }t          t          j        | j        g|z                       S )NT)r   r   r   r@   r   r   user__usernamec                     g | ]j}|d                                           dz   |d                                         z   dz                                   |d                  z   dz   |d         dkS )r    r   z (r@   ))r*   r@   )r   r   r   )rB   valuer,   s     r5   rD   z'mixteajaxmajcolleur.<locals>.<listcomp>   s      r  r  r  `ee./5577;EBS<T<Z<Z<\<\\]aabhbububwbwx}  C  yD  cE  E  FI  I  OT  UY  OZ  [  [  r  r  rr7   )	r   r1   r2   r*  r   r   rP   rQ   r   )r   r,   r   s    ` r5   mixteajaxmajcolleurry     s    _##D'RX#YY``aefx  zK  L\  ]  ]  f  f  gx  yK  L  LH r  r  r  r  iq  r  r  rH
GM?8#;<<===r7   c	                    t          |          }t          |          }|j        |z  }	t          j                            ||j        |j        |z   dz
  f                              t          d          |z                                |	                                          }
t          j        	                    |j
        ||||	          }t          j                                        j        }|j        j        r"|j        |k     r|j        |z   |k    r	| dk    rd}nd}|
r|d         s*t!          d	                    |
|d         |                    S t%          | ||||||||	  	        S )
Nr&   )r   semaine__numero__ranger  )semaine_modr   u   Attention, les groupes des 2 semestres sont différents et vous planifiez à cheval sur les 2 semestres.
La planification se fera uniquement au premier semestrer?   r   z{}_{}_{})r.  r   r   r1   r2   r   r   r   r   
recupFerier   r   r   r   r,   rJ   r   ra   mixteajaxcolloscopemulticonfirm)r   rO   	id_grouper   r   r   duree	frequencepermutationmoduloecrasenbferiesr   chevals                 r5   mixteajaxcolloscopemultir    s   IIJJE^I%F]!!GGN[b[ijo[opq[qKr!ss||  LM  N_  L`  L`  cl  Ll|  m  m  t  t  AG  t  H  H  N  N  P  PF ++GLyQWXXH))++5I~ GNY$>$>7>TYCY\eCeCejquwjwjw u Ahqk AJ--fXa[HHIII.wwyRYZabgirt  A  A  	Ar7   c	           	      j    d|j         i}	g |	d<   t          |          }t          |          }t          |          }t          |          }|j        }
 dk    rd}t          |
|
|z   |          D ]}	 t          j                            |          }t          j                            ||          	                                 |	d         
                    d|j        i           n# t          $ r Y nw xY w|dz  }t          t          j        |	                    S |dk    r|rt          t           |	          }t          j                            ||
                              |                                          sGt          j                            ||
                                                                         rIt          j                            ||
          	                                 t'          |j                  }nt          j                            ||
                              d                              dd          }|j        t          j                            ||
                              dd          v rbt          d                    |j                                        |j                  d                    d |D                                           S t6          j                                        j        }|j        }|j        r|j        |k    r|j        |j         hd hz
  d D             t          j                            ||
                              dddddd          !                                }tE          fd|D                       }tF          j                            |          }tE           fd|D                       }nt          j                            ||
                              ddddd          !                                }tE          d  |D                       }tF          j                            |!          }tE           fd"|D                       }||z   d#k    rt          j                            ||
          	                                 t          |||| $          $                                 t          d                    |j                                        |j                  |j                            S d                    d% t          j                            ||
                              dd          D             t'          |j                  gz             }t          |||| $          $                                 |j          j%        |j                                        |j                  d&}	|j        |d'g|	d<   t          t          j        |	                    S t          |          }|sd nt          t           |	          }|sd nt          tF          |	          }t6          j                                        j        }|j        j        r#|j        |k     r|j        |z   |k    r
||j        z
  }|r|j        j        r|j        |k    r |j        j        |j        j         fv rZtM          t           j                            |j         (          !                                                    d)                    }n4 j'        dk    rGtM          t           j                            |j        *                              d)                    }n j'        dk    rZtM          t           j                            |j         +          !                                                    d)                    }n} j'        d,k    rXtM          t           j                            |j         -          !                                                    d)                    }n j'        dk    rFtM          t           j                            |j        *                              d)                    }nǉ j'        dk    rYtM          t           j                            |j         .          !                                                    d)                    }nc j'        d,k    rXtM          t           j                            |j         /          !                                                    d)                    }|(                    d0 1           |)                    |          }n|rЉ j'        dk    r3tM          tF          j                            |j        *                    }n} j'        dk    r4tM          tF          j                            |j         2                    }n> j'        d,k    r3tM          tF          j                            |j         3                    }|)                    |          }d}|j          j%        |j                                        |j                  d&}	g |	d<   d4 tT          j        +                                ,                    d5          D             }|rt          |
|
|z   |          D ]}	 t          j                            |          }t          j                            ||          	                                 ||||z  z   tE          |          z           }t          || ||6          $                                 |	d         
                    |j        |j        d'           n#  Y nxY w|dz  }Аn*|r,t          |
|
|z   |          D ]}	 t          j                            |          }|j-        t]          |j/        7          z   |vrt          j                            ||          	                                 ||||z  z   tE          |          z           }t          || ||8          $                                 |	d         
                    |j        |j        0                                |j                  d'           n# t          $ r Y nw xY w|dz  }nt          |
|
|z   |          D ]}	 t          j                            |          }|j-        t]          |j/        7          z   |vrt          j                            ||          	                                 t          || d ||j        9          $                                 |	d         
                    |j        |j        j        d d:         d'           # t          $ r Y w xY wt          t          j        |	                    S );Nr   	semgrouper   r   )r   )r   r   r   r&   rq   r6  r7  r8  r$  Tr9  r;  r   c                 ,    g | ]}t          |          S r   r=  r>  s     r5   rD   z3mixteajaxcolloscopemulticonfirm.<locals>.<listcomp>-  s#    fffrsgjklgmgmfffr7   c                     g | ]	}|j         
S r   rq   r>  s     r5   rD   z3mixteajaxcolloscopemulticonfirm.<locals>.<listcomp>3  s    111A14111r7   r@  rA  rB  rC  rD  rE  c                     g | ]r}|d          v r|d         |d          k    sR|d          vr|d         dk    s<|d         dk    r|d         |d          k    s|d         dk    ^|d         |d          k    p|sS rG  r   rJ  s     r5   rD   z3mixteajaxcolloscopemulticonfirm.<locals>.<listcomp>5  s1      x   x   xaQqTW__1QRSTQUYZ[\Y]elYlYlqrstquyzqzqz~  AB  C  GH  H  H  MN  OP  MQ  UV  WX  UY  MY  MY  ]^  _`  ]a  ef  ]f  ]f  kl  mn  ko  st  uv  sw  kw  kw  kw  kw  kwr7   rL  c                     g | ]X}j         v r|j        k    s@j         vrj        d k    s,j        dk    r|j        k    sj        dk    K|j        k    V|YS rO  rP  rQ  s     r5   rD   z3mixteajaxcolloscopemulticonfirm.<locals>.<listcomp>7  s     !g  !g  !gqwzW7L7LQRQY]dQdQdhohr  {B  iB  iB  GN  GQ  UV  GV  GV  Za  Zd  hi  Zi  Zi  no  ns  w~  n~  n~  BI  BL  PQ  BQ  BQ  VW  V[  _f  Vf  Vf  Vf  Vf  Vfr7   rR  rS  rT  c                     g | ]L}|d          dk    s<|d          dk    r|d         |d         k    s|d          dk    8|d         |d         k    J|MS rV  r   r>  s     r5   rD   z3mixteajaxcolloscopemulticonfirm.<locals>.<listcomp>:  sr    {{{aQqTQYY!A$!))PQRSPTXYZ[X\P\P\`abc`dhi`i`inopqnrvwxyvznznznznznzr7   rW  c                     g | ];}j         d k    s,j         dk    r|j        k    sj         dk    .|j        k    9|<S rO  rY  rZ  s     r5   rD   z3mixteajaxcolloscopemulticonfirm.<locals>.<listcomp><  s      !X  !X  !XqwzQ'*XY//^_^cgn^n^nryr|  AB  sB  sB  GH  GL  PW  GW  GW  GW  GW  GWr7   rI  r[  c                 ,    g | ]}t          |          S r   r=  r>  s     r5   rD   z3mixteajaxcolloscopemulticonfirm.<locals>.<listcomp>A  s0      I  I  ISVV  I  I  Ir7   )r   r   rO   )r   r[   )r,   groupe2eleve__optionr*   r   )r,   groupe2eleve__lv1r+   )r,   groupe2eleve__lv2)r,   groupeeleve__lv1)r,   groupeeleve__lv2c                 *    t          | j                  S )N)r.  r*   )r  s    r5   <lambda>z1mixteajaxcolloscopemulticonfirm.<locals>.<lambda>]  s    #ae** r7   )key)r,   r.   )r,   r/   c                     g | ]
}|d          S re  r   rg  s     r5   rD   z3mixteajaxcolloscopemulticonfirm.<locals>.<listcomp>j  ri  r7   rf  )r   rO   r   r[   r   days)r   rO   r   rC   r   )r   rO   r   rC   r   r,   rH  )1r)   r.  r   ranger   r1   rk  r   r2   rX   r   rY   r   rP   rQ   r   r   r   r   r   r*   r   r3   ra   r,   r   r+  r   r   r   rJ   r]  r^  r   r   r   rM   r   r   r(   sortindexr   rl   r*  r   r   r   r   )r   rO   r  r   r   r   r  r  r  r   
numsemainerc   r   semainecoller[   r_  r-   r   r,   r1  r"  r`  ra  rC   groupeselevesrangrm  rK  s   `                          @r5   r~  r~    s   
#HH[JJEIIII8}}H~J"}}Jz%'7	BB 	 	F$_000??$$W\$JJQQSSS%,,i8K-LMMMM   qDAADJx00111zziz"6Y777=AAIIRYIZZaacc 	\glgtg{g{  EL  V]g{  h^  h^  hf  hf  ov  hf  hw  hw  h~  h~  h@  h@ 	\M   AAHHJJJvz??DD m**77*KKTTUbccoop}  DHo  I  IGzU]11''1RR^^_lrv^wwww#GNN7>3N3N3P3PQXQ[3\]`]e]effw~fff  ^A  ^A  %B  %B  C  C  C1133=I^F YGNi$?$?!>6>:dVC11111--gg-NNZZ[q  sQ  Rm  nI  JW  Xe  f  f  o  o  q  q   x   x   x   x6   x   x   x  y  y-..v.>>  !g  !g  !g  !g  !gG  !g  !g  !g  h  h		--gg-NNZZ[p  rL  Mg  hu  vC  D  D  M  M  O  O{{6{{{||-..f.==  !X  !X  !X  !XG  !X  !X  !X  Y  Y	)#a''$$WW$EELLNNNggVG\cdddiikkk#GNN7>3N3N3P3PQXQ[3\]c]g$h$hiii88  I  IU]-A-A'Za-A-b-b-n-no|  CG-n  .H  .H  I  I  I  KN  OU  OY  KZ  KZ  J[  [  \  \DggVGT[\\\aaccc#J7>KfKfKhKhipisKtuu,3ND!I!I JDJx00111k""K L44&7)&L&L&LF
H$$$5ex$H$H$HE))++5I~ )GNY$>$>7>TYCY\eCeCe'.( (># 	E)(C(C7>17>3IJJJ"6>#8#8dk#8#l#l#u#u#w#w  $A  $A  BG  $H  $H  I  Iq"6>#8#8#8#O#O#X#XY^#_#_``q"6>#8#8ah#8#i#i#r#r#t#t#}#}  D  $E  $E  F  Fq"6>#8#8ah#8#i#i#r#r#t#t#}#}  D  $E  $E  F  FzQ"6>#8#8#8#O#O#X#XY^#_#_``q"6>#8#8`g#8#h#h#q#q#s#s#|#|  ~C  $D  $D  E  Eq"6>#8#8`g#8#h#h#q#q#s#s#|#|  ~C  $D  $D  E  E!4!4555  ((	 (:??u}337>3JJKKMMZ1__u}337>g3VVWWMMZ1__u}337>g3VVWWM  ''A
W_w~GbGbGdGdeleoGpqqHH[LLY%6%:%:%<%<%C%CF%K%KLLLF  Jz%'7	BB 		 		F$_000??$$W\$JJQQSSS$d1[=&8#m:L:L%LMgggV\hiiinnppp%,,8KU[U_-`-`aaaaqDAA		 
 Jz%'7	BB 
	 
	F$_000??%	(F(F(FFfTTM(((NNUUWWW'am);S=O=O(OPE'''PU^jkkkpprrr[)00L<OY`YgYrYrYtYtuzu}Y~11  A  A  A   qDAA
	 Jz%'7	BB 	 	F$_000??%	(F(F(FFfTTM(((NNUUWWW'''PT]isz  tB  C  C  C  H  H  J  J  J[)00L<OY`YgYklnmnlnYo1p1pqqq   
8,,---sF   3A5C))
C65C6B?ooC;t
tt0Cx
xxFc                    g d}t          d          }t          j                            | j                                                  r_|s]t          j                            | j                                      t          d                    d         t          d          z   }n2t          j                            t          d	                    d
         }| j        }d|j        z  |j        z   dz
  }	t          j                            | ddt                    ||          }
d                    |j        |j        |j        |j        |j        |j                  }d                    |          |d<   t#          d                    ||j                 |j        ||j                 |j                  dd          }|j        d         d|j        z  z
  dz   z  }d}t'          |          }|
D 
]o\  }}}d}|                    |           |}|r|dt+          d |D                       z   z  }t-          g d          }g drdgng z   dgz   gfdt/          t1          d|                    D             z   }dx}x}x}x}}|D ]\  }}}d}|||         d<   |dk    r/|                    d d|fdt1          ||z   dz
  d          f           ||z  }|D ]5\  }} }!|sd!n|                                ||         d<   |!dk    r/|                    d d|fdt1          ||!z   dz
  d          f           ||!z  }| D ]\  }"}#}$|"||         d<   |$dk    r/|                    d d|fdt1          ||$z   dz
  d          f           ||$z  }r|#D ]\  }}%}&|||         d"<   |&dk    r/|                    d d"|fd"t1          ||&z   dz
  d          f           ||&z  }|%D ]\  }'}(||(z  }|'|	k     r|                    d#d$|fd%|fd&           ||'dz  dz            ||         d$<   d'                    |(d(z                                d)d*          ||         d%<   |dz  }|d+k    r@|dk    r9t9          |d|z  d"|z  |d"|z  ||gt1          d|z   d+          |gz  ,          })|)                    |           |)                    |dd          \  }*}+|)                    ||j        d         |*z
  dz  |j         |+z
  |dz  z
             |!                                 |                    |           t-          g d          }|dz  }g d-gd. t/          t1          d|                    D             z   }|dz  }|dz  }|dz  }|dz  }d}|dk    r||d         d<   |dk    r*|                    d d/dt1          |dz
  d          f           |dk    r|sd!n|                                |d         d<   |dk    r*|                    d d0dt1          |dz
  d          f           |dk    r||"|d         d<   |dk    r*|                    d d1dt1          |dz
  d          f           |dk    r;||d         d"<   |dk    r*|                    d d2d"t1          |dz
  d          f           ǐj|#D ]a\  }}(||(z  }|||         d"<   d'                    |(d(z                                d)d*          ||         d$<   |dz  }|d+k    r
|dk    rt9          |d|z  d"|z  |d"|z  |gt1          d|z   d+          |gz  ,          })|)                    |           |)                    |dd          \  }*}+|)                    ||j        d         |*z
  dz  |j         |+z
  |dz  z
             |!                                 |                    |           t-          g d          }|dz  }g d3gd4 t/          t1          d|                    D             z   }|dz  }|dz  }|dz  }d}|dk    r|                                |d         d<   |dk    r*|                    d d/dt1          |dz
  d          f           |dk    r|sd!n|                                |d         d<   |dk    r*|                    d d0dt1          |dz
  d          f           |dk    r;|"|d         d<   |dk    r*|                    d d1dt1          |dz
  d          f           cѐ7||z  }|r|                    d d|fd"z   |f           |                    d5d|fd6|fd7           d8                    |                                          gd9gd"z   z  z   d'                    |d(z                                d)d*          gz   ||<   |dz  }|dz  }|dz  }|dz  }|dz  }|d+k    r8|dk    r1t9          |d|z  d"|z  |d"|z  |gt1          d|z   d+          |gz  ,          })|)                    |           |)                    |dd          \  }*}+|)                    ||j        d         |*z
  dz  |j         |+z
  |dz  z
             |!                                 |                    |           t-          g d          }|dz  }g drdgng z   dgz   gfd:t/          t1          d|                    D             z   }|dz  }|dz  }|dz  }r	|dz  }d}d}|r|                    d d|fd"z   |f           |                    d5d|fd6|fd;           d8                    |          gd9gd"z   z  z   d'                    |d(z                                d)d*          gz   ||<   |dz  }|dz  }|dz  }|dz  }t9          |d|z  d"|z  |d"|z  |gt1          d|z   d+          |gz  ,          })|)                    |           |)                    |dd          \  }*}+|)                    ||j        d         |*z
  dz  |j         |+z
  |dz  z
             |!                                 
q|"                                 |j#        $                                },|j#        %                                 |&                    |,           |S )<u   Renvoie le fichier PDF du ramassage par classe correspondant au ramassage dont l'id est id_ramassage
	si total vaut 1, les totaux par classe et matière sont calculés)r?   Janvieru   FévrierMarsAvrilMaiJuinJuilletu   Août	SeptembreOctobreNovembreu	   Décembrezapplication/pdfrw   )moisFin__ltmoisFinmoisFin__maxr&   r  r   
lundi__min   FT)r   	parClasseparMoisfullrO   z*ramassagePdfParclasse{}-{}-{}_{}-{}-{}.pdfzattachment; filename={}ry   u&   Ramassage des colles de {} {} à {} {}   )titremarge_xmarge_yr   r+   
   )	soustitrec                     g | ]\  }}}|	S r   r   )rB   r  yzs       r5   rD   z.mixteRamassagePdfParClasse.<locals>.<listcomp>  s    555!A!555r7   ))GRIDr   r   r   r   r&   )r   r   r   )
BACKGROUNDr  )r   r   )333333?r  r  )VALIGNr  r  MIDDLE)ALIGNr  r  CENTRE)FACEr  r  zHelvetica-Bold)SIZEr  r     )r      ÉtablissementGrader   moisheuresc                 "    g | ]}d gdz   z  S r?   r   r   rB   rc   parmoiss     r5   rD   z.mixteRamassagePdfParClasse.<locals>.<listcomp>  sB      i^  i^  i^~jlimopqxoxiy  i^  i^  i^r7      SPANInconnurI  	TEXTCOLORrH  r   )r&   r   r   z{:.2f}hr   .r      )	colWidths
rowHeights)r   r  r  r   r  r  c                     g | ]}d gdz  	S )r?      r   rB   rc   s     r5   rD   z.mixteRamassagePdfParClasse.<locals>.<listcomp>  s#    R}R}R}^_TVSWXYSYR}R}R}r7   )r   r&   )r&   r&   )r+   r&   )rI  r&   )r   r  r  r   r  c                     g | ]}d gdz  	S r  r   r  s     r5   rD   z.mixteRamassagePdfParClasse.<locals>.<listcomp>  s     KvKvKvWXRDQRFKvKvKvr7   r  r   )皙?r  r  ztotal {}r?   c                 "    g | ]}d gdz   z  S r  r   r  s     r5   rD   z.mixteRamassagePdfParClasse.<locals>.<listcomp>2  sF      la  la  la  BCmolprst{r{l|  la  la  lar7   )ffffff?r  r  )'r   r
   r1   r2   r  r   	aggregater   r   r   r   yearmonthdecompteRamassager/  ra   dayr"   r  r.  debutDePager   r$   r  minaddr   r   r#   setStylewrapOndrawOnr  	finDePagerM   buffergetvalueclosewrite)-	ramassagetotalr  r  rO   
LISTE_MOISr   debutfin	moisdebut	decomptes
nomfichierpdf
largeurcel
hauteurcelr,   listeClasse
nbMatierestotalclasse
nbKolleurs
LIST_STYLEdataligneMat	ligneEtab
ligneGradeligneColleur	ligneMoisr   
listeEtabsnbEtabstotalmatiereetablissementlisteGradesnbGradesgrader  
nbColleurs	listeMoisnbMoismoir  twhfichiers-     `                                          r5   mixteRamassagePdfParClasser    s.    A  A  A&7888):;;BBDD @T @


"
"y/@
"
A
A
K
KCPYNN
[
[\j
knw}~nnn
%%
/
#
#CLL
1
1,
?%
]5;&q(00%UYcghocpcpy}  JQ0  R  R8??
5;W\W`adaijmjstwt{||#<#C#CJ#O#O
 =DDZPUP[E\]b]ghrsvs|h}  B  G  H  H  QS  \^  _  _  _Z]1S[=(2g:6
5zz(1 g g$V[*+//f/%%%*
 7S555556666: & & & ' '* :
9
9=XfXXVX
Y]e\f
f	g  i^  i^  i^  i^  DI  JM  NP  Q[  J\  J\  D]  D]  i^  i^  i^  
^$788(898Z8Y&1 K K"gz7<4>!aiiNN61X,#hw.>q.@*D*D'EFFFW8/9 bB bB+}k8(5Pyy=;N;N;P;PDOAzz^^FAi=!C	(0B10DR,H,H)IJJJxI,7 ]B ]B(}jT*a1nnVQzNAc*Z2G2I".M.M+NOOOZ XB(5 0F 0F
$'9f$tL!
((vq.#l66I!6KB2O2O/PQQQV|$ +F +F<3y==	QyM1Y-	H	H	H%c"fQh/Y$++F2I66>>s3GGY1	b==Z]]:a
l:a
lT^`j kwz|}  I  }I  KM  xN  xN  PZ  O[  x[  \  \  \	
J			XXc!A1	
#sz!}Q)#%'*Q,*>	?	?	?		V	,	,	,  "( "( "( ) ) 
RPPPQR}R}chilmopzi{i{c|c|R}R}R}}	B	R	2	r	QJJ$q'!*aZZ>>&#hqj*<*<'=>>>q[['4Oii-:M:M:O:O471:kkNN6%3y{2+>+>(?@@@llDGAJ!||^^F5!C
1R,@,@)ABBBA~~T!WQZQnnVE1Sa-C-C*DEEEW+F0Ff + $B $B/'6v|$tL!&--fRi88@@SIItL!Q|


z"}}
*Qz\*Qz\S]^jmopq{o{}  kA  kA  CM  BN  kN  O  O  O	

:HHS1!	cjmAoq(qA)=>>>F+++ !' !' !' ( (
 	B
IIIJKvKv\abefhisbtbt\u\uKvKvKvv2	B
"A::MMOOaQJJ
..qXaZ););&<
=
=
=aKK&3NYY9L9L9N9N$q'!*q[[>>&#ik"*=*='>???\\471:llNN6%3z!|B+?+?(@AAAI$Bs]B~ ,;  NN61\*AgIl+CDDDNN<< 0"\1B:NNN$++GMMOO<<=rdAgI>NNPYP`P`amnpapPqPqPyPyz}  B  QC  QC  PD  DDqLIMJaKH!OLqLIRJrMMTQz\!J,z!J,PZ[gjlmnxlxz|g}g}  @J  K  hK  L  L  LQZZ
	
#a		SQqXXc3:a=?A%ceAgjl&:;;;]]______((( $ $ $ % %Z ^Z<<<G@[Y[\`h_iij  la  la  la  la  GL  MP  QS  T^  M_  M_  G`  G`  la  la  la  aT]Y^Zr\X Bliil
 >>&!L)1W9\*BCCC>>,,/L0A*MMM#**6223RD!G)4DDiFVFVWbceWeFfFfFnFnorsvFwFwExx4a<9q=:Q;8?<	$!J,q|Jq|JWcfhijthtvxcycy  |F  {G  dG  H  H  H!**Zhhs1Q#!A((3
1a"357:a<#7888--////:  	r7   )F)Aaccueil.modelsr   r   r   r   r   r   r	   r
   r   r   r   datetimer   django.db.modelsr   r   r   r   r   r   r   django.httpr   r   django.contribr   django.shortcutsr   r   r   colleur.formsr   r   r   r   r    r!   pdf.pdfr"   reportlab.platypusr#   r$   rP   r   r6   rU   r\   ro   rt   r   r   r   r  r	  r  r  r4  rb  ro  rr  ry  r  r~  r  r   r7   r5   <module>r      s   y y y y y y y y y y y y y y y y y y y y y y y y y y       B B B B B B B B B B B B B B B B B B - - - - - - - - # # # # # # @ @ @ @ @ @ @ @ @ @ l l l l l l l l l l l l l l l l       0 0 0 0 0 0 0 0  



h h h
Z Z Zd d dX X X$^ ^ ^  0i i i(  &\ &\ &\PX X XI I IA A A! ! !"X X X@Q Q Q " " "> > >
A A A {. {. {.|~ ~ ~ ~ ~ ~r7   