U
    Dh                     @   s   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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Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Z dd Z!dd  Z"d!d" Z#d#d$ Z$dS )%    )redirectrender)authenticatelogin)	Paginator)JsonResponse)FacultyLecture_TopicsLive_Lecture)settings)	send_mailN)timezone)Prefetchc                 C   s   | j dkr| jd}| jd}d}t||s@tdddS |r|rtjj||d	 }|
 d	krt|}d
| jd< |d	 d | jd< |d	 d | jd< |d	 d | jd< |d	 d | jd< td
ddS tdddS tdddS d S )NPOSTemailpasswordz4\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,7}\bFz Please enter valid email addresssuccessmessage)r   r   r   Tis_logged_inid
faculty_idfaculty_namefaculty_emailcontactZfaculty_mobilezLogged in successfullyzInvalid credentialsz"Please enter your email & password)methodr   getrematchr   r   objectsfiltervaluescountlistsession)requestr   r   regexfacultyZfaculty_data r(   -/var/www/html/crackeverytest/faculty/views.pyfaculty_login   s*    

r*   c                 C   s   | j dkr| jd}|r|| jd< tdd}|| jd< d}dt| d	 }tj}|g}t	j
j|d
}| dkrt|||| tdddS tdddS ntdddS d S )Nr   r   r   i  i'  otpz!Reset password - Crack Every TestzHi, z otp to reset passwordr   r   TzOTP sent successfully.r   FzAccount not foundzPlease enter your email.)r   r   r   r$   randomrandintstrr   EMAIL_HOST_USERr   r   r    r"   r   r   )r%   r   r+   subjectr   
email_fromrecipient_listr'   r(   r(   r)   sendOTP(   s     


r4   c                 C   s^   | j dkrZ| jd}|rLt|| jdkr<tdddS tdddS ntdddS d S )	Nr   r+   TOTP verified successfully.r   FzPlease enter correct OTP.zPlease enter OTP.)r   r   r   intr$   r   )r%   r+   r(   r(   r)   
processOTP<   s    
r7   c                 C   sX   | j dkrT| jd}|rFtjj| jddj|d tdddS td	d
dS d S )Nr   r   foget_emailr,   )r   Tr5   r   FzPlease enter your password.)	r   r   r   r   r   r    r$   updater   )r%   r   r(   r(   r)   savePasswordG   s    
r:   c                 C   s   t | di S )Nzfauth/faculty-login.htmlr   r%   r(   r(   r)   r   Q   s    r   c                 C   s   t | di S )Nzfauth/forget-password.htmlr;   r<   r(   r(   r)   forgetPasswordT   s    r=   c                 C   s   t | di S )Nzfauth/verify-otp.htmlr;   r<   r(   r(   r)   	verifyOTPW   s    r>   c                 C   s   t | di S )Nzfauth/reset-password.htmlr;   r<   r(   r(   r)   resetPasswordZ   s    r?   c                 C   s   | j   tdS )Nzfaculty/login)r$   flushr   r<   r(   r(   r)   logout]   s    
rA   c                 C   s   t | di S )NzfacultyDashboard.htmlr;   r<   r(   r(   r)   facultyDashboardb   s    rB   c              	   C   s   | j d}tjj|d}t  }tjj||d	d}g }|D ]2}|
|j|jd|jd|jdd qDt| d||t|d	S )
Nr   r   r   lacture_date__gtelacture_date%Y-%m-%dz%H:%M)titlestart
start_timeend_timezupcomming-lecture-list.htmlr'   upcommingLecturesZlecture_json)r$   r   r   r   r   nowdater
   r    order_byappendrH   rF   strftimerJ   rK   r   jsondumpsr%   r   r'   todayrM   Zlecture_dataZlecr(   r(   r)   uplcommingLectures|   s"    



rW   c                 C   s   | j d}tjj|d}t  }tjj||d	d}g }|D ]&}|
|j|jd|jpbdd qDt| d||t|d	S )
Nr   rC   rD   rF   rG    )rH   rI   descriptionz	demo.htmlrL   )r$   r   r   r   r   rN   rO   r
   r    rP   rQ   rH   rF   rR   video_descriptionr   rS   rT   rU   r(   r(   r)   	demoEvent   s     

r[   c                 C   sp   | j d}tjj|d}t  }tjj||d	d}t
|d}| jd}||}t| d|||dS )	Nr   rC   )r   lacture_date__ltz-lacture_date
   pagezpast-lecture-list.html)r'   paginated_lecturespastlecture)r$   r   r   r   r   rN   rO   r
   r    rP   r   GETget_pager   )r%   r   r'   rV   r`   	paginatorpage_numberr_   r(   r(   r)   pastLectures   s    

re   )%django.shortcutsr   r   django.contrib.authr   r   django.core.paginatorr   django.httpr   Zlearn.modelsr   r	   r
   django.confr   django.core.mailr   r   r-   django.utilsr   django.db.modelsr   rS   r*   r4   r7   r:   r=   r>   r?   rA   rB   rW   r[   re   r(   r(   r(   r)   <module>   s0   
