o
    g'                     @   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	m
Z
mZ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mZmZ d
dlmZmZ e dd Ze dd Z edd Z!edd Z"edd Z#e d"ddZ$e dd Z%edd Z&dd Z'ed"d d!Z(dS )#    )Http404JsonResponse)redirectrender)login_required)QCountMaxMin)	Developer)Development)MasterCityEditFormMasterCountryEditForm)user_control)get_settings   )CityCountryDistrict)MasterCitySerializerMasterCountrySerializerc                 C   sZ   t | }|d st|d S t| }|jdv rd|_|j d}|j d}t| |t S )Nhas_permredirect_uri NNonezCountries Listz/countries.html
/base.html)r   r   r   	page_name
theme_namer   locals)requestuser_controllersite_settingspage_adrbase_adr r%   3/var/www/Entralon-Web-Backend/geo_location/views.pymaster_countries   s   
r'   c                 C   s   t | }|d st|d S t| }|jdv rd|_|j d}|j d}z	tjj|d}W n   t|j	 d|_t
jj|d	}tjj|d	}tjjtd
dj|dd}	t
jj|dd}
t| |t S )Nr   r   r   zCountry Detailsz/country.htmlr   idz details)countrydevelopments)d_devr   )r*   	d_dev__gtF)r*   is_sold_out)r   r   r   r   r   r   objectsgetr   namer   filterr   r   annotater   r   r   )r    r)   r!   r"   r#   r$   r*   r+   
developerscitiesavailable_developmentsr%   r%   r&   master_country   s    

r7   c              
   C      t | }|d st|d S t| }|jdv rd|_d }ztjj|d}t|d}d|j }W n t	yD } zd}W Y d }~nd }~ww d}d	}	d
| d}
|j
 d}|j
 d}t| |t S )Nr   r   r   zEdit Countryr(   instancezEdit Country: 
MasterEditEditz/master/countries//edit//modal.htmlr   )r   r   r   r   r   r/   r0   r   r1   	Exceptionr   r   r   )r    r)   r!   r"   formr*   titleemodal_idbtn_footer_valueform_urlr#   r$   r%   r%   r&   master_country_edit_form0   *   

rF   c              	   C      t | }|d st|d S | jdkrMz+tjj|d}t| j|d}| r4|	  t
ddg g dW S t
d	d
|jg dW S    t
d	dg g d Y S d S Nr   r   POSTr(   r9   TzEdit is success.)successmessageerrorsresultsFerrorz	not Found)r   r   methodr   r/   r0   r   rJ   is_validsaver   rM   )r    r)   r!   r*   r@   r%   r%   r&   master_country_editF   s   
rS   c                 C   s  | j dd}| jdkr| jdd}| jdd}| jdd}| jd}| jd	d
}| jdd}d}|r]|d
kr@d}n|dkrGd}n|dkrNd}n|dkrTd}|dkr]d| }zt|}W n   d}Y zt|}W n   d}Y tjjtddj	dd}|d ur|	t
|dt
|dB t
|dB }||}t||||  dd}	|| | |	jd}
t|
S | j dd}t|ddg dS )Ndrawr   rJ   startr   length
   search[value]order[0][column]0order[0][dir]descr   r)   1r1   2slug3code-r+   d_num	d_num__gtname__icontainsslug__icontainscode__icontainsTmanyrT   recordsTotalrecordsFiltereddata)GETr0   rP   rJ   intr   r/   r3   r   r2   r   order_byr   countrr   r   )r    rT   rU   rV   searchorder_column	order_dirru   obj
serializerresultr%   r%   r&   master_countries_listW   s@   
$
r}   Nc                 C   s|   t | }|d st|d S t| }|jdv rd|_|j d}|j d}|r7z	tjj|d}W n   tt	| |t
 S )Nr   r   r   zCities Listz/cities.htmlr   r(   )r   r   r   r   r   r   r/   r0   r   r   r   )r    c_idr!   r"   r#   r$   r*   r%   r%   r&   master_cities   s   

r   c                 C   s   t | }|d st|d S t| }|jdv rd|_|j d}|j d}z	tjj|d}W n   t|j	 d|_t
jj|d	}tjj|d	}tjj|d	}	t
jj|d
d}
t| |t S )Nr   r   r   zCity Detailsz
/city.htmlr   r(   z Details)cityF)r   r.   )r   r   r   r   r   r   r/   r0   r   r1   r   r2   r   r   r   r   )r    r)   r!   r"   r#   r$   r   r+   r4   	districtsr6   r%   r%   r&   master_city   s    

r   c              
   C   r8   )Nr   r   r   z	Edit Cityr(   r9   zEdit City: r;   r<   z/master/cities/r=   r>   r   )r   r   r   r   r   r/   r0   r   r1   r?   r   r   r   )r    r)   r!   r"   r@   r   rA   rB   rC   rD   rE   r#   r$   r%   r%   r&   master_city_edit_form   rG   r   c              	   C   rH   rI   )r   r   rP   r   r/   r0   r   rJ   rQ   rR   r   rM   )r    r)   r!   r   r@   r%   r%   r&   master_city_edit   s   
r   c                 C   s  | j dd}| jdkr| jdd}| jdd}| jdd}| jd}| jd	d
}| jdd}d}|rV|d
kr@d}n|dkrGd}n|dkrMd}|dkrVd| }zt|}W n   d}Y zt|}W n   d}Y tjjtddj	dd}	|r|	j	|d}	|d ur|		t
|dt
|dB t
|dB }	|	|}	t|	|||  dd}
||	 |	 |
jd}t|S | j dd}t|ddg dS )NrT   r   rJ   rU   r   rV   rW   rX   rY   rZ   r[   r\   r   r)   r]   r1   r^   r_   rb   r+   rc   re   )
country_idrg   ri   rk   Trm   ro   )rs   r0   rP   rJ   rt   r   r/   r3   r   r2   r   ru   r   rv   rr   r   )r    r~   rT   rU   rV   rw   rx   ry   ru   rz   r{   r|   r%   r%   r&   master_cities_list   sB   
$
r   )N))django.httpr   r   django.shortcutsr   r   django.contrib.auth.decoratorsr   django.db.modelsr   r   r	   r
   developer.modelsr   development.modelsr   geo_location.formsr   r   
main.utilsr   
user.utilsr   modelsr   r   r   serializersr   r   r'   r7   rF   rS   r}   r   r   r   r   r   r%   r%   r%   r&   <module>   s<    




+

