o
    '[Çd<  ã                   @   sÌ   d dl T 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 G dd„ deeƒZG dd„ deeƒZG dd„ deeƒZG dd„ deeƒZdd„ ZdS )é    )Ú*)ÚredirectÚrender)ÚLoginRequiredMixin)ÚView)Úmessages)ÚQ)ÚDRIVE_IMAGE_PATH)Údatetime)Ú	Paginator)Úget_company_datac                   @   ó   e Zd Zdd„ ZdS )ÚUserlocationc                 C   sü   g }|j  dd¡}|j  dd¡}|j  dd¡}g d¢}|dkr6tj d¡ dd	d
dddddddd¡ |d¡ntj d¡ dd	d
dddddddd¡ d|› d¡}t|ƒ|v rY|}nd}t||ƒ}	|j  dd¡}
|	 	|
¡}|t
d||	tƒ ||dœ}t|d|ƒS )NÚ
page_countr   Úorder_byÚidÚ
sort_orderÚasc©é
   é   é2   éd   iô  ÚuserÚuser__first_nameÚuser__last_nameÚuser__usernameÚuser__groups__nameÚstate_id__nameÚdistrict_id__nameÚsubdistrict_id__nameÚcity_id__nameÚarea_id__nameÚsubarea_id__namez-idú-r   Úpageé   zUser Location)Úimagesr	   ÚtitleÚpage_objÚ	paginatorÚcompany_datar   r   z/menu/master/user_location/userlocationlist.html)ÚGETÚgetÚUserLocationÚobjectsÚselect_relatedÚvaluesr   Úintr   Úget_pager	   r   r   )ÚselfÚrequestÚimg_listÚpagesr   r   Ú	page_listr'   Úpage_passedr*   Úpage_numberr)   Úcontext© r<   ú//var/www/html/prime-uav/Admin/Location/views.pyr-      s@   ý
þ
þú	

øzUserlocation.getN©Ú__name__Ú
__module__Ú__qualname__r-   r<   r<   r<   r=   r      ó    r   c                   @   ó   e Zd Zdd„ Zdd„ ZdS )ÚAddUserlocationc                 C   sn   t jjdd dddd¡ d¡}tj ¡  dd¡ d¡}tj ¡  dd¡ d¡}|||dtƒ d	œ}t	|d
|ƒS )NF)Úis_superuserÚ
first_nameÚ	last_namer   Úgroups__nameÚnamezAdd User Location)ÚusersÚ	countriesÚstatesr(   r+   ú/menu/master/user_location/adduser_location.html)
ÚUserr/   Úfilterr1   r   ÚCountryMasterÚallÚStateMasterr   r   )r4   r5   rJ   rK   rL   r;   r<   r<   r=   r-   9   s
    zAddUserlocation.getc              
   C   s>  |j dkr›|j d¡}tjj|d}|j d¡}tjj|d}|j d¡}|r/tjj|d}nd }|j d¡}|rAtjj|d}	nd }	|j d¡}
|
rStjj|
d}nd }|j d	¡}|ret	jj|d}nd }|j d
¡}|rwt
jj|d}nd }|dkr“|dkr“tjj|d|||	|||d tdƒS t |d¡ d S tdƒS )NÚPOSTÚusername©ÚpkÚ
user_state©r   Úuser_districtÚuser_subdistrictÚ	user_cityÚ	user_areaÚuser_subareaÚ r&   ©r   Ú
country_idÚstate_idÚdistrict_idÚsubdistrict_idÚcity_idÚarea_idÚ
subarea_idÚuserlocationúSome field is emptyrM   )ÚmethodrS   r-   rN   r/   rR   ÚDistrictMasterÚSubDistrictMasterÚ
CityMasterÚ
AreaMasterÚSubAreaMasterr.   Úcreater   r   Úerror)r4   r5   r   Úuser_idra   Ústaterb   Údistrictrc   Úsubdistrictrd   Úcityre   Úarearf   Úsubarear<   r<   r=   ÚpostG   s<   
zAddUserlocation.postN©r?   r@   rA   r-   rx   r<   r<   r<   r=   rD   8   s    rD   c                   @   rC   )ÚUpdateUserlocationc                 C   s  i }t jj|d dddddddd	d
¡	}|d d |d< |d d |d< |d d |d< |d d |d< |d d |d< |d d |d< |d d	 |d	< tj ¡  ddddd¡ d¡}tjjdd dd¡ d¡}tt	jj|d d d dd¡ƒ}|d d dkr—tt
jj|d d d dd¡ d¡ƒ}nd}|d d dkr¶ttjj|d d d dd¡ d¡ƒ}	nd}	|d d dkrÓtjj|d d d dd¡ d¡}
nd}
|d d dkrðtjj|d d d dd¡ d¡}nd}|||||	|
||dttƒ dœ}t|d|ƒS )NrX   r   r   ra   rb   rc   rd   re   rf   r   r   rF   rG   rT   rH   r&   )r`   rI   ©ra   r^   ©rb   )rc   ©rd   ©re   zEdit User Location)rJ   rL   Ú	districtsÚsubdistrictsÚcitiesÚareasÚsubareasÚuser_locationr(   r   r+   rM   )r.   r/   rO   r1   rN   rQ   r   rR   Úlistrj   rk   rl   rm   rn   r   r   r   )r4   r5   ÚuseridÚlocationr„   rJ   rL   r   r€   r   r‚   Úsubaresr;   r<   r<   r=   r-   {   s4   $"**&&zUpdateUserlocation.getc              
   C   sü   |j dkrz|j d¡}tjj|d}|j d¡}|j d¡}|dkr$d }|j d¡}|dkr0d }|j d¡}|dkr<d }|j d	¡}	|	dkrHd }	|j d
¡}
|
dkrTd }
|dkrr|dkrrtjj|dj|d|||||	|
d tdƒS t	 
|d¡ d S tdƒS )NrS   rT   rU   rW   rY   r^   rZ   r[   r\   r]   rX   r&   r_   rg   rh   rM   )ri   rS   r-   rN   r/   r.   rO   Úupdater   r   rp   )r4   r5   r†   r   rq   rr   rs   rt   ru   rv   rw   r<   r<   r=   rx   «   s0   
$zUpdateUserlocation.postNry   r<   r<   r<   r=   rz   z   s    0rz   c                   @   r   )ÚDeleteUserlocationc                 C   s   t jj|d}| ¡  tdƒS )NrX   rg   )r.   r/   rO   Údeleter   )r4   r5   r†   rw   r<   r<   r=   r-   Ñ   s   zDeleteUserlocation.getNr>   r<   r<   r<   r=   rŠ   Ð   rB   rŠ   c           *      C   sp  t jj| jjd}t|jddd ¡ ƒ}t|jddd ¡ ƒ}t|jddd ¡ ƒ}t|jddd ¡ ƒ}t|jddd ¡ ƒ}t|jd	dd ¡ ƒ}tj 	¡  
d
d¡ d
¡}tj 	¡  
dd
¡ d
¡}	tj 	¡  
dd
¡ d¡}
g }d}d }| j dd ¡}| j dd ¡}| j dd ¡}| j dd ¡}| j dd ¡}| j dd ¡}| j dd ¡}| j dd ¡}g }g }g }g }g }g }tƒ }tƒ }tƒ }tƒ }tƒ }tƒ }g }|rÖ|t|dM }|rß|t|dM }|rè|t|dM }|rñ|t|dM }|rú|t|dM }|r|t|dM }|r|t|dM }|r|t|dM }| jjs#t jj| jjd}| ¡ d ur"t|jddd ¡ ƒ}t|jddd ¡ ƒ}t|jddd ¡ ƒ}t|jddd ¡ ƒ}t|jddd ¡ ƒ}t|jd	dd ¡ ƒ}|g kr‚|dgkr‚|t|dM }n||v rŽ|t|dM }|g kr¡|dgkr¡|t|d M }n||v r­|t|dM }|g krÀ|dgkrÀ|t|d!M }n||v rÌ|t|dM }|g krß|dgkrß|t|d"M }n||v rë|t|dM }|g krþ|dgkrþ|t|d#M }n||v r
|t|dM }tj |¡ 
dddddd	dd$d%d&dd'd(¡ d¡}ntj |¡ 
dddddd	dd$d%d&dd'd(¡ d¡}|D ]´}i }|d |d< tjj|d d) 
d
¡}|d d
 |d*< tjj|d d) 
d
¡} | d d
 |d+< tjj|d d) 
d
¡}!|!d d
 |d,< tjj|d d) 
d
¡}"|"d d
 |d-< tjj|d	 d) 
d
¡}|d d
 |d< tjj|d' d) 
d¡}|d d
 |d< |d$ |d$< |d% |d%< |d& |d&< |d |d< t t|d ƒd.¡ ¡ |d< |d( |d/< | |¡ q=t|ƒ}| j d0d¡}#g d1¢}$t|#ƒ|$v r|#}%nd2}%t|ƒ}t||%ƒ}&| j d3d4¡}'|&  |'¡}(||	|
|t!d5|(|&|||t"ƒ d6œ})t#| d7|)ƒS )8N)r   r`   T)Úflatra   rb   rd   re   rf   rI   r   r   r   rW   rY   r[   r\   rw   ÚroundÚ
image_dateÚstatusr{   r|   r}   r~   )rf   )r   )Ú	status_id)rŽ   r^   )Ústate_id__in)Údistrict_id__in)Úcity_id__in)Úarea_id__in)Úsubarea_id__inÚlatitudeÚ	longitudeÚaltituder   Údrive_image_idrX   rr   rs   ru   rv   z%Y-%m-%dÚimage_idr   r   r   r%   r&   zLocation Listing)rK   rL   Ústatusesr6   r	   r(   r)   r*   ÚcountÚ
search_forrW   r+   z!menu/master/images/imagelist.html)$r.   r/   rO   r   r   r…   Úvalues_listÚdistinctrP   rQ   r1   r   rR   ÚStatusMasterr,   r-   r   rE   ÚfirstÚImageMasterrj   rl   rm   rn   r
   ÚstrptimeÚstrÚdateÚappendÚlenr2   r   r3   r	   r   r   )*r5   Úuser_locationsÚcountry_listÚ
state_listÚdistrict_listÚ	city_listÚ	area_listÚsubarea_listrK   rL   r›   r6   rœ   r   rW   rY   r[   r\   rw   r   rŽ   r   ÚqueryÚstate_queryÚdistrict_queryÚ
city_queryÚ
area_queryÚsubarea_queryr'   ÚimgÚ
image_datarr   rs   ru   rv   r7   r8   r9   r*   r:   r)   r;   r<   r<   r=   ÚviewimagelistÖ   sè   





0€0

 r·   N)Údashboard.modelsÚdjango.shortcutsr   r   Údjango.contrib.auth.mixinsr   Údjango.viewsr   Údjango.contribr   Údjango.db.modelsr   Únazox.settingsr	   r
   Údjango.core.paginatorr   Úsettings.viewsr   r   rD   rz   rŠ   r·   r<   r<   r<   r=   Ú<module>   s    *BV