o
    Ld:                     @   s*  d dl mZ d dlZd dl mZ d dlmZ d dlmZmZm	Z	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 d d	lmZ e	 Zg Zg Zg Zg Zg Zg Zg Zg Zg Zg Zg Zg Z g 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 )$    )renderN)redirect)messages)authenticateloginget_user_modellogout)JsonResponse)HttpResponse)get_article_data)get_machine_datac           $   	   C   s  | j dkr| jd}| jd}||d}ddi}tjd||d}|jd	kr| }|d
 }g }g }g }	g }
|d }tt|D ]*}|| d }|dkrU|	| n|dkr_|		| n	|dkrh|
	| |	| qC|| j
d< || j
d< |	| j
d< |
| j
d< g }|d }tt|D ]}|| d }|	| qg }g }g }g }tt|D ]*}|| d }|dkr|	| n|dkr|	| n	|dkr|	| |	| q|| j
d< || j
d< || j
d< || j
d< || j
d< g }g }g }g }g }g }|d }tt|D ]9}|| d }|dkr|	| n |dkr"|	| n|dkr-|	| n
|dkr7|	| |	| q|| j
d< || j
d< || j
d < || j
d!< || j
d"< || j
d#< |d$ d% d& }|d$ d% d' }|| j
d&< || j
d'< |d( d) } t }!|!| d* |! }"ztjj|d+}#|#|" |#  W n tjy   tjj|||"d,}#Y nw t| |# z!|d- | j
d.< |d/ | j
d0< |d1 | j
d< |d2 | j
d< W td3S  ttfy   d%| j
d.< d%| j
d0< d%| j
d< d%| j
d< Y td3S w t| d4 t| d5S )6NPOSTemailpasswordr   r   zContent-Typezapplication/jsonz2https://thingsaccess.com/rfid/index.php/Api/login/)headersjson   responsebundlesInfostate324complete_bundletotalBundleprogress_bundlefaulty_bundleZoperatorsInfoZoperator_dataZ	status_id1operator_info_datatotal_operator	active_op
present_op	absent_opmachinesInfomachine_info_statetotal_machineidle_machineactive_machinefault_machinepowerdown_machineZarticlesInfor   total_productiontoday_productionZuserInfoZpassword_hashzutf-8)username)r-   r   r   ZarticleCountarticleinfoZoperatorsCountoperators_infoZbundleCountZmachineCounthomezfailed to loginlogin/login.html)methodr   getrequestspoststatus_coder   rangelenappendsessionhashlibmd5updateencode	hexdigestUserobjectsset_passwordsaveDoesNotExistcreate_userr   KeyError
IndexErrorr   r   errorr   )$requestr   r   datar   r   Zdata_dashboardr   r   r   r   Zbundle_info_stateiZtotal_bundler   Zoperator_info_stateZoperator_infor    r!   r"   r#   jZoperator_statusr&   r'   r(   r)   r*   r%   ZtotalMachiner+   r,   Zhashed_passwordZ
md5_hasherZplain_passworduser rN   "D:\rfid_django\core\login\views.py
login_page"   s   






























rP   c                 C   sF   | j d}| j d}| j d}| j d}t| d||||dS )Nr.   r/   r   r$   zhome/index.html)r.   r/   r   r$   )r:   r3   r   )rI   r.   r/   r   r$   rN   rN   rO   r0      s
   r0   c                 C   s   | j dkrb| jd}t| jd}d}|dr |dd  }|d | }| jd| jd| jd	| jd
|| jdd}tjd|d}|jdkrX|| jd< t	dS t
| d t	dS t| dS )Nr   r   phoneZ00920    
first_name	last_namer   role)r   rU   rV   r   rQ   rW   z2https://thingsaccess.com/rfid/index.php/Api/signupr   r   email_verifyzFailed to sign upsignup_pagezlogin/signup.html)r2   r   r3   str
startswithr4   r5   r6   r:   r   r   rH   r   )rI   r   rQ   Zcountry_codeZfull_phone_numberrJ   r   rN   rN   rO   rZ      s*   









rZ   c           	      C   s   | j d}| jdkrF| jd}| jd}| jd}| jd}|| | | }|t|d}tjd|d	}|jd
krBtdS tdS t	| dd|iS )Nr   r   code1code2code3code4r   Zactivation_code7https://thingsaccess.com/rfid/index.php/Api/verifyEmailrX   r   rP   rY   zlogin/verifyemail.html
r:   r3   r2   r   intr4   r5   r6   r   r   	rI   r   r]   r^   r_   r`   combinerJ   r   rN   rN   rO   rY      s   

rY   c                 C   sR   | j dkr't| j}d|di}tjd|d}| }|d }td|iS d S )Nr   r   ;https://thingsaccess.com/rfid/index.php/Api/verifyEmailOnlyrX   r   resend_code)r2   r   loadsbodyr3   r4   r5   r	   )rI   	data_jsonrJ   r   	data_sendrh   rN   rN   rO   resend   s   

rm   c                 C   sR   | j dkr$| jd}d|i}tjd|d}|jdkr$|| jd< tdS t| dS )Nr   r   rg   rX   r   forget_password_verifyzlogin/forgetpass.html)	r2   r   r3   r4   r5   r6   r:   r   r   )rI   r   rJ   r   rN   rN   rO   forget  s   



ro   c           	      C   s   | j d}| jdkrK| jd}| jd}| jd}| jd}|| | | }|t|d}tjd|d	}|jd
krG|| j d< tdS tdS t	| dd|iS )Nr   r   r]   r^   r_   r`   ra   rb   rX   r   change_passwordrn   zlogin/forgetpass_verify.htmlrc   re   rN   rN   rO   rn     s    


rn   c                 C   sn   | j d}| jdkr2| jd}| jd}||kr2|t|d}tjd|d}|jdkr2td	S t	| d
S )Nr   r   r   zretype-passwordr   z:https://thingsaccess.com/rfid/index.php/Api/setNewPasswordrX   r   rP   zlogin/changepassword.html)
r:   r3   r2   r   r[   r4   r5   r6   r   r   )rI   r   r   Zretype_passwordrJ   r   rN   rN   rO   rp   &  s   


rp   c                 C   s   t |  t| dS )Nr1   )r   r   )rI   rN   rN   rO   logout_page7  s   
rq   c           
   	   C   sv   | j dg }| j dg }| j dg }| j dg }t|}t|}t|}t|}t }	t| d|||||	dS )Nr   r   r   r   zhome/bundle_details.html)completetotalprogressfaultydata_artcile)r:   r3   r8   r   r   )
rI   Zcomplete_arrayZtotal_arrayZprogress_arrayZfaulty_arrayrr   rs   rt   ru   rv   rN   rN   rO   bundle_details;  s   rw   c           	   
   C   s   | j dg }| j dg }| j dg }| j dg }| j dg }t|}t|}t|}t|}t| d||||t|dS )Nr    r!   r"   r#   r   zhome/operator_details.html)rs   r!   presentabsentr   r:   r3   r8   r   r   dumps)	rI   r    r!   r"   r#   r   rs   rx   ry   rN   rN   rO   operator_detailsI  s   r|   c                 C   s   | j dg }| j dg }| j dg }| j dg }| j dg }| j dg }t|}t|}t|}	t|}
t|}t| d|||	|
|t|dS )	Nr&   r'   r(   r)   r*   r%   zhome/machine_details.html)rs   idleactivefault	powerdownr%   rz   )rI   r&   r'   r(   r)   r*   r%   rs   r}   r~   r   r   rN   rN   rO   machine_detailsU  s    r   c                 C   sN   | j d}| j dg }| j dg }t }t|d t| d||||dS )Nr.   r+   r,   Zartcileinfozhome/article_details.html)total_articler+   r,   rv   )r:   r3   r   printr   )rI   r   r+   r,   rv   rN   rN   rO   article_detailsc  s   
r   )/django.shortcutsr   r4   r   django.contribr   django.contrib.authr   r   r   r   r   r;   django.httpr	   r
   articles.viewsr   machine.viewsr   r@   r   r   r   r   r    r!   r"   r#   r&   r'   r(   r)   r*   rP   r0   rZ   rY   rm   ro   rn   rp   rq   rw   r|   r   r   rN   rN   rN   rO   <module>   sN     	