
    !/i,                         d dl mZmZ d dlmZ d dlmZmZ d dlm	Z	 d dl
mZ d dlZd dl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 d dlmZ d Zed             Zed             Zed             ZdS )    )renderredirect)messages)UsuarioTipoUsuario)FileSystemStorage)settingsN)JsonResponse)require_POST)check_passwordmake_password)ClaveUsuario)verify_password)EmailMultiAlternativesc                 r   | j                             d          }|st          d          S t          j                            |          }| j        dk    rad| j        v rW| j        d         }|j        rud|j        vrk	 t          j	        
                    t          j        t          |j                                      dd                    }t          |j                                      d          rZt          |j                                      d	d
          d
         }t          j	        
                    t          j        d|          }n<t          j	        
                    t          j        t          |j                            }t          j	                            |          rt          j        |           n)# t&          $ r}t)          d|            Y d }~nd }~ww xY wt+          t          j	        
                    t          j        d                    }|j                            d          d         }t/          j                    j         d| }	|                    |	|          }
d|
 |_        |                                 t7          j        | d           t          d          S t:          j                            |j                  }ddl m!} |j                            d          "                    dddd          }||tG          |          d}tI          | d|          S )Nuser_idloginidPOSTprofile_imagedefaultzprofile/ /   profilez"Error deleting old profile image: )location.z)Foto de perfil actualizada correctamente.zperfil:perfil)usuario__docnumberr   )PoliticaContrasenaT)estador   regladescripcionejemplo)usuariopermisospolicieszperfil.html)%sessiongetr   r   objectsmethodFILESr   ospathjoinr	   
MEDIA_ROOTstrreplace
startswithsplitexistsremove	Exceptionprintr   nameuuiduuid4hexsaver   successr   filter	docnumberusuarios_sa.modelsr!   valueslistr   )requestr   r&   imageold_image_pathrelative_pathefsextnew_filenamefilenamer'   r!   r(   contexts                  ./var/www/html/Desarrollo/vibra/perfil/views.pyperfil_viewrP      s   o!!),,G !   o!!W!--G~gm++M/2E  D9GO#C#CD%'W\\(2Es7?G[G[GcGcdnprGsGs%t%tN 7?++66zBB a(+GO(<(<(B(B3(J(J1(M)+h6I9Vc)d)d *,h6I3wK_K_)`)`w~~n55 2	.111  D D DBqBBCCCCCCCCD #BGLL9Li,X,XYYYB *""3''+C"jll.6666Lww|U33H 433GOLLNNNW&QRRRO,,, "))W=N)OOH555555!)000==DDT7TaclmmH NN G
 '='222s   E G 
G)G$$G)c                    | j                             d          }|st          dddd          S | j                            d          }|st          ddd          S 	 t          j                            |	          }t          j                            |
          }t          ||j                  rt          ddi          S t          ddd          S # t          j	        t          j	        f$ r t          ddd          cY S w xY w)Nr   FUsuario no autenticado.r?   message  statuscurrent_passwordu   Contraseña requerida.r   r&   r?   Tu   Contraseña incorrecta.zError al verificar usuario.)
r)   r*   r
   r   r   r+   r   r   passwordDoesNotExist)rE   r   rX   r&   	clave_objs        rO   verify_password_viewr]   H   s5   o!!),,G b:STT]`aaaa|''(:;; U:RSSTTTZ/%%%11 (,,W,==	 +Y-?@@ 	ZD 1222E>W X XYYY ,";< Z Z Z:WXXYYYYYZs    A%C C -DDc                    | j                             d          }|st          dddd          S | j                            d          }| j                            d          }|r|st          dd	d          S ||k    rt          dd
d          S 	 t          j                            |          }t          j                            |          }t          |          |_        |	                                 t          ddd          S # t          j
        t          j
        f$ r t          ddd          cY S w xY w)Nr   FrR   rS   rU   rV   new_passwordconfirm_passwordz"Todos los campos son obligatorios.u   Las contraseñas no coinciden.r   rY   Tu%   Contraseña actualizada exitosamente.u    Error al actualizar contraseña.)r)   r*   r
   r   r   r+   r   r   rZ   r>   r[   )rE   r   r_   r`   r&   r\   s         rO   change_password_viewra   _   sj   o!!),,G b:STT]`aaaa<##N33L|''(:;; a/ a:^__```''':Z[[\\\
_/%%%11 (,,W,==	*<88	9`aabbb ,";< _ _ _:\]]^^^^^_s   A9D -D>=D>c           	         | j                             d          }|st          dddd          S | j                            d          }|st          ddd          S 	 t          j                            |	          }d
|j         }g d}dg}d|j         d|j         d|j         d| d	}d|j         d|j         d| d}t          ||t          j
        ||          }	|	                    |d           |	                                 t          ddd          S # t          $ r.}
t          d|
            t          ddd          cY d }
~
S d }
~
ww xY w)Nr   FrR   rS   rU   rV   error_descriptionu)   La descripción del error es obligatoria.r   zReporte de Datos Errados - )z comunicacionesgghh@jolifoods.comzyeison.betancur@jolifoods.comzfernando.zuluaga@jolifoods.comzjoan.montoya@jolifoods.coma  
        <!DOCTYPE html>
        <html>
        <head>
            <meta charset="utf-8">
            <style>
                body {
                    font-family: 'Inter', system-ui, -apple-system, sans-serif;
                    margin: 0;
                    padding: 0;
                    background-color: #0f172a;
                }
                .wrapper {
                    width: 100%;
                    background: linear-gradient(175deg, #3f9b9c 3%, #653db6 38%, #45a8ac 68%, #6f42c9 100%);
                    padding: 40px 0;
                }
                .container {
                    max-width: 600px;
                    margin: 0 auto;
                    background-color: #1e293b;
                    border-radius: 16px;
                    overflow: hidden;
                    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
                    border: 1px solid rgba(255, 255, 255, 0.1);
                }
                .header {
                    background: rgba(15, 23, 42, 0.6);
                    padding: 30px;
                    text-align: center;
                    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
                }
                .logo-text {
                    font-size: 28px;
                    font-weight: 800;
                    background: linear-gradient(to right, #5de1e6, #8b53fe);
                    -webkit-background-clip: text;
                    -webkit-text-fill-color: transparent;
                    text-transform: uppercase;
                    letter-spacing: -1px;
                    margin: 0;
                    display: inline-block;
                    color: #8b53fe; /* Fallback */
                }
                .content {
                    padding: 40px 30px;
                    text-align: left;
                    color: #ffffff;
                }
                .title {
                    font-size: 24px;
                    font-weight: 700;
                    margin-bottom: 16px;
                    color: #ffffff;
                    text-align: center;
                }
                .text {
                    font-size: 16px;
                    line-height: 1.6;
                    color: #cbd5e1;
                    margin-bottom: 20px;
                }
                .data-box {
                    background-color: rgba(255, 255, 255, 0.05);
                    padding: 20px;
                    border-radius: 8px;
                    margin-bottom: 20px;
                    border: 1px solid rgba(255, 255, 255, 0.1);
                }
                .label {
                    font-size: 12px;
                    color: #94a3b8;
                    text-transform: uppercase;
                    letter-spacing: 0.5px;
                    margin-bottom: 4px;
                    display: block;
                }
                .value {
                    font-size: 16px;
                    color: #ffffff;
                    font-weight: 500;
                }
                .footer {
                    background-color: rgba(15, 23, 42, 0.6);
                    padding: 20px;
                    text-align: center;
                    font-size: 12px;
                    color: #94a3b8;
                    border-top: 1px solid rgba(255, 255, 255, 0.1);
                }
            </style>
        </head>
        <body>
            <div class="wrapper">
                <div class="container">
                    <div class="header">
                        <h1 class="logo-text">VIBRA 2.0</h1>
                    </div>
                    <div class="content">
                        <h2 class="title">Reporte de Datos Errados</h2>
                        <p class="text">
                            El usuario <strong>u  </strong> ha reportado información incorrecta en su perfil.
                        </p>
                        
                        <div class="data-box">
                            <span class="label">Nombre del Usuario</span>
                            <div class="value">z</div>
                            <br>
                            <span class="label">Documento</span>
                            <div class="value">u  </div>
                        </div>

                        <p class="text"><strong>Descripción del error reportado:</strong></p>
                        <div class="data-box">
                            <div class="value" style="white-space: pre-wrap;">uw  </div>
                        </div>
                    </div>
                    <div class="footer">
                        &copy; 2024 VIBRA 2.0 - Sistema de Gestión Integral<br>
                        Este es un correo automático generado por el sistema.
                    </div>
                </div>
            </div>
        </body>
        </html>
        z#Reporte de Datos Errados

Usuario: z
Documento: u   

Descripción del error:
z

Enviado desde VIBRA 2.0
)ccz	text/htmlTzReporte enviado exitosamente.zError enviando reporte: u/   Error al enviar el reporte. Intenta más tarde.)r)   r*   r
   r   r   r+   nombrerA   r   r	   DEFAULT_FROM_EMAILattach_alternativesendr8   r9   )rE   r   rc   r&   subject	to_emails	cc_emailshtml_messageplain_messagemsgrI   s              rO   report_error_viewro   z   s   o!!),,G b:STT]`aaaa(()<== h:effgggZn/%%%11@@@{{{	12	}J 18K} }T 18U} }Z 180A[} }d Pae} } }~	
.	 	 	 	 	 	 	 %WmX=XZchqrrr|[999


9XYYZZZ n n n,,,---:kllmmmmmmmmns    B>D 
E)#EEE)django.shortcutsr   r   django.contribr   login.modelsr   r   django.core.files.storager   django.confr	   r.   r;   django.httpr
   django.views.decorators.httpr   django.contrib.auth.hashersr   r   r   login.viewsr   django.core.mailr   rP   r]   ra   ro        rO   <module>r|      sj   - - - - - - - - # # # # # # - - - - - - - - 7 7 7 7 7 7             				  $ $ $ $ $ $ 5 5 5 5 5 5 E E E E E E E E % % % % % % ' ' ' ' ' ' 3 3 3 3 3 373 73 73r Z Z Z, _ _ _4 cn cn cn cn cnr{   