U
    jmñeùM  ã                   @   sÜ   d dl mZ d dlZd dlmZ d dlZd dlmZ d dlm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 d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ ZdS ),é    ©ÚrenderN)ÚHttpResponse)ÚJsonResponse)Úuniformc               
   C   sh   z*t  d¡} |  ¡  |  ¡ }| dg ¡}W n8 t jjk
rb } ztd|› �ƒ g }W 5 d }~X Y nX |S )Nz8http://210.56.21.197/trucking/index.php/api/getUsersDataÚresponsezError fetching data: )ÚrequestsÚgetÚraise_for_statusÚjsonÚ
exceptionsÚRequestExceptionÚprint)r   Ú	data_sendÚdataÚe© r   ú5/var/www/html/TRUCKING_PROJECT/trucking/user/views.pyÚget_users_data   s    ÿr   c                 C   s   t tddƒdƒ}|S )Ng      @g      @é   )Úroundr   )Úuser_idZdummy_ratingr   r   r   Úget_user_rating_function   s    r   c                 C   s   t |ƒ}td|iƒS )NÚuser_rating)r   r   )Úrequestr   r   r   r   r   Úget_user_rating    s    r   c                 C   sò   t dƒ tƒ }dd„ |D ƒ}dd„ |D ƒ}d}d}d}d}d}d}	|D ]Œ}
|
d }|
d }|dkr–|d	krt|d
7 }n"|dkr†|d
7 }n|dkr–|d
7 }|dkrF|d	kr°|d
7 }qF|dkrÂ|d
7 }qF|dkrF|	d
7 }	qFt| d||||||||	dœƒS )NZuseersc                 S   s   g | ]}|d  dkr|‘qS ©ÚroleÚ1r   ©Ú.0Úuserr   r   r   Ú
<listcomp>-   s      zuserList.<locals>.<listcomp>c                 S   s   g | ]}|d  dkr|‘qS ©r   Ú3r   r   r   r   r   r"   .   s      r   r   Ústatus©r   r   r   Ú2r$   ©r$   zuser_list.html)Úshipper_data_listÚdriver_data_listÚactive_count_shipperÚinactive_count_shipperÚblock_count_shipperÚactive_count_driverÚinactive_count_driverÚblock_count_driver)r   r   r   )r   ÚuserDataÚshipper_listÚdriver_listr+   r,   r-   r.   r/   r0   r!   r   r%   r   r   r   ÚuserList%   s8    	




r4   c                 C   s
   t | dƒS )Nzrating.htmlr   )r   r   r   r   Ú
userRatingV   s    r5   c                 C   s^   | j  d¡}t|ƒ tƒ }d }|D ] }|d |kr"| dg ¡} qDq"td|ƒ t| dd|iƒS )NÚuserIdÚidZorder_detailszUser Order Details:zorderDetails.htmlÚuser_order_details)ÚGETr	   r   r   r   )r   r6   r1   r8   r!   r   r   r   ÚorderDetailsZ   s    
r:   c                 C   s°  | j dk�r | j d¡dk�r �zBt | j¡}|d }|d }d}||dœ}tj||d�}|j�rPt	ƒ }d	d
„ |D ƒ}dd
„ |D ƒ}	d}
d}d}d}d}d}|D ]�}|d }|d }|dkrð|dkrÎ|
d7 }
n"|dkrà|d7 }n|dkrð|d7 }|dkr |dk�r|d7 }q |dk�r |d7 }q |dkr |d7 }q t
d||	|
|||||dœ	ƒW S t
dddœƒW S W n: tk
�rœ } zt
dt|ƒdœƒ W Y ¢S d }~X Y nX nt
ddiƒS d S )NÚPOSTúx-requested-withÚXMLHttpRequestr   Úaccount_stateú;http://210.56.21.197/trucking/index.php/Api/updateUserState©r   r>   ©r   c                 S   s   g | ]}|d  dkr|‘qS r   r   r   r   r   r   r"   }   s     z%update_user_state.<locals>.<listcomp>c                 S   s   g | ]}|d  dkr|‘qS r#   r   r   r   r   r   r"      s     r   r   r%   r&   r   r   r'   r$   r(   Úsuccess)	r%   r)   r*   r+   r,   r-   r.   r/   r0   Úfailureú!Failed to connect to external API©r%   ÚmessageÚerrorúInvalid request)ÚmethodÚheadersr	   r   ÚloadsÚbodyr   ÚpostÚokr   r   Ú	ExceptionÚstr)r   r   r   r>   Úapi_urlÚpayloadr   r1   r2   r3   r+   r,   r-   r.   r/   r0   r!   r   r%   r   r   r   r   Úupdate_user_statei   s\    þÿÿ






*rS   c              
   C   s  | j dkrö| j d¡dkröz t | j¡}|d }|d }d}||dœ}tj||d�}|jr¨t	ƒ }g }|D ].}	|	d	 }
|	d
 }|
dkrh|dkrh| 
|	¡ qhtd|dœƒW S tdddœƒW S W n8 tk
rò } ztdt|ƒdœƒ W Y ¢S d }~X Y nX ntddiƒS d S )Nr;   r<   r=   r   r>   r?   r@   rA   r   r%   r&   r   rB   ©r%   Úactive_users_listrC   rD   rE   rG   rH   ©rI   rJ   r	   r   rK   rL   r   rM   rN   r   Úappendr   rO   rP   ©r   r   r   r>   rQ   rR   r   r1   Úactive_usersr!   r   r%   r   r   r   r   Úupdate_active_user_stateª   s0    þ*rZ   c              
   C   s  | j dkrö| j d¡dkröz t | j¡}|d }|d }d}||dœ}tj||d�}|jr¨t	ƒ }g }|D ].}	|	d	 }
|	d
 }|
dkrh|dkrh| 
|	¡ qhtd|dœƒW S tdddœƒW S W n8 tk
rò } ztdt|ƒdœƒ W Y ¢S d }~X Y nX ntddiƒS d S )Nr;   r<   r=   r   r>   r?   r@   rA   r   r%   r&   r'   rB   ©r%   Zinactive_users_data_listrC   rD   rE   rG   rH   rV   ©r   r   r   r>   rQ   rR   r   r1   Úinactive_usersr!   r   r%   r   r   r   r   Úupdate_inactive_user_stateÔ   s0    þ*r^   c              
   C   s  | j dkrö| j d¡dkröz t | j¡}|d }|d }d}||dœ}tj||d�}|jr¨t	ƒ }g }|D ].}	|	d	 }
|	d
 }|
dkrh|dkrh| 
|	¡ qhtd|dœƒW S tdddœƒW S W n8 tk
rò } ztdt|ƒdœƒ W Y ¢S d }~X Y nX ntddiƒS d S )Nr;   r<   r=   r   r>   r?   r@   rA   r   r%   r&   r$   rB   ©r%   Zblocked_users_data_listrC   rD   rE   rG   rH   rV   ©r   r   r   r>   rQ   rR   r   r1   Úblocked_usersr!   r   r%   r   r   r   r   Úupdate_block_user_stateþ   s0    þ*rb   c              
   C   s  | j dkrö| j d¡dkröz t | j¡}|d }|d }d}||dœ}tj||d�}|jr¨t	ƒ }g }|D ].}	|	d	 }
|	d
 }|
dkrh|dkrh| 
|	¡ qhtd|dœƒW S tdddœƒW S W n8 tk
rò } ztdt|ƒdœƒ W Y ¢S d }~X Y nX ntddiƒS d S )Nr;   r<   r=   r   r>   r?   r@   rA   r   r%   r(   r   rB   rT   rC   rD   rE   rG   rH   rV   rX   r   r   r   Úupdate_active_driver_state(  s0    þ*rc   c              
   C   s  | j dkrö| j d¡dkröz t | j¡}|d }|d }d}||dœ}tj||d�}|jr¨t	ƒ }g }|D ].}	|	d	 }
|	d
 }|
dkrh|dkrh| 
|	¡ qhtd|dœƒW S tdddœƒW S W n8 tk
rò } ztdt|ƒdœƒ W Y ¢S d }~X Y nX ntddiƒS d S )Nr;   r<   r=   r   r>   r?   r@   rA   r   r%   r(   r'   rB   r[   rC   rD   rE   rG   rH   rV   r\   r   r   r   Úupdate_inactive_driver_stateR  s0    þ*rd   c              
   C   s  | j dkrö| j d¡dkröz t | j¡}|d }|d }d}||dœ}tj||d�}|jr¨t	ƒ }g }|D ].}	|	d	 }
|	d
 }|
dkrh|dkrh| 
|	¡ qhtd|dœƒW S tdddœƒW S W n8 tk
rò } ztdt|ƒdœƒ W Y ¢S d }~X Y nX ntddiƒS d S )Nr;   r<   r=   r   r>   r?   r@   rA   r   r%   r(   r$   rB   r_   rC   rD   rE   rG   rH   rV   r`   r   r   r   Úupdate_block_driver_state|  s0    þ*re   c                 C   sV   t ƒ }t|ƒ g }|D ].}|d }|d }|dkr|dkr| |¡ qt| dd|iƒS )Nr   r%   r&   r   zActiveUserList.htmlrU   ©r   r   rW   r   ©r   r1   rY   r!   r   r%   r   r   r   Ú
activeUser¦  s    rh   c                 C   sV   t ƒ }t|ƒ g }|D ].}|d }|d }|dkr|dkr| |¡ qt| dd|iƒS )Nr   r%   r&   r'   zinActiveUserList.htmlÚinactive_users_listrf   ©r   r1   r]   r!   r   r%   r   r   r   ÚinactiveUser¹  s    rk   c                 C   sV   t ƒ }t|ƒ g }|D ].}|d }|d }|dkr|dkr| |¡ qt| dd|iƒS )Nr   r%   r&   r$   zblockedUserList.htmlÚblocked_users_listrf   ©r   r1   ra   r!   r   r%   r   r   r   ÚblockedUserÌ  s    rn   c                 C   sV   t ƒ }t|ƒ g }|D ].}|d }|d }|dkr|dkr| |¡ qt| dd|iƒS )Nr   r%   r(   r   zActiveDriverList.htmlrU   rf   rg   r   r   r   ÚactiveDriversÞ  s    ro   c                 C   sV   t ƒ }t|ƒ g }|D ].}|d }|d }|dkr|dkr| |¡ qt| dd|iƒS )Nr   r%   r(   r'   zinActiveDriverList.htmlri   rf   rj   r   r   r   ÚinactiveDriversñ  s    rp   c                 C   sV   t ƒ }t|ƒ g }|D ].}|d }|d }|dkr|dkr| |¡ qt| dd|iƒS )Nr   r%   r(   r$   zblockedDriverList.htmlrl   rf   rm   r   r   r   ÚblockedDrivers  s    rq   )Údjango.shortcutsr   r   Údjango.httpr   r   r   Úrandomr   r   r   r   r4   r5   r:   rS   rZ   r^   rb   rc   rd   re   rh   rk   rn   ro   rp   rq   r   r   r   r   Ú<module>   s0   1A******