o
    h                     @   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rv| jd}| jd}d}t||s tdddS |ro|rotjj||d	 }|
 d	krht|}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contact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facultyfaculty_data r*   -/var/www/html/crackeverytest/faculty/views.pyfaculty_login   s,   

r,   c                 C   s   | j dkrV| jd}|rO|| jd< tdd}|| jd< d}dt| d	 }tj}|g}t	j
j|d
}| dkrHt|||| tdddS tdddS 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"   


r6   c                 C   s\   | j dkr,| jd}|r%t|| jdkrtdddS tdddS 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   
r9   c                 C   sX   | j dkr*| jd}|r#tjj| jddj|d tdddS td	d
dS d S )Nr   r   foget_emailr.   )r   Tr7   r   FzPlease enter your password.)	r   r   r   r   r    r!   r%   updater   )r&   r   r*   r*   r+   savePasswordG   s   
r<   c                 C      t | di S )Nzfauth/faculty-login.htmlr   r&   r*   r*   r+   r   Q      r   c                 C   r=   )Nzfauth/forget-password.htmlr>   r?   r*   r*   r+   forgetPasswordT   r@   rA   c                 C   r=   )Nzfauth/verify-otp.htmlr>   r?   r*   r*   r+   	verifyOTPW   r@   rB   c                 C   r=   )Nzfauth/reset-password.htmlr>   r?   r*   r*   r+   resetPasswordZ   r@   rC   c                 C   s   | j   tdS )Nzfaculty/login)r%   flushr   r?   r*   r*   r+   logout]   s   
rE   c                 C   r=   )NzfacultyDashboard.htmlr>   r?   r*   r*   r+   facultyDashboardb   r@   rF   c              	   C   s   | j d}tjj|d}t  }tjj||d	d}g }|D ]}|
|j|jd|jd|jdd q"t| 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(   upcommingLectureslecture_json)r%   r   r   r    r   nowdater
   r!   order_byappendrL   rJ   strftimerN   rO   r   jsondumpsr&   r   r(   todayrQ   lecture_datalecr*   r*   r+   uplcommingLectures|   s"   



r^   c                 C   s   | j d}tjj|d}t  }tjj||d	d}g }|D ]}|
|j|jd|jp1dd q"t| d||t|d	S )
Nr   rG   rH   rJ   rK    )rL   rM   descriptionz	demo.htmlrP   )r%   r   r   r    r   rS   rT   r
   r!   rU   rV   rL   rJ   rW   video_descriptionr   rX   rY   rZ   r*   r*   r+   	demoEvent   s    

rb   c                 C   sp   | j d}tjj|d}t  }tjj||d	d}t
|d}| jd}||}t| d|||dS )	Nr   rG   )r   lacture_date__ltz-lacture_date
   pagezpast-lecture-list.html)r(   paginated_lecturespastlecture)r%   r   r   r    r   rS   rT   r
   r!   rU   r   GETget_pager   )r&   r   r(   r[   rg   	paginatorpage_numberrf   r*   r*   r+   pastLectures   s   

rl   )%django.shortcutsr   r   django.contrib.authr   r   django.core.paginatorr   django.httpr   learn.modelsr   r	   r
   django.confr   django.core.mailr   r   r/   django.utilsr   django.db.modelsr   rX   r,   r6   r9   r<   rA   rB   rC   rE   rF   r^   rb   rl   r*   r*   r*   r+   <module>   s2    
