U
    f/                     @   sr  d dl mZ d dlmZ d dlmZ d dlZd dlZd dl	m
Z d dl	mZmZ d dlZd dlZd dlZd dlZd dl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#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"Z/d#Z/d$d% Z0d&d' Z1G d(d) d)eeZ2d*d+ Z3dS ),    )renderN)HttpResponse)gettext)get_languageactivate)encoders)MIMEBase)MIMEMultipart)MIMEText)FPDF	HTMLMixin)	get_token)require_GET)JsonResponse)datetime)login_requiredc                 C   s   | j dkrZ| jd }tjj d}|jdd}tjjj	dd|d t
| d	|||d
S tjj d}|jdd}tjjjdd}t
| d	|||d
S d S )NPOSTemail	journeyidFonline    Zsubidnamer   z
index.html)entriesstickpageZLandingpage)r   )methodr   moJourneyEntryobjectsallorder_byexclude	Subsribercreater   Pagesget)requestr   argspages r,   &/var/www/html/os4al/main/os4l/views.pyindex   s    

r.   c                 C   s.   t jj d}|jdd}t| dd|iS )Nr   Fr   zcontact.htmlr   r   r    r!   r"   r#   r$   r   r)   r   r,   r,   r-   contact)   s    r1   c                 C   sn   t jj d}|jdd}t jj d}|jdd}t jj d}|jdd}t| d|||dS )NteamidFr   koopidr   z
about.html)r   Zkollabr   )	r   Teamr!   r"   r#   r$   Kooperationr    r   )r)   r*   cor   r,   r,   r-   about.   s    r7   c                 C   sN   t jj d}|jdd}t jj d}|jdd}t| d||dS )NfaqidFr   r   zfaq.html)r   r   )r   FAQr!   r"   r#   r$   r    r   )r)   r*   r   r,   r,   r-   faq9   s
    r:   c                 C   s   | j dkrV| jd }tjj d}|jdd}tjjj	dd|d t
| d	d
|iS tjj d}|jdd}t
| d	d
|iS d S )Nr   r   r   Fr   r   r   r   z	join.htmlr   )r   r   r   r    r!   r"   r#   r$   r%   r&   r   )r)   r   r   r,   r,   r-   joinA   s    

r;   c                 C   s.   t jj d}|jdd}t| dd|iS )Nr   Fr   zsubscribe.htmlr   r/   r0   r,   r,   r-   	subscribeP   s    r<   c              	   C   s   | j dkr| jd }|d}tt|D ]}|| dkr*d ||< q*|d |d d}tj|dd	}td
d}|| W 5 Q R X t	| dS t	| dS d S )Nr   Zanswers,*r   r   )Z	stichtypesize   )indentzsample.jsonwzsimulator.html)
r   r   splitrangelenjsondumpsopenwriter   )r)   dataiZ
dictionaryZjson_objectoutfiler,   r,   r-   	simulatorU   s    




rM   c                 C   s.   t jj d}|jdd}t| dd|iS )Nz-idFr   z	care.htmlr   )r   Carer!   r"   r#   r$   r   )r)   r*   r,   r,   r-   carer   s    rO   c                 C   sB   | j dkr6| jjd }tjjj|d}t| dd|iS tdS d S )NGETTitle)slugzcontent.htmlr   z
That Sucks)r   rP   r(   r   rN   r!   r   r   )r)   rQ   r*   r,   r,   r-   contentx   s
    
rS   report/z/var/www/html/os4al/main/media/c              
   C   sT  t |  | jdkrt d | jd}|rD| d}t|}t d g }| jd}|rt	|D ]b\}}t
 }|d}	td |	 d	 }
td
 t|
d}||  W 5 Q R X ||
 qht||}tjjj|d |d |d |d t|d t|  tdS | jdkrPt| }td|i}|d| t d|  |S d S )Nr   zI recieved a Post request	json_datazutf-8zI got the json fileimages%Y%m%d_%H%M%Szreport/images/woolreport_z.pngr   wbr   r   surname)r   r   rY   reportzall info receviedrP   Z	csrfToken	csrftokenzResponse Headers:)printr   FILESr(   readdecoderF   loadsgetlist	enumerater   nowstrftimelinktimesleeprH   rI   append
create_pdfr   r%   r!   r&   tlsr   r   r   
set_cookieitems)r)   Z	json_filerU   rJ   Zstored_imagesrV   rK   imagecurrent_time
identifier	file_namefZpdf_path
csrf_tokenresponser,   r,   r-   mail   s:    



"rt   c              	   C   s  d}d}d}| }d}d}d}t  }	d|	d< ||	d	< ||	d
< |	t|d t|d}
tdd}||
  W 5 Q R X t| d}|	dd|  |	| |	
 }t }t||<}|  |j|d |  ||| |||| W 5 Q R X d S )NiK  zmail.privateemail.comz contact@onesheepforalifetime.comz
Schaf3gal!zYour Wool Report is ready.aL  Hello dear sheep friend!

We are happy you tried out our Sheep's Wool Simulator :D

Find your personal wool report in the attachment. It gives you an overview of how you set your 1000 grams of sheep's wool to a purpose.

Our platform and tools are still in development, so stay tuned for more ;)

Wooly regards,
the One Sheep Team
	z,One Sheep <contact@onesheepforalifetime.com>FromToSubjectplainrbapplicationzoctet-streamzWoolreport.pdfzContent-Dispositionzattachment; filename= )context)r	   attachr
   rH   r   set_payloadr^   r   encode_base64
add_header	as_stringsslcreate_default_contextsmtplibSMTPehlostarttlsloginZsendmail)ZadressfilepathportZsmtp_serverZsender_emailZreceiver_emailpasswordsubjectbodymessage
attachmentpartfilenametextr{   serverr,   r,   r-   rj      s<    


rj   c                   @   s   e Zd ZdS )PDFN)__name__
__module____qualname__r,   r,   r,   r-   r      s   r   c              	   C   s  t | d}| d }| d d kr.| d d }nd}tt| d d}tt| d d}d}d	}d
}	d}
|
d
 }dt|d  }tdd|
|f}|  |ddd |jd|d |jd|dd |jddd|ddd |jdd||ddd |jddd|ddd |jd|	dd |jddd|ddd |jddd|ddd |jddd|ddd |jdd|d |jddd|ddd |jd|	d |jdd|d  |ddd |jddd|ddd |jd|dd |jddd!|ddd |jd|	d |jdd|d  |ddd |jddd|ddd |jd|	dd |jddd|ddd t	|D ].\}}|jddd|ddd |jd|dd |jddt|d" |ddd |jd|	d |t|k r|| }|
| d# }|jddd|ddd |j
|||d$ |jddt|d% d  |ddd |jddt|d& |ddd |jddt|d' |ddd |jddd|ddd |jddd|ddd qL|jdd	d(|ddd |jd|	d t }|d)}d*| d+ }d,| d+ }|| d-| d+ }|S ).Nr   garmentsr   z 'sZYourZtotal_used_wool_gZtotal_used_wool_m   
      9   h   Z   Pmmg      @Arial)r?   B)r?   styler    C)txtborderalignln   zWool Reportr   z)*****************************************ZBU)r   r?   z	Wool usedz gramszWool donatedZgarment_name   )xrB   Zgarment_wool_gZgarment_stichtypeZgarment_tensionzonesheepforalifetime.comrW   zmedia/report/z_woolreport.pdfz&/var/www/html/os4al/main/media/report/rT   )r\   strroundrE   r   Zadd_pageZset_marginsZset_fontcellrb   rm   r   rc   rd   output)rJ   rV   debugr   r   Z	used_woolZleftover_woolhshpwidthZimage_widthheightpdfrK   ZgarmentZ
image_pathZ
x_positionrn   ro   fpathr,   r,   r-   ri      s|    "

ri   )4Zdjango.shortcutsr   Zos4l.modelsmodelsr   django.httpr   rF   osdjango.utils.translationr   _r   r   pandaspdr   r   r   r   email.mime.baser   email.mime.multipartr	   email.mime.textr
   Zfpdfr   r   django.middleware.csrfr   django.views.decorators.httpr   r   r   rf   Zdjango.contrib.auth.decoratorsr   r.   r1   r7   r:   r;   r<   rM   rO   rS   re   rt   rj   r   ri   r,   r,   r,   r-   <module>   sD   	/: