
    jh1                     "   d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZmZ ddlmZ ddlmZmZ d d	lmZ e ed
      d               Ze ed
      d               Ze ed
      d               Ze ed
      d               Ze ed
      d               Ze ed       d               Ze ed       d               Ze ed       d               Zd dlm	Z	 d dl mZmZ d dl
mZmZ d dlmZ ddlmZ d dlmZ e ed       d               Zy)    )renderredirectget_object_or_404)messages)timezone)
connection)login_requireduser_passes_test   )
ClientForm)ClientTenantDeleteRequest)group_requiredDesenvolvedoresc                 ,   | j                   dk(  rmt        | j                        }|j                         r1|j	                          t        j                  | d       t        d      S t        j                  | d       n
t               }t        | dd|i      S )NPOSTzTenant registrado com sucesso!tenant_management:tenant_listzErro ao registrar o tenant.z&tenant_management/register_tenant.htmlform)
methodr   r   is_validsaver   successr   errorr   )requestr   s     7/var/www/html/cagpublico/cag/tenant_management/views.pyregister_tenantr      sw     ~~',,'==?IIKW&FG;<<NN7$AB|'Cfd^TT    c                 \    t         j                  j                         }t        | dd|i      S )N"tenant_management/tenant_list.htmltenants)r   objectsallr   )r   r    s     r   tenant_listr#      s+     nn  "G'?)WAUVVr   c           	         t        t        |      }t        j                  j                         }| j                  dk(  rot        | j                  |      }|j                         r1|j                          t        j                  | d       t        d      S t        j                  | d       nt        |      }t        | d|||dd	      S )
Nidr   )instancezTenant atualizado com sucesso!r   zErro ao atualizar o tenant.r   T)r   tenantr    editing)r   r   r!   r"   r   r   r   r   r   r   r   r   r   r   )r   	tenant_idr(   r    r   s        r   edit_tenantr+   $   s     v)4Fnn  "G~~',,8==?IIKW&FG;<<NN7$AB6*'?	B  r   c                    t        t        |      }| j                  dk(  rt        j                  j                  |d      j                         r!t        j                  | d       t        d      S t        j                  j                  || j                         t        j                  | d       t        d      S t        | d	d
|i      S )Nr%   r   F)r(   approvedu7   Já existe uma solicitação pendente para este tenant.r   )r(   requested_byu8   Solicitação enviada para aprovação do administrador.z,tenant_management/confirm_delete_tenant.htmlr(   )r   r   r   r   r!   filterexistsr   warningr   createuserr   r   )r   r*   r(   s      r   solicitar_exclusao_tenantr4   =   s     v)4F~~&&--Ve-LSSUW&_`;<<##**  	+ 	
 	"\]788'IHV\K]^^r   c                     t         j                  j                         }t        j                  j	                  d      }t        | d||d      S )NFr-   z%tenant_management/painel_cag_adm.html)r    delete_requests)r   r!   r"   r   r/   r   )r   r    r7   s      r   painel_cag_admr8   Q   sM     nn  "G)1188%8HO'B*E  r   c                 V    | j                   j                  d      j                         S NAdministradornamegroupsr/   r0   us    r   <lambda>rB   ]       AHHOOOAHHJ r   c                 `    t         j                  j                  d      }t        | dd|i      S )NFr6   z'tenant_management/lista_aprovacoes.html	pendentes)r   r!   r/   r   )r   rE   s     r   painel_aprovacoesrF   \   s3     $++22E2BI'D{T]F^__r   c                 V    | j                   j                  d      j                         S r:   r>   r@   s    r   rB   rB   d   rC   r   c                    t        t        |d      }| j                  dk(  r|j                  j                  }d|_        d|_        | j                  |_        t        j                         |_        |j                          t        j                         5 }|j                  d| d       d d d        |j                  j!                          t#        j$                  | d       t'        d	      S t)        | d
d|i      S # 1 sw Y   SxY w)Npendente)r&   statusr   aprovadoTzDROP SCHEMA IF EXISTS "z	" CASCADEu   Tenant excluído com sucesso.#tenant_management:painel_aprovacoesz&tenant_management/confirm_approve.htmlreq)r   r   r   r(   schema_namerJ   r-   r3   approved_byr   nowapproved_atr   r   cursorexecutedeleter   r   r   r   )r   req_idrM   rN   rR   s        r   aprovar_exclusaorV   c   s     /F:
NC~~jj,,  
!,,",,.
   	MFNN4[MKL	M 	

"AB=>>'CeS\RR	M 	Ms   C<<Dc                 V    | j                   j                  d      j                         S r:   r>   r@   s    r   rB   rB      rC   r   c                     t        t        |      }|j                          t        j                  | d       t        d      S )Nr%   u0   Solicitação de exclusão rejeitada e removida.rL   )r   r   rT   r   infor   )r   solicitacao_idsolicitacaos      r   rejeitar_exclusao_tenantr\      s8     $$7NKKMM'MN9::r   )r   r   )Informativo)schema_contextc                 V    | j                   j                  d      j                         S )Nr   r<   r>   r@   s    r   rB   rB      s    AHHOO1BOCJJL r   c                    t        d      5  | j                  dk(  rt        j                  j	                  | j
                  j                  d      | j
                  j                  d      | j
                  j                  d             t        j                  | d       t        d      cd d d        S t        j                  j                  d	      }d d d        t        | d
di      S # 1 sw Y   xY w)Npublicr   titulomensagemdata_programada)rb   rc   rd   z(Informativo salvo para todos os tenants.z(tenant_management:gerenciar_informativosz-data_programadaz-tenant_management/gerenciar_informativos.htmlinformativos)r^   r   r]   r!   r2   r   getr   r   r   order_byr   )r   re   s     r   gerenciar_informativosrh      s     
	! 
H>>V#&&||''1 ))*5 ' 0 01B C ' 
 W&PQFG
H 
H #**334FG
H 'JM  
H 
Hs   BC)3C))C2N) django.shortcutsr   r   r   django.contribr   django.utilsr   	django.dbr   django.contrib.auth.decoratorsr	   r
   formsr   modelsr   r   login.viewsr   r   r#   r+   r4   r8   rF   rV   r\   r]   django_tenants.utilsr^   rh    r   r   <module>rs      st   @ @ # !   K  / & !"U # U !"W # W
 !" # . !"_ # _$ !" #  JK` L `
 JKS L S4 JK; L ; ! - K #  / LM N r   