o
    ~cãiøD  ã                   @   sN  d dl mZmZmZ d dlmZmZmZ d dlm	Z	 ddl
T ddlT d dlmZ d dlmZ d dlmZmZmZ d d	lmZ d d
lZd d
lZd d
l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%d6d$d%„Z&d&d'„ Z'd(d)„ Z(d*d+„ Z)d,d-„ Z*d.d/„ Z+d0d1„ Z,d2d3„ Z-d4d5„ Z.d
S )7é    )ÚrenderÚget_object_or_404Úredirect)ÚSearchVectorÚSearchQueryÚ
SearchRank)ÚQé   )Ú*)ÚHttpResponseRedirect)Úgettext_lazy)Ú	PaginatorÚ	EmptyPageÚPageNotAnInteger)ÚHttpResponseN)Úslugifyc                 C   sR   | j pd}tj |¡\}}t|ƒ}|sd}t ¡ jd d… }|› d|› | ¡ › S )Nzuploaded-fileé
   ú-)	ÚnameÚosÚpathÚsplitextr   ÚuuidÚuuid4ÚhexÚlower)Úuploaded_fileÚoriginal_nameÚ	base_nameÚ	extensionZsafe_base_nameZunique_suffix© r    ú6D:\Huy\Project\programing\website-bmc\BmcBase\views.pyÚ_build_safe_upload_name   s   
r"   c                 C   s   t j | jpd¡S )NÚ )r   r   Úbasenamer   )r   r    r    r!   Ú_extract_original_upload_name   s   r%   c                 C   sZ  | j  d¡}tj ¡ d d… }tjjdd d¡d d… }tjjdd d¡d d… }tjjdd d¡d d… }tjjdd d¡d d… }tj ¡ d d… }tj ¡ }|rtj t	|d	t	|d
B t	|dB ¡ 
¡ }	|	 ¡ }
|
dkr|	 ¡ }|rtd|jdS |
dkr‘||	|
dœ}t| d|ƒS |g ddœ}t| d|ƒS |||||||dœ}t| d|ƒS )NÚqé	   õ   thuá»‘c sÃ¢u©Úloaiz-idõ   thuá»‘c trá»« bá»‡nhõ   thuá»‘c cá»õ   thuá»‘c sinh trÆ°á»Ÿng)Zten__icontains)Zten_en__icontains)Zmo_ta_ngan__icontainsr	   Úproduct_detail)Ú
product_idr   )Úsearch_queryÚsearch_resultsÚresult_countzBmcBase/search_results.html)ÚproductsÚ	thuocsausÚthuoctrubenhsÚthuoccosÚthuocsinhtruongsÚbinh_bomÚnewszBmcBase/index.html)ÚGETÚgetÚSanPhamÚobjectsÚallÚfilterÚorder_byÚSanPhamBinhBomÚTinTucr   ÚdistinctÚcountÚfirstr   Úpkr   )ÚrequestÚqueryr3   r4   r5   r6   r7   ZbinhbomZallnewsr1   r2   ÚproductÚcontextr    r    r!   Úindex!   sV   
ÿþÿüýýúrK   c                 C   ó
   t | dƒS )NzBmcBase/about.html©r   ©rG   r    r    r!   ÚaboutU   ó   
rO   c                 C   ó|   t j ¡ }t|dƒ}| j d¡}z| |¡}W n ty%   | d¡}Y n ty3   | |j	¡}Y nw d|i}t
| d|ƒS )Né   Úpager	   ÚnotificationszBmcBase/noti.html)ÚThongBaor=   r>   r   r:   r;   Úget_pager   r   Ú	num_pagesr   )rG   Únotifications_listÚ	paginatorÚpage_numberrT   rJ   r    r    r!   ÚnotiX   s   

þÿr[   c                 C   s   t j ¡ }d|i}t| d|ƒS )NZlist_of_newszBmcBase/news.html)rB   r=   r>   r   )rG   r9   rJ   r    r    r!   r9   l   s   
r9   c                 C   ó"   t jj|d}d|i}t| d|ƒS )N©rF   r9   zBmcBase/news_detail.html)rB   r=   r;   r   )rG   Znews_idr9   rJ   r    r    r!   Únews_detailr   ó   r^   c                 C   rQ   )Né   rS   r	   ÚcareerszBmcBase/careers.html)ÚCareersr=   r>   r   r:   r;   rV   r   r   rW   r   )rG   Zcareers_listrY   rZ   ra   rJ   r    r    r!   ra   w   s   

þra   c                 C   r\   )Nr]   ÚcareerzBmcBase/career.html)rb   r=   r;   r   )rG   Z	career_idrc   rJ   r    r    r!   rc   ‹   r_   rc   c                 C   rL   )NzBmcBase/contact.htmlrM   rN   r    r    r!   Úcontact   rP   rd   c                 C   r\   )Nr]   ÚpostzBmcBase/noti_post.html)rU   r=   r;   r   )rG   Zpost_idre   rJ   r    r    r!   Ú	noti_post“   r_   rf   c                 C   s   | j  dd¡}t| dƒS )NÚstrr#   zBmcBase/image_display.html)r:   r;   r   )rG   Z	str_paramr    r    r!   Údisplay_image¸   s   
rh   c           
      C   s¾   g d¢}t j ¡  d¡}tj ¡ }|r$tjj|d}t jj|d d¡}t|dƒ}| j d¡}z| 	|¡}W n t
yD   | 	d¡}Y n tyR   | 	|j¡}Y nw |||dœ}	t| d	|	ƒS )
N©zbtn-outline-primaryzbtn-outline-secondaryzbtn-outline-successzbtn-outline-dangerzbtn-outline-warningzbtn-outline-infozbtn-outline-darkú
-ngay_dangr]   ©Úthe_loair   rS   r	   )rT   Ú
categoriesÚtag_csszBmcBase/blog.html)ÚKienThucr=   r>   r@   ÚTheLoaiBaiVietr;   r?   r   r:   rV   r   r   rW   r   )
rG   Zid_the_loairn   rX   rm   Zten_the_loairY   rZ   rT   rJ   r    r    r!   Úblog¿   s(   


þýrq   c                 C   sÞ   g d¢}t j ¡ }| j d¡}tddddddƒ}t|ƒ}tjj|t	||ƒd	j
|d
 d¡}t|ƒ}t|dƒ}| j d¡}	z| |	¡}
W n tyR   | d¡}
Y n ty`   | |j¡}
Y nw |
||||dœ}t| d|ƒS )Nri   r&   ÚtenÚten_tieng_anhÚmo_taÚmo_ta_tieng_anhÚnoi_dungÚnoi_dung_tieng_anh)ÚsearchZrank)rx   z-rankr   rS   r	   )r1   Útotal_resultsrm   rH   rn   z BmcBase/blog_search_results.html)rp   r=   r>   r:   r;   r   r   ro   Úannotater   r?   r@   Úlenr   rV   r   r   rW   r   )rG   rn   rm   rH   Zsearch_vectorr0   Zsearch_results_listry   rY   rZ   r1   rJ   r    r    r!   Úblog_searchæ   s.   
	$
þûr|   c                 C   sð   g d¢}t jj|d}|jjdd d¡d d… }d }| jdkr8t| jd}| 	¡ r7|j
d	d
}||_| 
¡  ntƒ }|j ¡ }g }|D ]}	|t jj|	dj|jd d¡d d… 7 }qDt|ƒdkrh|d d… }|||||||dœ}
t| d|
ƒS )Nri   r]   T)Útrang_thai_da_duyetrj   r   ÚPOST)ÚdataF)Úcommitrk   r	   é   )Úbai_vietrm   rn   Údanh_sach_bai_viet_cung_chu_deÚdanh_sach_binh_luanÚbinh_luan_moiÚbinh_luan_formzBmcBase/blog_post.html)ro   r=   r;   Úcac_binh_luanr?   r@   ÚmethodZBinhLuanFormr~   Úis_validÚsaver‚   rl   r>   ÚexcluderF   r{   r   )rG   Zid_bai_vietrn   r‚   r„   r…   r†   rm   rƒ   ÚcategoryrJ   r    r    r!   Ú	blog_post  s6   

€
,ù
r   c                 C   s¤  t j ¡ }t|dƒ}| j d¡}z| |¡}W n ty%   | d¡}Y n ty3   | |j	¡}Y nw t jj
dd}t|dƒ}| j d¡}z| |¡}W n ty[   | d¡}Y n tyi   | |j	¡}Y nw t jj
dd}	t|	dƒ}
| j d¡}z|
 |¡}W n ty‘   |
 d¡}Y n tyŸ   |
 |
j	¡}Y nw t jj
d	d}t|dƒ}| j d
¡}z| |¡}W n tyÇ   | d¡}Y n tyÕ   | |j	¡}Y nw t jj
dd}t|dƒ}| j d¡}z| |¡}W n tyý   | d¡}Y n ty   | |j	¡}Y nw tj ¡ }t|dƒ}| j d¡}z| |¡}W n ty3   | d¡}Y n tyB   | |j	¡}Y nw ||||||dœ}t| d|ƒS )NrR   Zproducts_pager	   r(   r)   Zthuocsaus_pager+   Zthuoctrubenhs_pager,   Zthuoccos_pager-   Zthuocsinhtruongs_pageZbinh_bom_page)r3   r4   r5   r6   r7   r8   zBmcBase/products.html)r<   r=   r>   r   r:   r;   rV   r   r   rW   r?   rA   r   )rG   Zproducts_listZproducts_paginatorZproducts_page_numberr3   Zthuocsaus_listZthuocsaus_paginatorZthuocsaus_page_numberr4   Zthuoctrubenhs_listZthuoctrubenhs_paginatorZthuoctrubenhs_page_numberr5   Zthuoccos_listZthuoccos_paginatorZthuoccos_page_numberr6   Zthuocsinhtruongs_listZthuocsinhtruongs_paginatorZthuocsinhtruongs_page_numberr7   Zbinh_bom_listZbinh_bom_paginatorZbinh_bom_page_numberr8   rJ   r    r    r!   r3   D  sˆ   

þ
þ
þ
þ
þ

þûr3   c                 C   s   t t|d}t| dd|iƒS )Nr]   zBmcBase/product.htmlrI   )r   r<   r   ©rG   r/   rI   r    r    r!   r.   ˜  s   r.   c                 C   s$   t t|d}t|ƒ t| dd|iƒS )Nr]   zBmcBase/products-binhbom.htmlrI   )r   rA   Úprintr   rŽ   r    r    r!   Úproduct_binhbomœ  s   r   c           	      C   s®   | j dkrR| j d¡}t|ƒ | j d¡}| j d¡}| j d¡}| j d¡}| j d¡}t|||||d}|rJt|ƒ|_t|ƒ}|j	j
||d	d
 | 
¡  tdƒS t| dƒS )Nr~   r   ÚemailÚphoneÚ	user_typeÚmessagez
file-input)rr   r‘   Úso_dien_thoaiÚloai_khach_hangrv   F)rŠ   ú/z	form.html)rˆ   r~   r;   r   ÚFILESÚ
FormLienHer%   Úoriginal_file_namer"   ÚfilerŠ   r   r   )	rG   r   r‘   r’   r“   r”   Ú
attachmentÚ
submissionZ	safe_namer    r    r!   Úform_submit¡  s,   
û

rž   c                 C   sH   | j dkr| j d¡}| j d¡}t||d}| ¡  tdƒS t| dƒS )Nr~   Zphone_numberZproduct_name)ÚsdtÚtenSpr—   zproducts.html)rˆ   r~   r;   ÚFormTuVanSanPhamrŠ   r   r   )rG   rŸ   ZnameProductr   r    r    r!   Úform_submit_product»  s   
þ
r¢   c                 C   rL   )NzBmcBase/404.htmlrM   rN   r    r    r!   ÚerrorÊ  rP   r£   )N)/Zdjango.shortcutsr   r   r   Zdjango.contrib.postgres.searchr   r   r   Údjango.db.modelsr   ÚmodelsÚformsÚdjango.httpr   Údjango.utils.translationr   Údjango.core.paginatorr   r   r   r   Úrandomr   r   Údjango.utils.textr   r"   r%   rK   rO   r[   r9   r^   ra   rc   rd   rf   rh   rq   r|   r   r3   r.   r   rž   r¢   r£   r    r    r    r!   Ú<module>   sD    
4%
'-1T