
    X@	g!                     *   d dl mZmZmZ d dlmZmZmZ d dlm	Z	 d dl
mZ d dlmZmZmZmZmZmZmZmZ d dl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 d
l$m%Z% d dl&m'Z' d Z(d Z) ed          d             Z* ed          d             Z ed          d             Z+ ed          d             Z, ed          d             Z- ed          d             Z. ed          d             Z" ed          d             Z/d	S )    )HttpResponseForbiddenHttp404HttpResponse)renderredirectget_object_or_404)logout)login_required)ClasseMatiereColleurMessageDestinataireEleveConfigProf)UserFormUserProfprincipalFormSelectMessageForm
EcrireFormReponseForm)messages)IP_FILTRE_ADMINIP_FILTRE_ADRESSESN)Q)BytesIOc                 0   | j         }|j        r`|j        dk    rt          d          S |j        dk    rt          d          S |j        rt          d          S |j        rt          d          S t          j                                        }t          t          j                                                  }t          t          |          dz
  dd	          D ]Z}||         j                                        ||dz
           j                                        k    r|                    |           [d
}t           rFd}| j        d         }t$          D ]/}t'          j        |                              |          }|rd
} n0t-          | d|||d          S )ug   Renvoie la vue d'accueil ou, si l'utilisateur est déjà identifié, redirige vers la section adéquateadminaction_admin   Secrétariataction_secretaction_colleuraction_eleve   r   TFREMOTE_ADDRzaccueil/home.html)classesmatieres
show_admin)useris_authenticatedusernamer   colleurelever   objectsalllistr   rangelennomlowerpopr   METAr   recompilematchr   )	requestr*   r'   r(   ir)   user_ipipauthenticated_by_ips	            /opt/e-colle/accueil/views.pyhomerA      s   l #	]G
>
"
""}n$$
?
#
##| #
#
$
$$z #
>
"
""					
w""$$
%
%
Ha"
%
%  Qa[_1 1 7 7 9 999<<??? 
*L'' 
 
bB--g66 
J	E
 	w*g_i+j+jkkk    c                 >    t          |            t          d          S )uD   Déconnecte l'utilisateur courant et redirige vers la page d'accueilaccueil)r	   r   r;   s    r@   deconnexionrF   +   s    rB   rD   )	login_urlc                 ~   | j         }|j        st          d          S t          |j        o$t
          j                            |j                            }|rt
          j                            |j                  }d|j        i}|D ]z}t          j                            |d          |d
                    |j                  <   t          j                            |d          |d
                    |j                  <   {t          |j        || j        pd	||
          }|                                r#|                                 t!          d          S nOt#          | j        pd	|          }|                                r#|                                 t!          d          S t%          | dd|i          S )uN   Renvoie la vue du profil où on peut modifier son email et/ou son mot de passeu6   Vous devez être connecté pour accéder à cette page)profprincipalemailT)colleurprof__classecolleurprof__modifgroupez	{}_groupe)rK   colleurprof__modifcolloscopez{}_colloscopeN)instanceinitialrD   rN   zaccueil/profil.htmlform)r*   r+   r   boolr-   r   r/   filterrJ   r   formatpkr   POSTis_validsaver   r   r   )r;   r*   rI   r'   rO   classerQ   s          r@   profilrZ   0   s    l Y	W	X	XXdlXv~'<'<4<'<'X'XYY N!!!=='TZ ' E Ef,3O,B,BW]w{,B,|,|7;fi(()070F0F[a  @D0F  1E  1E7?!!&),,--	t|GGL4HDTXdk	l	l	l$	]]__ 99;;;
9

 $555$	]]__ 99;;;
9

w,fT];;;rB   c                 x   t          | j        | j        pd          }|                                r#|                                 t          d          S d}| j        j        r#t          j        	                                j
        }t          | d|||j        d         j                                        d          S )z Renvoie vers la vue des messagesNr   Tzaccueil/messages.htmlmessage)rQ   peut_composernonvide)r   r*   rV   rW   rX   r   r.   r   r/   
get_configmessage_elevesr   fieldsquerysetexists)r;   rQ   r]   s      r@   r   r   H   s     	',w|';t<<MMOO ))+++	*		L =.++--<-w.tMdhdopydz  eD  eK  eK  eM  eM  0N  0N  	O  	O  OrB   c                 r   t           j                            |                              t          | j        d          t          | j                  z            }|                                st          d          |                                }d}d}|j        | j        k    r2d}| j        j	        r#t          j                                        j        }nt          j                            || j                  }|j        sT|xj        t#          | j                  dz   z  c_        |                                 d|_        |                                 | j        j	        r,|j        r%t          j                                        j        sd}|j        j        d	v rd}t+          | d
|||d          S )z7Renvoie vers la vue du message dont l'id est id_messagerU   Tauteur	hasAuteurmessagerecu__user   Message non trouvéFr\   r*   ; r   r    zaccueil/message.html)r\   repondreenvoye)r   r/   rS   r   r*   rc   r   firstrg   r.   r   r_   r`   r   getluluParstrrX   reponsesr,   r   )r;   
id_messager\   ro   rp   destinataires         r@   r\   r\   T   s    ?!!Z!00777<]a8b8b8bef  |C  |H  fI  fI  fI  9I  J  J '%&&&==??
Ngl""&\ 9n''))88%))G)NN,	 
==C%%,,==
<<>>><?\ L1 &.:S:S:U:U:d 8^ 8888w-H^d.e.efffrB   c                    | j         j        r2t          j                                        j        st          d          S t          | j                   }t          | j         | j	        pd| j
        pd|          }|                                r8|                                 t          j        | d           t          d          S t!          | dd|i          S )	u-   Renvoie vers la vue d'écriture d'un message u.   Vous n'avez pas le droit d'écrire une message)rg   NrP      Message envoyér   zaccueil/ecrire.htmlrQ   )r*   r.   r   r/   r_   r`   r   r   r   rV   FILESrW   rX   	messageeserrorr   r   )r;   r\   rQ   s      r@   ecrirer~   n   s     L Qv~88::I Q	O	P	PP','''gl2d7=3HDU\]]]MMOO ))+++/',---	*		w,fT];;;rB   c           
      h   t          t          |          }|j        | j        k    rt          t          t
          || j                  }| j        j        r*|j        r#t          j	        
                                j        r|j        j        dv rt          d          S t          | j        t          |j                  d|j        z   d|j                                                            dd          z   dz   	          }t'          |d
| j        | j        pd| j        pdd|j        i|          }|                                r\|                                 t3          j        | d           |xj        dz  c_        |                                 t7          d          S t9          | d||d          S )C   Renvoie vers la vue de réponse au message dont l'id est message_idre   rl   rn   %   Vous n'avez pas le droit de répondreRe: >

>rg   listedestinatairestitrecorpsFNrx   rO   rN   rz   r$   r   accueil/repondre.htmlrQ   r\   )r   r   rg   r*   r   r   r.   rv   r   r/   r_   r`   r,   r   ru   r   r   stripreplacer   rV   r{   r   rW   rX   r|   r}   r   r   )r;   
message_idr\   rx   reponserQ   s         r@   ro   ro   {   s    W444Ngl""-!,wGLQQQL H<0 H9R9R9T9T9c Hgngug~  C[  h[  h[	F	G	GG',3w~;N;NX^`g`mXmx{  }D  }J  }P  }P  }R  }R  }Z  }Z  [_  `e  }f  }f  yf  gk  yk  m  m  mGUGL',2F$H]Y]jx  {B  {U  jW  dk  	l  	l  	lMMOO ))+++/',---!	*		w.tg/N/NOOOrB   c           
         t           j                            |                              t          | j        d          t          | j                  z            }|                                st          d          |                                }t          |j	        
                                          }|j        | j        k    r?| j        j        r2t          j                                        j        st!          d          S nt#          t$          || j                  }| j        j        r9|j        r2t          j                                        j        st!          d          S |                    t%          |j        d	                     d
                    d |D                       }t          | j        |d|j        z   d|j                                                            dd          z   dz             }t5          ||| j        | j        pd| j        pdd|i|          }|                                rl|                                 t?          j         | d           |j        | j        k    r$|xj        dz  c_        |                                 tC          d          S tE          | d||d          S )r   re   Trf   ri   rk   r   rl   N)r*   r\   rm   c                 6    g | ]}t          |j                  S  )ru   r*   ).0destis     r@   
<listcomp>z!repondreatous.<locals>.<listcomp>   s      L L LUUZ L L LrB   r   r   r   r   r   rx   r   rz   r$   r   r   r   )#r   r/   rS   r   r*   rc   r   rq   r1   messagerecur0   rg   r.   r   r_   r`   r   r   r   rv   appendjoinr   r   r   r   r   rV   r{   rW   rX   r|   r}   r   r   )r;   r   r\   destinatairesr   r   r   rQ   s           r@   repondreatousr      s    ?!!Z!00777<]a8b8b8bef  |C  |H  fI  fI  fI  9I  J  J '%&&&==??w*..0011Ngl""\ I 9 9 ; ; J I
 G
H
HH
Lgl
K
K
K%\ IEN I6>3L3L3N3N3] I
 G
H
HH|EEEFFFii L Lm L L LMM',<NX^`g`mXmx{  }D  }J  }P  }P  }R  }R  }Z  }Z  [_  `e  }f  }f  yf  gk  yk  m  m  mG]GL',:N$PWP]Peae  sA  CU  rV  cj  	k  	k  	kMMOO ))+++/',---^w|##>>A>>::<<<	*		w.tg/N/NOOOrB   c                 "    t          | d          S )Nzaccueil/qrcode.html)r   rE   s    r@   qrcoder      s    w,---rB   c                 8   |                      d          }t          j        |          }t                      }|                    |d           t          d          }|                    |                                           |                                 |S )N/PNG)rT   z	image/png)content_type)	build_absolute_uriqrmaker   rX   r   writegetvalueclose)r;   urlimgbufferresponses        r@   	qrcodepngr      s    !!#&&	ws||
))&k222	!!"""rB   )0django.httpr   r   r   django.shortcutsr   r   r   django.contrib.authr	   django.contrib.auth.decoratorsr
   accueil.modelsr   r   r   r   r   r   r   r   accueil.formsr   r   r   r   r   django.contribr   r|   ecolle.settingsr   r   r8   r   r   django.db.modelsr   ior   rA   rF   rZ   r\   r~   ro   r   r   r   rB   r@   <module>r      s   D D D D D D D D D D @ @ @ @ @ @ @ @ @ @ & & & & & & 9 9 9 9 9 9 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ e e e e e e e e e e e e e e 0 0 0 0 0 0 ? ? ? ? ? ? ? ? 				                l l l8  
 )$$$< < %$<. )$$$	O 	O %$	O )$$$g g %$g2 )$$$
< 
< %$
< )$$$P P %$P$ )$$$P P %$P8 )$$$. . %$. )$$$  %$  rB   