o
    !i:                     @   st   d Z ddlmZmZ ddlmZ ddlmZmZm	Z	 ddl
mZmZ ddlmZ dd Zd	d
 Zdd Zdd ZdS )z
Places Views
    )renderget_object_or_404)Q)PlaceCategoryGovernorate)PlaceContextMixinFilterMixin)login_required_webc           	   
   C   s&  | j dd}| j dd}| j dd}| j dd}tjjdddddd	}|r?|t|d
t|dB t|dB }|rG|j|d}|rO|j|d}|rez
|jt|d}W n	 t	yd   Y nw |
dddd }tjjdd
d}tj 
d}dd|||||||d	}t| d|S )z	Home pagesearch categorygovernorate
min_ratingT	is_activeowner	amenitiesname__icontainsdescription__icontainsaddress__icontainscategory__sluggovernorate__coderating__gte-rating-reviews_countN   name_aruJ   دليلك IQ - منصة الأماكن والخدمات في العراقuy   اكتشف أفضل الأماكن والخدمات في العراق، احجز مواعيدك، وشارك تجربتك)	titledescriptionplaces
categoriesgovernoratessearch_queryselected_categoryselected_governorateselected_min_ratingz
index.html)GETgetr   objectsfilterselect_relatedprefetch_relatedr   float
ValueErrororder_byr   r   allr   )	requestr)   category_sluggovernorate_coder   r&   r'   r(   context r;   8/var/www/newdalilibackend/backend/config/views/places.pyindex   sR   r=   c              	   C   s  | j dd}| j dd}| j dd}| j dd}| j dd}| j dd}| j dd}| j d	g }| j d
d}	| j dd}
| j dd}| j dd}tjjdddddd	}|rw|t|dt|dB t|dB }|r|j|d}|r|j|d}|rz
|jt	|d}W n	 t
y   Y nw |dkr|jdd}|dkr|jdd}|r|j|d}|r|j|d }|	r|
r|rz8ddlm} t	|	}	t	|
}
t	|}g }|D ]}||	|
t	|jt	|j}||kr||j q|j|d}W n t
tfy   Y nw g d }||v r ||}n|dd!}tjjddd"}tj d"}dd#lm} |j d"}i d$d%d&d'd(|d)|d*|d	|d+|d,|d-|d.|d/|d0|d1|d2d3d4 |D d5|d6|	d7|
d|i}t| d8|S )9zPlaces listing pager   r   r   r   r   is_openhas_bookingprice_ranger   latlngmax_distanceorderingr    Tr   r   r   r   r   r   r   r   true)r>   )r?   )r@   )amenities__id__inr   )calculate_distance)id__in)r    ratingr!   reviews_count-created_at
created_atr!   r#   )Amenityr$   u   الأماكن - دليلك IQr%   uG   استكشف جميع الأماكن والخدمات في العراقr&   r'   r(   r)   r*   r+   r,   selected_is_openselected_has_bookingselected_price_rangeselected_amenitiesc                 S   s   g | ]
}|  rt|qS r;   )isdigitint).0ar;   r;   r<   
<listcomp>   s    zplaces_list.<locals>.<listcomp>selected_orderinguser_latuser_lngzplaces/list.html)r-   r.   getlistr   r/   r0   r1   r2   r   r3   r4   distinctplaces.utilsrG   latitude	longitudeappendid	TypeErrorr5   r   r   r6   places.modelsrM   r   )r7   r)   r8   r9   r   r>   r?   r@   amenity_idsrA   rB   rC   rD   r&   rG   filtered_placesplacedistancevalid_orderingr'   r(   rM   r   r:   r;   r;   r<   places_list;   s   
	
rh   c                 C   s   t tjdddd|dd}tjj|jddj|jd	d	d
d }|j
 d|jp7d|j
 d|jj ||d}t| d|S )zPlace detail pager   r   r   r   Tslugr   )r   r   )r`   r    N       - دليلك IQu   اكتشف u    في )r$   r%   re   related_placeszplaces/detail.html)r   r   r/   r1   r2   r0   r   excluder`   r5   namer%   r   r#   r   )r7   rj   re   rm   r:   r;   r;   r<   place_detail   s&   
rp   c                 C   s   t tjdd|dd}ddlm} |jj|dddd	}| j	d
}|r<z
|jt
|d}W n	 ty;   Y nw d|j dd|j |||d}t| d|S )zPlace reviews pager   r   Tri   r   )Review)re   r   userrK   rI   )rI   u   تقييمات rl   u2   اقرأ تقييمات المستخدمين عن )r$   r%   re   reviewsrating_filterzplaces/reviews.html)r   r   r/   r1   reviews.modelsrq   r0   r5   r-   r.   rS   r4   ro   r   )r7   rj   re   rq   rs   rt   r:   r;   r;   r<   place_reviews   s4   
rv   N)__doc__django.shortcutsr   r   django.db.modelsr   rb   r   r   r   config.mixinsr   r	   config.decoratorsr
   r=   rh   rp   rv   r;   r;   r;   r<   <module>   s    0j