
    Dh'
                     n    S SK Jr  S SKJr  SSKJr  S SKJr  S SKrS SK	r	 " S S\R                  5      rg)	    )forms)get_user_model   )Morador)GroupNc                      ^  \ rS rSr\R
                  " 5       r " S S5      rU 4S jrS r	S
S jr
S rSU 4S jjrS	rU =r$ )MoradorForm   c                        \ rS rSr\r/ SQrSrg)MoradorForm.Meta   )nome_completotelefonetipo_unidadeidentificacao_unidadevinculo
em_aluguelaluguel_por_appemail N)__name__
__module____qualname____firstlineno__r   modelfields__static_attributes__r       ,/var/www/html/grf_sindico/moradores/forms.pyMetar      s    	
r   r    c                 T   > UR                  SS 5      U l        [        TU ]  " U0 UD6  g )Ntenant)popr"   super__init__)selfargskwargs	__class__s      r   r%   MoradorForm.__init__   s'    jj40$)&)r   c                    U R                   R                  S5      n[        5       nU R                  (       aO  UR                  R                  XR                  S9R                  5       (       a  [        R                  " S5      e U$ UR                  R                  US9R                  5       (       a  [        R                  " S5      eU$ )Nr   )r   r"   u8   Já existe um morador com esse e-mail neste condomínio.)r   u&   Já existe um morador com esse e-mail.)	cleaned_datagetr   r"   objectsfilterexistsr   ValidationError)r&   r   Users      r   clean_emailMoradorForm.clean_email   s    !!%%g. ;;||""{{"CJJLL++,fgg M  ||"""/6688++,TUUr   c                    ^ [         R                  [         R                  -   [         R                  -   mSR	                  U4S j[        U5       5       5      $ )N c              3   P   >#    U  H  n[         R                  " T5      v   M     g 7f)N)secretschoice).0_
caracteress     r   	<genexpr>1MoradorForm.gerar_senha_segura.<locals>.<genexpr>,   s     J>aw~~j11>s   #&)stringascii_lettersdigitspunctuationjoinrange)r&   tamanhor<   s     @r   gerar_senha_seguraMoradorForm.gerar_senha_segura*   s;    ))FMM9F<N<NN
wwJ5>JJJr   c                 0   [        5       nUR                  S5      S   R                  5       nUnSnUR                  R	                  US9R                  5       (       a9  U U 3nUS-  nUR                  R	                  US9R                  5       (       a  M9  U$ )N@r   r   )username)r   splitlowerr.   r/   r0   )r&   r   r2   base_usernamerJ   contadors         r   gerar_usuario_unicoMoradorForm.gerar_usuario_unico.   s    C(+113 ll!!8!4;;=='
3HMH ll!!8!4;;== r   c                 
  > [        5       nU R                  S   nU R                  S   nU R                  5       nU R                  U5      nUR                  R                  UUUUS9nU R                  (       a  U R                  Ul        [        R                  R                  SS9u  pUR                  R                  U5        [        TU ]1  SS9n
Xzl        XPl        U(       a   UR                  5         U
R                  5         U
$ )Nr   r   )rJ   r   password
first_name	Moradores)nameF)commit)r   r,   rF   rO   r.   create_userr"   r   get_or_creategroupsaddr$   saveusergerada_senha)r&   rV   r2   r   nomesenharJ   r\   groupr;   moradorr)   s              r   r[   MoradorForm.save8   s    !!'*  1'')++E2||''	 ( 
 ;;++DK==..K.@',e,,!IIKLLNr   )r]   r"   )
   )T)r   r   r   r   r   
EmailFieldr   r    r%   r3   rF   rO   r[   r   __classcell__)r)   s   @r   r	   r	      s:    E
 
*K r   r	   )djangor   django.contrib.authr   modelsr   django.contrib.auth.modelsr   r8   r?   	ModelFormr	   r   r   r   <module>rk      s)     .  ,  M%// Mr   