
    eh&                        S SK JrJr  S SKJrJr  S SKJr  S SKJ	r	  SSK
Jr  S SKJr   " S S	\5      r " S
 S\5      rS SK JrJr  S SKJ	r	  S SKJr  S SKJr  S SKJr  SSK
Jr  SSKJr  SSKJr  SrSr\	S 5       rS SK Jr  SSK
Jr  S SKJr  S SKJ	r	  \	S 5       rS SK JrJr  S SKJ	r	  SSK
Jr  S SKJr  \	S 5       rS SK JrJrJr  S SKJr  S SKJ r   S SKJ	r	  S SKJr  SSK
Jr  SSKJrJ!r!  S SKJr  \	S 5       r"\ \	S 5       5       r#\	S 5       r$S SK Jr  S SKJr  S SK%J&r&  S SKJ	r	  S SKJr  S SK%J&r&  S SKJr  \	S 5       r'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(J/r/  S$ r0g")%    )renderredirect)ListView
DetailView)
connection)login_required   )Reuniao)ReuniaoFormc                   4   ^  \ rS rSr\rSrSrU 4S jrSr	U =r
$ )ReuniaoListView	   zreuniao/listar_reunioes.htmlreunioesc                 0  > U R                   R                  R                  (       ac  U R                   R                  R                  (       a>  [        R
                  " U R                   R                  R                  R                  5        [        TU ]!  5       $ N	requestuseris_authenticatedtenantr   
set_schemaschema_namesuperget_querysetself	__class__s    //var/www/html/cagpublico_m/cag/reuniao/views.pyr   ReuniaoListView.get_queryset   Z    <<--$,,2C2C2J2J!!$,,"3"3":":"F"FGw#%%     __name__
__module____qualname____firstlineno__r
   modeltemplate_namecontext_object_namer   __static_attributes____classcell__r   s   @r   r   r   	   s    E2M$& &r!   r   c                   4   ^  \ rS rSr\rSrSrU 4S jrSr	U =r
$ )ReuniaoDetailView   zreuniao/detalhes_reuniao.htmlreuniaoc                 0  > U R                   R                  R                  (       ac  U R                   R                  R                  (       a>  [        R
                  " U R                   R                  R                  R                  5        [        TU ]!  5       $ r   r   r   s    r   r   ReuniaoDetailView.get_queryset   r    r!   r"   r#   r-   s   @r   r/   r/      s    E3M#& &r!   r/   )	timedelta)parse_datetime)criar_reuniao_no_teamszfabiano.alves@grfgraph.com.brz$fc126174-2892-4101-bc09-3239cd37c01ac                    U R                   S:X  Ga$  [        U R                  5      n[        SU R                  5        UR	                  5       (       Ga  UR                  SS9nU R                  Ul        U R                  R                  (       aO  [        U R                  S5      (       a4  [        R                  " U R                  R                  R                  5        [        SUR                  [        UR                  5      5        [!        UR                  ["        5      (       aZ  [        SUR                  5        [%        UR                  5      Ul        [        SUR                  [        UR                  5      5        U R                  R&                  [(        :X  a,   [+        UR,                  UR                  [.        5      Ul        O*[        S
U R                  R&                   S[(         S35        UR                  5         UR5                  5         [7        S5      $ [        SUR8                  5        O
[        5       n[;        U SSU05      $ ! [2         a  nS Ul        [        S	U 35         S nANS nAff = f)NPOSTzDEBUG: POST DATA =F)commitr   z4DEBUG: Antes de salvar no model, reuniao.data_hora =z$DEBUG: data_hora veio como string =>zDEBUG: data_hora convertido =>u!   ❌ Erro ao gerar link do Teams: u   ⚠️ O usuário u#    não pode criar reuniões. Apenas z pode criar.listar_reunioesu   DEBUG: Form inválido =>zreuniao/agendar_reuniao.htmlform)methodr   r8   printis_validsaver   
criado_porr   hasattrr   r   r   r   	data_horatype
isinstancestrr5   emailORGANIZER_EMAILr6   tituloORGANIZER_ID
link_teams	Exceptionenviar_conviter   errorsr   )r   r;   r1   es       r   agendar_reuniaorO   1   s   ~~7<<("GLL1==??iiui-G!(G ||,,x1P1P%%gll&9&9&E&EF H'J[J[]abibsbs]tu '++S11<g>O>OP$273D3D$E!68I8I4PWPaPaKbc ||!!_4	C)?))$*G& *7<<+=+=*>>abqarr~  A LLN""$-..,dkk:}'9FD>JJ! ! C)-G&=aSABBCs   *I 
I8I33I8)r   c           	         U R                   R                  (       aO  U R                   R                  (       a4  [        R                  " U R                   R                  R
                  5        [        R                  R                  5       n/ nU HZ  nUR                  UR                  UR                  R                  5       UR                  UR                  UR                  S.5        M\     [!        U SSU05      $ )N)titlestarturlparticipantesresumozreuniao/calendario.htmleventos)r   r   r   r   r   r   r
   objectsallappendrH   rB   	isoformatrJ   rT   rU   r   )r   r   rV   r1   s       r   
calendarior[   r   s    ||$$)<)<gll11==> ""$H G^^&&002%%$22nn
 	  '4y'6JKKr!   )get_object_or_404r   c                 f   U R                   R                  (       aO  U R                   R                  (       a4  [        R                  " U R                   R                  R
                  5        [        [        US9nU R                  S:X  a  UR                  5         [        S5      $ [        U SSU05      $ )Nidr8   r:   zreuniao/deletar_reuniao.htmlr1   )r   r   r   r   r   r   r\   r
   r<   deleter   r   r   pkr1   s      r   deletar_reuniaorc      s|    ||$$)<)<gll11==>B/G~~)**'9Iw;OPPr!   )r   r\   r   )JsonResponse)require_POST)r   AtaFormc                     U R                   R                  (       aO  U R                   R                  (       a4  [        R                  " U R                   R                  R
                  5        [        [        US9nU R                  S:X  a^  [        U R                  US9nUR                  5       (       a  UR                  5         [        SS05      $ [        SUR                  S.5      $ [        US9n[        U SUUS	.5      $ )
Nr^   r8   )instancesuccessTF)ri   rM   zreuniao/editar_ata.html)r;   r1   )r   r   r   r   r   r   r\   r
   r<   rf   r8   r>   r?   rd   rM   r   )r   rb   r1   r;   s       r   
editar_atarj      s    ||$$)<)<gll11==>B/G~~w||g6==??IIKD 122EFFG$D'47  r!   c                 x   U R                   R                  (       aO  U R                   R                  (       a4  [        R                  " U R                   R                  R
                  5        [        [        US9nUR                  (       d$  SUl        UR                  5         [        SS05      $ [        SSS.5      $ )Nr^   Tri   Fu   Ata já arquivada)ri   error)r   r   r   r   r   r   r\   r
   	arquivadar?   rd   ra   s      r   arquivar_atarn      s     ||$$)<)<gll11==>B/G Y-..E4GHIIr!   c           
         U R                   R                  (       aO  U R                   R                  (       a4  [        R                  " U R                   R                  R
                  5        U R                  R                  S5      nU(       d  [        U SSS05      $  [        R                  R                  USS9R                  S5      n[        U SUUS.5      $ ! [         a%  n[        U SSS	[        U5       305      s S nA$ S nAff = f)
Ndatazreuniao/buscar_atas.htmlrl   u   Data não fornecidaT)data_hora__daterm   rB   )atasdata_pesquisazErro na busca: )r   r   r   r   r   r   GETgetr   r
   rW   filterorder_byrK   rE   )r   rp   rr   rN   s       r   buscar_atasrx      s    ||$$)<)<gll11==>;;??6"Dg9GEZ;[\\%%  & 
 (;
 	
 g9!<
  	  g9s1vh/<
  	s   <C 
D	$D>D	D	)FileSystemStoragec                    U R                   R                  (       aO  U R                   R                  (       a4  [        R                  " U R                   R                  R
                  5        U R                  S:X  ao  SU R                  ;  a  [        SS0SS9$ U R                  S   n[        5       nUR                  UR                  U5      nUR                  U5      n[        SU05      $ [        SS0S	S9$ )
Nr8   filerl   zNenhum arquivo encontrado.i  )statusfile_urlu   Método inválido.i  )r   r   r   r   r   r   r<   FILESrd   ry   r?   namerS   )r   uploaded_filefsfilenamer}   s        r   upload_filer      s    ||$$)<)<gll11==>~~&*F GPSTTf- 77=--}=66(#Z233"67DDr!   )	send_mail)render_to_string)settingsN)EmailMultiAlternativesc                    [        U S5      (       aR  [        U R                  S5      (       a7  U R                  R                  R                  n[        R
                  " U5        O[        S5        g SU R                   3n[        R                  " SU R                  5      nU Vs/ s H)  oDR                  5       (       d  M  UR                  5       PM+     nnU(       d  [        S5        g SU R                   SU R                  R                  S	5       S
U R                   SU R                   SSR!                  U5       3
n[#        SSU 05      n [%        X&[&        R(                  U5      nUR+                  US5        UR-                  5         [        SSR!                  U5       SU S35        g s  snf ! [.         a  n	[        SU	 35         S n	A	g S n	A	ff = f)Nr@   r   u4   ❌ Erro: Tenant não encontrado para esta reunião.u   Convite para Reunião: z[;,]\s*u7   ❌ Nenhum destinatário válido para envio do convite.u%   Você foi convidado para a reunião: u   

📅 Data e Hora: z%d/%m/%Y %H:%Mu   
🔗 Link do Teams: u   

📝 Resumo: u   
👥 Participantes: z, zreuniao/email_convite.htmlr1   z	text/htmlu%   ✅ Convite enviado com sucesso para z
 (Schema: )u   ❌ Erro ao enviar convite: )rA   r@   r   r   r   r   r=   rH   resplitrT   striprB   strftimerJ   rU   joinr   r   r   DEFAULT_FROM_EMAILattach_alternativesendrK   )
r   tenant_schemasubjectemailsrF   recipient_listmessagehtml_messagemsgrN   s
             r   rL   rL     s   t\""wt'I'I..::m,DE'}5GXXj$"4"45F17I;;=mekkmNIGH 0} =!^^445EFG H#/ 0} %#yy89		;  $$@4C L2$Wx7R7RTbc|[9
5dii6O5PPZ[hZiijkl+ J,  2,QC0112s%   $F. F.AF3 3
G=GG)1django.shortcutsr   r   django.views.genericr   r   	django.dbr   django.contrib.auth.decoratorsr   modelsr
   reuniao.formsr   r   r/   datetimer4   django.utils.dateparser5   forms
teams_authr6   rG   rI   rO   r[   r\   rc   django.httprd   django.views.decorators.httpre   rf   rj   rn   rx   django.core.files.storagery   r   django.core.mailr   django.template.loaderr   django.confr   r   r   rL   r"   r!   r   <module>r      sR   - 5   9  %	&h 	&	&
 	& . 9    1   .15.K .Kv $    9L L( 9 9   
Q 
Q A @ $ 5 9    ' $ ( 
J  
J  . $ $ 7 9   7 $E E  ' 3     	 3!2r!   