
    $G$i]                     |   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mZ d dlmZ ddlmZ d d	lZd d	lZd d	lZd d
lmZ d dlmZ d dlmZ d dl ddlmZmZ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 m!Z! ddlmZ ddlmZ d dl"m#Z# d dl	mZ$ d dl%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, d Z- G d de      Z.e-d        Z/d dl0m1Z1 d dlmZ e&e-d               Z2e&e-d               Z3d  Z4d! Z5d dl0m1Z1 e&e-d"               Z6e&e-d#               Z7d dlmZmZ ddlmZ e&e-d$               Z8y	)%    )TemplateView)HttpResponseRedirect)renderredirect   )forms)authenticateloginlogout)messages)
SuperAdminN)render_to_string)mail)settings)*)AdminRegisterFormAdminSigninFormAdminForgetPasswordFormForgetVerificationForm)check_passwordmake_password)r   )user_passes_test)r
   )never_cache)get_random_string)	send_mail)r   wrapsc                 .     t                fd       }|S )Nc                     | j                   j                  d      s!t        j                  | d       t	        d      S  | g|i |S )Nadmin_idz"Please log in to access this page./admin-login)sessiongetr   errorr   )requestargskwargs	view_funcs      '/var/www/html/jeff/admin_panel/views.pywrapperz%admin_login_required.<locals>.wrapper(   sD    "":.NN7$HIN++242622    r   )r(   r*   s   ` r)   admin_login_requiredr,   '   s!    
93 3
 Nr+   c                       e Zd ZdZd Zd Zy)
AdminLogInzadmin-signup.htmlc                 D    t        || j                  dt               i      S )Nform)r   template_namer   )selfr%   s     r)   r#   zAdminLogIn.get2   s    gt11FO<M3NOOr+   c                    t        |j                        }|j                         r|j                  j	                  d      }|j                  j	                  d      }	 t
        j                  j	                  |      }t        ||j                        r<|j                  |j                  d<   t        j                   |dd	       t#        d
      S t        j                  |d       nt        j                  |d       t        || j                  d|i      S # t
        j                  $ r2 t        j                  |d       t        || j                  d|i      cY S w xY w)Nemailpasswordr4   zEmail not found.r0   r    zLogin successful!r
   
extra_tagsz/conversationszInvalid password.zInvalid form submission.)r   POSTis_validcleaned_datar#   r   objectsDoesNotExistr   r$   r   r1   r   r5   idr"   successr   )r2   r%   r0   r4   r5   super_admins         r)   postzAdminLogIn.post5   s!   w||,==?%%))'2E((,,Z8HK(004454A
 h(<(<=.9nn
+  *='R 011 w(;<NN7$>?gt11FD>BB ** Kw(:;gt'9'9FD>JJKs    D AEEN)__name__
__module____qualname__r1   r#   rA    r+   r)   r.   r.   /   s    'MPCr+   r.   c                 |    | j                   j                          t        j                  | dd       t	        d      S )NzLogged out successfully.r   r7   r!   )r"   flushr   r?   r   )r%   s    r)   admin_logoutrH   N   s2     OOW8XNN##r+   )	Paginator)r   c                 b   t         j                  j                         }| j                  j	                  dd      }t
        j                  j                         j                  d      }t        |d      }| j                  j	                  d      }|j                  |      }t        | d|||d      S )Nviewconversations-call_started_at
   pagezadmin-dashboard.html)adminrK   r   )r   r<   firstGETr#   ConversationMessageallorder_byrI   get_pager   )r%   rP   rK   messages_qs	paginatorpage_numberpage_objs          r)   admin_dashboardr[   X   s     $$&E;;??6?3D%--113<<=OPK+r*I++//&)K!!+.H'14  r+   c                    | j                   j                  d      }	 t        j                  j                  |      }| j                  dk(  r| j                  j                  d      }| j                  j                  d      }| j                  j                  d      }t        ||j                        s!t        j                  | d	       t        d
      S ||k7  r!t        j                  | d       t        d
      S t        |      |_        |j                          t        j                  | d       t        d      S t        | d      S # t        j                  $ r$ t        j                  | d       t        d      cY S w xY w)Nr    r>   zAdmin not found!r!   r9   current_passwordnew_passwordconfirm_passwordzCurrent password is incorrect.z/change-passwordzNew passwords do not match.zPassword changed successfully!z/?view=profilezchange-password.html)r"   r#   r   r<   r=   r   r$   r   methodr9   r   r5   r   saver?   r   )r%   r    rP   r^   r_   r`   s         r)   change_passwordrc   h   sC    "":.H(""&&(&3
 ~~"<<++,>?||''7"<<++,>?.?NN7$DE.//++NN7$AB.//&|4

"BC())'122/ "" (w 23''(s    E 4E>=E>c                     | j                   dk(  r| j                  j                  d      }	 t        j                  j                  |      }t        dd      }|| j                  d<   || j                  d<   t        d	d
|j                   d| dd|gd       t        j                  | d       t        d      S t        | d      S # t        j                  $ r$ t        j                  | d       t        d      cY S w xY w)Nr9   r4   r6      
0123456789)lengthallowed_chars	reset_otpreset_emailzPassword Reset OTPzHello z#,

Your OTP for password reset is: z&

This code will expire in 10 minutes.zcontact@nudgeworld.ioF)fail_silentlyz#An OTP has been sent to your email.
verify-otpz!No account found with this email.forgot-passwordzforgot-password.html)ra   r9   r#   r   r<   r   r"   r   	firstNamer   r?   r   r=   r$   r   )r%   r4   userotps       r)   forgot_passwordrq      s    ~~  )	/%%)))6D#1LIC ,/GOOK(-2GOOM* $((McURz{'# W&KLL)) '122	 && 	/NN7$GH-..	/s   BC 4C=<C=c                    | j                   dk(  r| j                  j                  d      }| j                  j                  d      }| j                  j                  d      }|s!t	        j
                  | d       t        d      S ||k(  rt        d      S t	        j
                  | d       t        d	      S t        | d
      S )Nr9   rp   ri   rj   zSession expired. Try again.rm   zadmin-dashboardzInvalid OTP. Please try again.rl   zverify-otp.html)ra   r9   r#   r"   r   r$   r   r   )r%   entered_otpsession_otpsession_emails       r)   
verify_otprv      s    ~~ll&&u-oo))+6++M:NN7$AB-..+%-..w @A%%',--r+   c                     t         j                  j                         j                  d      }t	        |d      }| j
                  j                  d      }|j                  |      }t        | dd|i      S )NrM   rN   rO   zconversations.htmlr   	rS   r<   rT   rU   rI   rR   r#   rV   r   r%   rW   rX   rY   rZ   s        r)   conversations_pagerz      sn     &--113<<=OPK+r*I++//&)K!!+.H'/H2  r+   c                     t         j                  j                         j                  d      }t	        |d      }| j
                  j                  d      }|j                  |      }t        | dd|i      S )NrM   rN   rO   zsummary.htmlr   rx   ry   s        r)   summary_pager|      sm     &--113<<=OPK+r*I++//&)K!!+.H'>H,  r+   c                     | j                   j                  d      }	 t        j                  j                  |      }t        | dd|i      S # t        j                  $ r t        d      cY S w xY w)Nr    r]   r!   zadmin-profile.htmlrP   )r"   r#   r   r<   r=   r   r   )r%   r    rP   s      r)   admin_profiler~      so     "":.H(""&&(&3 '/'51ABB "" (''(s    A A-,A-)9django.views.genericr   django.httpr   django.shortcutsr   r    r   django.contrib.authr	   r
   r   django.contribr   modelsr   mathrandomstringdjango.template.loaderr   django.corer   django.confr   calls.modelsr   r   r   r   django.contrib.auth.hashersr   r   django.contrib.auth.decoratorsr   
auth_logindjango.views.decorators.cacher   django.utils.cryptor   django.core.mailr   	functoolsr   r,   r.   rH   django.core.paginatorrI   r[   rc   rq   rv   rz   r|   r~   rE   r+   r)   <module>r      s3   - , -  ; ; #    3     f f - - # E "  ; 3 5 1 & # - % C C> $ $ , #   3  3<3@.* ,      .  C  Cr+   