o
    d?                     @   s2  d dl mZ 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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T d dlmZ d dlZd dlmZ d dlmZ G dd de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ZG dd deeZ G dd deeZ!dS )    )request)redirectrender)View)User)ObjectDoesNotExist)JsonResponseHttpResponse)LoginRequiredMixin   )addUserForm)Group)	Paginator)*)get_company_dataN)datetime)MAP_API_KEYc                   @      e Zd Zdd Zdd ZdS )adduserFormc                 C   s   t jj|jjddd}i }t|d< d|d< |d d dkr2d	d
g}tjj|dddd}ntj	 }||d< t
 |d< t|d|S )Nid
groups__idgroups__nameformzAdd Usertitler   Operational Head      id__inr   namegdatacompany_datamenu/create.html)r   objectsfilteruserr   valuesr   r   order_byallr   r   )selfr   r&   greeting
status_idsg_data r.   ,/var/www/html/prime-uav/Admin/users/views.pyget   s   

zadduserForm.getc                 C   sX  |j dkr(tjj|jjdd}|jd}|jd}|jd}|jd}|jd}|jd	}|jd
}	t	jj|	d}
|jd}|jd}|jd}|dkr|dkr|dkr|dkrtjj|d
 r|i }d|d< t|S tjj|d
 ri }d|d< t|S ||krtjj|||||d}tjj|d}|j|
 ||_|
jdkrd|_|  |s|r|r|dkrtjj|d d |d ||d}n3|r|dkrtjj|d d d |||d}ntjj|d d ||||d}ntjj|d d ||d}|  ddi}tdS i }d|d< t|S i }d|d< t|S tdS ) NPOSTr   r   
first_name	last_nameemailusername	password1	password2
user_groupuser_date_fromuser_date_tostatus r5   zUsername Is Already Existserror_message)r4   zEmail Is Already Exists)r2   r3   r5   r4   passwordAdminTr   )
created_by	from_dateto_dater&   r?   )rA   r&   r?   success_messageSuccessfully registeredusers*password and confirm password is not matchSome field is emptyr#   )methodr   r$   r%   r&   r   r'   r1   r0   r   existsr	   create_usergroupsadd	is_activer    is_superusersaveUserInfocreater   )r*   r   user_id	firstnamelastnamer4   r5   r?   r6   userrolegroupr9   r:   r;   datar&   user_addr.   r.   r/   post&   sh   (

   zadduserForm.postN__name__
__module____qualname__r0   rZ   r.   r.   r.   r/   r      s    r   c                   @      e Zd Zdd ZdS )	UsersViewc                 C   s  t jj|jjddd}|jdd}|jdd}|jdd}g d	}|d d d
kr~tjj|d d d}|j	j
ddd}tjj|d}|j
ddd}	|dkrgt jj|	ddddddd|d}nIt jj|	dddddddd| d}n2g d}
||
v r|dkrt j dddddd|d}nt j ddddddd| d}t||v r|}nd}t||}|jdd
}||}||dt ||d}t|d|S )Nr   r   r   
page_countr   r(   
sort_orderasc)
      2   d   i  r   T)flat)created_by__inr&   r   r5   r   r2   r3   r4   -z-id)r   r5   r   r2   r3   r4   rd   pageUsers)rF   page_objr   r"   r(   rb   zmenu/users.html)r   r$   r%   r&   r   r'   GETr0   r   user_setvalues_listrQ   r(   r)   intr   get_pager   r   )r*   r   current_grppagesr(   rb   	page_listrW   rF   user_idsvalid_sort_fieldspage_passed	paginatorpage_numberrm   contextr.   r.   r/   r0   k   sT   



zUsersView.getNr\   r]   r^   r0   r.   r.   r.   r/   r`   j       r`   c                   @   r_   )get_locationc                 C   sr   g }t jj|ddd d }|D ]}i }|j|d< |j|d< |j|d< || qt	|t
d}t|d|S )Nr&   r      latitude	longitude)user_locationsr   zmenu/user_map.html)UserLocationLogr$   r%   r(   r   r   r   appendjsondumpsr   r   )r*   r   useridlocation_datauser_locationlocation	location_rX   r.   r.   r/   r0      s   


zget_location.getNr|   r.   r.   r.   r/   r~      r}   r~   c                   @   r_   )get_usermapc           	      C   sp   g }t jj|ddd d }|D ]}i }|j|d< |j|d< |j|d< || qt	|}d|i}t
|S )Nr   r   r   r   r   r   )r   r$   r%   r(   r   r   r   r   r   r   r   )	r*   r   r   r   r   r   r   locations_jsonrX   r.   r.   r/   r0      s   



zget_usermap.getNr|   r.   r.   r.   r/   r      r}   r   c                   @   r   )update_userc                 C   s  i }t jj|jjddd}t jj|ddddddddd	d
	}tjj|ddd}tjj|dd	}|r?|d d	 }nd }|d d dkr\ddg}tjj|dddd}	ntj	 }	|d d |d< |d d |d< |d d |d< |d d |d< |d d |d< |d d |d< |d d |d< ||d	< |r|d d d kr|d d |d< nd |d< |d d dkr|d d |d< nd |d< |d d
 dkrd|d< nd|d< |||	|d d dt
 d}
t|d|
S )Nr   r   r   r   r5   r2   r3   r4   r?   rN   r   rB   rC   r   r   r   r   r   r    r<   Tr;   Fz	Edit User)rF   r   r!   groups_namer   r"   r#   )r   r$   r%   r&   r   r'   rQ   r   r(   r)   r   r   )r*   r   r   r&   userxrF   	unserinfor?   r,   r-   r{   r.   r.   r/   r0      s@   $

zupdate_user.getc                 C   s@  |j dkr|jd}|jd}|jd}|jd}|jd}|jd}tjj|dd	}	|jd
}
|jd}|jd}|jd}tjj|
d}tjj|d}tjj|j	j
dd}tjj|dd}|j|d d  |  |dkr|dkrtjj|d r|dkr;|dkr;ztjj|d}||_||_||_||_||_||kr||	d d	 kr|| |jdkrd|_nd|_|  z	tjj|d}W n tjy   tjj|d}Y nw |rt|d |_nd |_|rt|d |_nd |_||kr||	d d	 kr||_|d d |_|  W nG tjy:   t d Y n9w tjj|dj!|||||d z	tjj|d}W n tjye   tjj|d}Y nw tjj|dj!|||d tjj|d}|j"| ddi}t#dS i }d|d< t$|S i }d |d< t$|S t#d!S )"Nr1   r2   r3   r4   r5   r6   r7   r   r?   r8   r;   r9   r:   r   r   r=   r   r   r<   r@   TFz%Y-%m-%dzUser not found.)r2   r3   r5   r4   rN   )rB   rC   r?   rD   rE   	dashboardrG   r>   rH   r#   )%rI   r1   r0   rQ   r$   r%   r'   r   r   r&   r   rL   removerP   rJ   r2   r3   r5   r4   rN   set_passwordr    rO   DoesNotExistrR   r   strptimedaterB   rC   r?   
updated_byprintupdaterM   r   r	   )r*   r   r   rT   rU   r4   r5   r?   r6   crt_passwordrV   r;   r9   r:   rW   current_user
login_userrs   r&   r   rX   r.   r.   r/   rZ      s   


zupdate_user.postNr[   r.   r.   r.   r/   r      s    5r   c                   @   r_   )delete_userc                 C   s   t jj|d}|  tdS )Nr   rF   )r   r$   r%   deleter   )r*   r   r   subarear.   r.   r/   r0   k  s   zdelete_user.getNr|   r.   r.   r.   r/   r   j  r}   r   c                   @   r_   )addcurrntlocationc                 C   sN   t jj|jjd}|jd}|jd}tjj|||d ddd}t|S )Nr   user_crt_latitudeuser_crt_longitude)r&   r   r   TzStatus updated successfully.)successmessage)	r   r$   r0   r&   r   r1   r   rR   r   )r*   r   r&   r   r   rX   r.   r.   r/   rZ   q  s   
zaddcurrntlocation.postN)r\   r]   r^   rZ   r.   r.   r.   r/   r   p  r}   r   )"django.httpr   django.shortcutsr   r   django.viewsr   django.contrib.auth.modelsr   django.core.exceptionsr   r   r	   django.contrib.auth.mixinsr
   formsr   r   django.core.paginatorr   modelssettings.viewsr   r   r   nazox.settingsr   r   r`   r~   r   r   r   r   r.   r.   r.   r/   <module>   s.    V7 '