o
    Sg$                     @   s  d dl mZmZmZ d dlZd dlZd dl mZmZ d dlmZm	Z	 d dl
mZ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
lmZ 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# ee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/d*d+ Z0d,d- Z1d.d/ Z2d0d1 Z3d2d3 Z4d4d5 Z5d6d7 Z6d8d9 Z7d:d; Z8d<d= Z9d>d? Z:d@dA Z;dS )B    )renderget_object_or_404redirectN)r   r   )EmailMessageBadHeaderError)	Paginator	EmptyPagePageNotAnInteger)settings)HttpResponseFileResponseHttp404)ListView
DetailView)	send_mail)r      )*)require_POSTrequire_GET)csrf_exempt)IdentityRegisterForm)generate_reupload_link)staticc                 C   s   g d}t d|ddS )N)	zUser-Agent: facebookexternalhitzAllow: /zCrawl-delay: 0zUser-Agent: *zDisallow: /private/zDisallow: /junk/zDisallow: /staticfiles/zDisallow: /media/zDisallow: /venv/
ztext/plain; charset=utf-8content_type)r   join)requestlines r   "/var/www/html/kck/kck2021/views.py
robots_txt   s   r!   c                 C   s6   t j d d }tj d d }t| d||dS )N      zkck2021/index.html)
latestBlogprojects)ArticleobjectsallProjectr   )r   r$   r%   r   r   r    index%   s   r*   c                 C   s   t j }d|i}t| d|S )Npostszkck2021/about.html)r&   r'   r(   r   )r   r+   contextr   r   r    about.   s   
r-   c                 C   
   t | dS )Nzkck2021/services.htmlr   r   r   r   r    services6      
r1   c                 C   s   |dkr	t | dS |dkrt | dS |dkrt | dS |dkr$t | dS |d	kr-t | d
S |dkr6t | dS |dkr?t | dS |dkrHt | dS |dkrQt | dS d S )Nkimpalanzkck2021/services_welding.htmlsemixzkck2021/services_concrete.html	pembinaanz"kck2021/services_construction.htmlpasirzkck2021/services_sand.htmlkrenzkck2021/services_crane.html	fabrikasiz!kck2021/services_fabrication.htmlbackhoezkck2021/services_backhoe.htmllongarmzkck2021/services_longarm.htmlloadcoveringz"kck2021/services_loadcovering.htmlr/   )r   service_namer   r   r    servicesType9   s&   








r=   c              	   C   s^   t d}tj|}tjtjdd|	tj
dd}tj|r+tt|dddS td	)
Nz(files/semix/Overview Catalogue Final.pdfkck2021r    /rbzapplication/pdfr   zFile not found)r   urllibparseunquoteospathr   r
   BASE_DIRreplace
STATIC_URLlstripexistsr   openr   )r   relative_path	file_pathr   r   r    semix_product_catalogM   s   $rO   c                 C   s   | j dkr
t| dS d S )NGETzkck2021/contact.html)methodr   r0   r   r   r    contactX   s   

rR   c           	      C   s   d| j v r| j d }tjj|dtjj|dB }ntj }t|d}| j d}||}d|jj	 }t
j }tj dd d }t| d	||||d
S )Nsearch)title__icontains)body__icontains   pagea?   kck2021/blog.html)pagesnums
categoriesrecent)rP   r&   r'   filterr(   r   getget_page	paginator	num_pagesArticleCategoriesorder_byr   )	r   rS   r+   rc   rW   r\   r]   r^   r_   r   r   r    blog]   s    





rg   c           	      C   s|   t jj|d}|j }t|d}| jd}||}d|jj	 }t j }t
j dd d }t| d||||dS )	N)categoryrV   rW   rX   rY   rZ   r[   )r\   r^   r_   r]   )re   r'   ra   articleCategoriesr(   r   rP   rb   rc   rd   r&   rf   r   )	r   rh   r+   rc   rW   r\   r]   r^   r_   r   r   r    catBlogs   s   



rj   c                 C   sV   d| j v r	t|  tjj|d}tj }tj dd d }t| d|||dS )NrS   slugrY   rZ   zkck2021/blogbase.html)postr^   r_   )	rP   rg   r&   r'   ra   re   r(   rf   r   )r   	slug_namerm   r^   r_   r   r   r    readblog   s   

ro   c                 C      t j }t| dd|iS )Nzkck2021/career.htmlcareers)Careerr'   r(   r   )r   rq   r   r   r    career      
rs   c                 C   rp   )Nzkck2021/project.htmlr%   )r)   r'   r(   r   )r   r%   r   r   r    project   rt   ru   c                 C   s.   t jj|d}tjj|d}t| d||dS )Nrk   )ru   zkck2021/projectbase.html)ru   images)r)   r'   ra   ProjectImagesr`   r   )r   
slug_titleru   rv   r   r   r    readproject   s   ry   c                 C   r.   )Nzkck2021/semix-terms.htmlr/   r0   r   r   r    semix_terms   r2   rz   c                 C   r.   )Nzkck2021/semix-whistle.htmlr/   r0   r   r   r    semix_whistle   r2   r{   c                 C   r.   )Nzkck2021/voucher.htmlr/   r0   r   r   r    voucher   r2   r|   c                 C   s   t | dddS )Nz404.htmli  statusr/   )r   	exceptionr   r   r    error   s   r   c                 C   s   t t||d}t| dd|iS )N)company__name__iexactrl   kck2021/legal_detail.htmllegalr   Legalr   )r   company_namerl   r   r   r   r    legal_with_company      r   c                 C   s   t t|dd}t| dd|iS )NT)rl   company__isnullr   r   r   )r   rl   r   r   r   r    legal_without_company   r   r   c                 C   s`   | j dkr%t| j| j}| r| }|j}td|dS t| dd|iS t }t| dd|iS )NPOSTzkck:identity_registeredreference_codekck2021/identity_register.htmlform)	rQ   r   r   FILESis_validsaver   r   r   )r   r   instancer   r   r   r    identity_register   s   
r   c                 C      t t|d}t| dd|iS )Nr    kck2021/identity_registered.htmlidentityr   IdentityRegisterr   r   r   r   r   r   r    identity_registered      r   c                 C   r   )Nr   z%kck2021/identity_register_status.htmlr   r   r   r   r   r    identity_register_status   r   r   c                 C   sf   t t|d}ztjj|t dd}W n tjy'   t	|}t
| Y S w t
tdd|jidS )Nr   )r   expires_at__gt
expires_atzkck:identity_reuploadtoken)kwargs)r   r   ReuploadTokenr'   r`   timezonenowlatestDoesNotExistr   r   reverser   )r   r   r   reupload_tokenlinkr   r   r    identity_reupload_request   s   r   c                 C   s   t t|t d}|j}| jdkrCt| j| j|d}|	 rB|
 }tjjdd\}}|j  |j| |  t| dd|iS nt|d}t| d||d	S )
N)r   r   r   )r   zBelum disemakr}   r   r   r   )r   r   )r   r   r   r   r   rQ   r   r   r   r   r   IdentityStatusr'   get_or_createstatusesclearadddeleter   )r   r   r   r   r   r   belum_disemak_statuscreatedr   r   r    identity_reupload   s   


r   )<django.shortcutsr   r   r   rE   urllib.parserB   django.core.mailr   r   django.core.paginatorr   r   r	   django.confr
   django.httpr   r   r   django.views.genericr   r   r   modelsdjango.views.decorators.httpr   r   django.views.decorators.csrfr   formsr   utilsr   django.templatetags.staticr   r!   r*   r-   r1   r=   rO   rR   rg   rj   ro   rs   ru   ry   rz   r{   r|   r   r   r   r   r   r   r   r   r   r   r   r    <module>   sV    	