3
¦\‹bŠÖ  ã               @   s  d dl 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 d dl mZ d dlmZmZmZ dd	lT d d
lZd dlmZmZmZ d d
lZd dlmZ d d
lZd dlmZ d dlmZ d d
lZd d
l Z d d
l!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Zd d
l*Z*d d
l+Z+d d
l,Z,d dl-m.Z. d dl/m0Z0 d dl1m2Z2 G dd„ deƒZ3G dd„ deƒZ4G dd„ deƒZ5G dd„ deƒZ6d dl"m7Z7 G dd„ deƒZ8G d d!„ d!eƒZ9G d"d#„ d#eƒZ:G d$d%„ d%eƒZ;G d&d'„ d'eƒZ<G d(d)„ d)eƒZ=G d*d+„ d+eƒZ>G d,d-„ d-eƒZ?G d.d/„ d/eƒZ@G d0d1„ d1eƒZAG d2d3„ d3eƒZBd4d5„ ZCd6d7„ ZDd8d9„ ZEd:d;„ ZFd<d=„ ZGd>d?„ ZHd@dA„ ZIG dBdC„ dCeƒZJG dDdE„ dEe2ƒZKG dFdG„ dGe2ƒZLG dHdI„ dIeƒZMdJdK„ ZNG dLdM„ dMeƒZOG dNdO„ dOeƒZPd dPlQmRZR dQdR„ ZSG dSdT„ dTeƒZTdUdV„ ZUd
S )Wé    )Úrender)ÚTemplateView)ÚUser)ÚauthenticateÚloginÚlogout)Úreverse)Úredirect)ÚHttpResponseÚHttpResponseRedirectÚJsonResponseé   )Ú*N)Ú	PaginatorÚ	EmptyPageÚPageNotAnInteger)Úsettings)ÚSMTPException)ÚEmailMessage)Úuser_redirectÚlogin_redirect)Úmethod_decorator)ÚImage)ÚLower)Úchain)ÚViewc                   s<   e Zd ZdZ‡ fdd„Zdd„ Zeeƒ‡ fdd„ƒZ‡  Z	S )ÚLoginzdashboard/login.htmlc                s   t t| ƒj||Ž}|S )N)Úsuperr   Úget_context_data)ÚselfÚargsÚkwargsÚcontext)Ú	__class__© ú*/var/www/html/myproject/dashboard/views.pyr   $   s    zLogin.get_context_datac             C   sn   |j jdƒ}|j jdƒ}t||d�}|rbtjj|dd�}|rNt||ƒ tdƒS t||ƒ tdƒS ntdƒS d S )	NÚusernameÚpassword)r&   r'   T)r&   Úis_superuserÚ1Ú2Ú0)ÚPOSTÚgetr   r   ÚobjectsÚfilterr   r
   )r   Úrequestr&   r'   ÚuserÚ	superuserr$   r$   r%   Úpost*   s    


z
Login.postc                s   t t| ƒj|f|ž|ŽS )N)r   r   Údispatch)r   r0   r    r!   )r#   r$   r%   r4   ;   s    zLogin.dispatch)
Ú__name__Ú
__module__Ú__qualname__Útemplate_namer   r3   r   r   r4   Ú__classcell__r$   r$   )r#   r%   r   !   s   r   c                   s<   e Zd ZdZ‡ fdd„Zdd„ Zeeƒ‡ fdd„ƒZ‡  Z	S )ÚForgotPasswordzdashboard/forgot.htmlc                s@   t t| ƒj||Ž}x(| jjjƒ D ]\}}tdj||ƒƒ q W |S )Nz{} => {})r   r:   r   r0   ÚsessionÚitemsÚprintÚformat)r   r    r!   r"   ÚkeyÚvalue)r#   r$   r%   r   B   s    zForgotPassword.get_context_datac             C   s  |j jdƒ}tjj|dd�jƒ }|�rdjdd„ tdƒD ƒƒ}|j|ƒ |j	ƒ  d}|j
}d	t|ƒ d
 t|ƒ }y^tjddƒ}|jƒ  |jddƒ tƒ }	|	j|ƒ d|	d< d|	d< t|ƒ|	d< |j|	ƒ tdƒS  tk
�r  }
 ztd|
ƒ tdƒS d }
~
X nX ntdƒS d S )Nr&   T)r&   r(   Ú c             S   s   g | ]}t jtjtj ƒ‘qS r$   )ÚrandomÚchoiceÚstringÚascii_lettersÚdigits)Ú.0Únr$   r$   r%   ú
<listcomp>L   s    z'ForgotPassword.post.<locals>.<listcomp>é   zitsmepython21@gmail.comzHello z, Your New Password is :  zsmtp.gmail.comiK  zpeytontek@gmail.comZeehnjguhomviobgozNEW PASSWORDÚSubjectÚFromÚTor)   z
error is :r*   r+   )r,   r-   r   r.   r/   ÚfirstÚjoinÚrangeÚset_passwordÚsaveÚemailÚstrÚsmtplibÚSMTPÚstarttlsr   r   Úset_contentÚsend_messager
   Ú	Exceptionr=   )r   r0   r&   r1   ÚnewpassÚsenderÚreceiverÚmessageÚserverÚmsgÚer$   r$   r%   r3   H   s0    



zForgotPassword.postc                s   t t| ƒj|f|ž|ŽS )N)r   r:   r4   )r   r0   r    r!   )r#   r$   r%   r4   d   s    zForgotPassword.dispatch)
r5   r6   r7   r8   r   r3   r   r   r4   r9   r$   r$   )r#   r%   r:   ?   s   r:   c                   s4   e Zd ZdZ‡ fdd„Zeeƒ‡ fdd„ƒZ‡  ZS )ÚHomezdashboard/index.htmlc       6         sŒ  t t| ƒj||Ž}tjjƒ jƒ }|r.||d< nd|d< tjjdd�jƒ }td|ƒ |r`||d< nd|d< tjjdd�}d}|ršx|D ]}|t	|j
ƒ }q„W ||d	< td
ƒ | jjjdƒ�r|| jjd }	tdƒ t|	ƒ tjjdd�jƒ }
tdƒ |
�r|tdƒ |
j}tdƒ t|ƒ d| d }t|ƒ tj|ƒ}|jdk�r|tj|jƒ}|�r|td|d ƒ |d dk�r||d }||d< tjjƒ }d}d}d}d}d}d}|�rxxÒ|D ]Ê}|j|jk�rÐ|jdk�rÐ|d }|j|jk�rò|jdk�rò|d }|j|jk�r&|jdk�r&|d }t	|ƒt	|jƒ }|j|jk�sB|j|jk�rªt	|jƒt	|jƒ }t	|ƒt	|jƒt	|jƒ  }�qªW g }d}g }g }g }x~tddGdHƒD ]n}tjjƒ jƒ tjt	|ƒd� }|j |ƒ |j!dƒ}|j"}|j#} t$| ƒd t$|ƒ d t$|ƒ }!|j |!ƒ �qšW xf|D ]^}t%jj|d�jƒ }|�s^t%jj&|d
d �}|j'ƒ  td!ƒ |j t	dƒƒ n|j t	|j(ƒƒ �qW g }"g }#d}$g }%d}&d}d}'g }(g })d}*t)tjjƒ j*d"dd#�ƒ}+|+�rât)t+j,|+ƒƒ}+xÂ|+D ]º}tjjt	|ƒd$�},i }-d}$xD|,D ]<}.|.j|.jk�rò|.jdk�ròt	|$ƒt	|.jƒt	|.jƒ  }$�qòW |$|-d%< t-t.t	|$ƒt	|ƒ d& ƒd'ƒ|-d(< ||-d)< tjjt	|ƒd*�j/|-d+< |%j |-ƒ �qÎW t0|%d,d-„ dd.�}/x2|/D ]*}|#j t.|d( ƒƒ |"j t$|d+ ƒƒ �q¤W t1|#ƒd/k�rzx@|"D ]8}|d }|d0k �r|(j t$|ƒƒ n|(j d1ƒ d}P �qæW xF|#D ]>}|d }|d0k �rN|)j t	|ƒƒ nt-t.|*ƒt.|ƒ d'ƒ}*�q(W |)j t	|*ƒƒ n|(j d2ƒ |)j t	d&ƒƒ xn|)D ]D}|'t	|ƒ }'t	|'ƒt	dƒk�r˜g })|)j t	d&ƒƒ g }(|(j d3ƒ �q˜W n g })|)j t	d&ƒƒ g }(|(j d4ƒ |(|d5< |)|d6< |"|d7< |#|d8< ||d9< ||d:< |d |d;< |d |d<< ||d=< ||d>< ||d?< ||d@< g }0g }1g }2tdAƒ x´tddBƒD ]¦}tjjƒ jƒ tj|d� }3t|3ƒ t2jj|3dC�jƒ }4|4�rÚ|2j t	|4j3ƒƒ n
|2j dƒ |0j |3ƒ |3j!dƒ}|3j"}|3j#} t$| ƒd t$|ƒ d t$|ƒ }5|1j |5ƒ �qŠW tdD|1ƒ tdD|2ƒ |1d d dI… }1|2d d dJ… }2|1|dE< |2|dF< tdD|1ƒ tdD|2ƒ |S )KNÚ	all_usersr   F)Zuser_id__is_superuserzobj2==========================>Úactive_usersT)Ú	is_activeÚ
maza_coinsr+   Ú_auth_user_idr)   éÜ   )Ú
user_id_idr*   Ú3Ú
zOhttp://173.199.124.155:2100/MazaCoinService.asmx/Get_Balance_By_Addres?ADDRESS=z&PASSWORD=0nly@Coin123éÈ   zjson_resp['Success'] = ÚSuccessr   ÚResultZadmin_maza_coinsé	   )Údaysz%bú,ú )Údate)rs   Úper_day_clickszcreated with 0 clicksZuserinfo_id__id)Úflat)Úuserinfo_id_idÚremaining_clickséd   é   Z
percentageÚuserinfo_id)ÚidÚ	user_namec             S   s   | d S )Nrw   r$   )Úkr$   r$   r%   Ú<lambda>�  s    z'Home.get_context_data.<locals>.<lambda>)r?   r   é   é   zOthers           zTotal users less than 4zNo remaining clicks left.zNo Jobs created.Úfinal_namesÚfinal_percentageÚ
user_namesÚremainings_percentageÚ	days_dataÚ	days_listZsend_date_oneZsend_date_twoZclicks_leftÚuncompleted_jobsÚcompleted_jobsÚ	offensiverA   é
   )Ú
time_stampz=====================>Údays_list_newÚmy_all_DataéÿÿÿÿrŽ   rŽ   rŽ   )4r   rb   r   ÚUserInfor.   ÚallÚcountr/   r=   ÚintÚcoinsr0   r;   Úhas_keyÚUserCoinInforN   ÚcoinaddressÚrequestsr-   Ústatus_codeÚjsonÚloadsÚtextÚUserAddedPostÚ
total_viewÚcurrent_viewr‰   rP   ÚdatetimeÚnowrs   Ú	timedeltaÚappendÚstrftimeÚyearÚdayrT   ÚClicksPerDayInfoÚcreaterR   rt   ÚlistÚvalues_listÚdictÚfromkeysÚroundÚfloatrS   ÚsortedÚlenÚUserLoginDetailÚtotal_count)6r   r    r!   r"   Úobj1Úobj2ÚobjÚt_coinsÚiÚuseridÚusercoininfo_objÚcoinaddress_valÚurlÚrespÚ	json_respZadmin_coinsÚobj3Úcompleted_countÚuncompleted_countÚoffensive_countZall_remaining_clicksZclicks_per_dayÚcZaaZcheck_datesZ
today_datar†   Údatesr…   Z	date_infoZdate_info_monthZdate_info_yearZdate_info_dayZ
enter_daterƒ   r„   rw   Zremaining_dataZall_remainingÚcheckr�   r‚   ÚenterÚobj4Zobj5Zclicks_infoÚjZfinal_sortedZ	all_datesrŒ   r�   ZPrevious_DateZlogin_countZenter_date1)r#   r$   r%   r   j   sZ   






" 

 


""











 




zHome.get_context_datac                s   t t| ƒj|f|ž|ŽS )N)r   rb   r4   )r   r0   r    r!   )r#   r$   r%   r4   ø  s    zHome.dispatch)	r5   r6   r7   r8   r   r   r   r4   r9   r$   r$   )r#   r%   rb   h   s      rb   c                   s8   e Zd ZdZdZ‡ fdd„Zeeƒ‡ fdd„ƒZ‡  Z	S )ÚUserListzdashboard/user_list.htmlrŠ   c                s0  t t| ƒj||Ž}tjjƒ jdd�jtdƒƒ}tjj	dd�}t
t||ƒƒ}g }d}x:|D ]2}	|d7 }|j||	j|	j|	j|	j|	j|	jdœƒ qXW t|dƒ}
t| jjjddƒƒ}y|
j|ƒ}td	ƒ W nP tk
rê   |
j|
jƒ}td
ƒ Y n* tk
�r   |
j|
jƒ}tdƒ Y nX ||d< ||d< ||d< |S )Nzsterlingpeyton@gmail.com)rS   Únamer   r   )ÚserialnorÈ   rS   r“   Ú
corn_coinsre   r{   rŠ   ÚpageZtruyZexcept1Zexcept2ÚusersÚdataZall_user)r   rÇ   r   r�   r.   r�   ÚexcludeÚorder_byr   r/   r¨   r   r¢   rÈ   rS   r“   rÊ   re   r{   r   r’   r0   ÚGETr-   rË   r=   r   Ú	num_pagesr   )r   r    r!   r"   r´   rÍ   Úresult_listZ
sampledatarÉ   ÚdÚ	paginatorrË   rÌ   )r#   r$   r%   r      s>    


zUserList.get_context_datac                s   t t| ƒj|f|ž|ŽS )N)r   rÇ   r4   )r   r0   r    r!   )r#   r$   r%   r4   &  s    zUserList.dispatch)
r5   r6   r7   r8   Úpaginate_byr   r   r   r4   r9   r$   r$   )r#   r%   rÇ   ü  s   &rÇ   )ÚWithdrawalRequestLogsc               @   s   e Zd ZdZdd„ ZdS )ÚWitdrawLogsListz!dashboard/withdraw_logs_list.htmlc             O   s¤   |j jr”|j jr”tjjƒ jdƒ}|jjddƒ}t	|dƒ}y|j
|ƒ}W n< tk
rd   |j
dƒ}Y n  tk
r‚   |j
|jƒ}Y nX t|| jtƒ ƒS t|| jtƒ ƒS )Nz-sender_requested_maza_coinsrË   r   é   )r1   Úis_authenticatedr(   rÖ   r.   r�   rÏ   rÐ   r-   r   rË   r   r   rÑ   r   r8   Úlocals)r   r0   r    r!   Zall_requestsrË   rÔ   r$   r$   r%   r-   .  s    
zWitdrawLogsList.getN)r5   r6   r7   r8   r-   r$   r$   r$   r%   r×   ,  s   r×   c                   s<   e Zd ZdZ‡ fdd„Zdd„ Zeeƒ‡ fdd„ƒZ‡  Z	S )ÚAddKeyszdashboard/add-keys.htmlc                s(   t t| ƒj||Ž}tjjƒ }||d< |S )NÚall_keys)r   rÛ   r   ÚVirtualKeyboardr.   r�   )r   r    r!   r"   r´   )r#   r$   r%   r   A  s    
zAddKeys.get_context_datac             O   s–  i }|j jdƒ}|jjdƒ}|o"|�rttjj||d�}|jƒ  |j}yâ|jj	}	t
jjtjd |	 ƒ}
tj|
ƒ}|jdƒ dt|	ƒ }t
jjtjd | ƒ}|j|ƒ tj|
ƒ}|jdƒ dt|	ƒ }t
jjtjd | ƒ}|j|ƒ tj|
ƒ}|jdƒ d
t|	ƒ }t
jjtjd | ƒ}|j|ƒ W n. tk
�rT } ztd|ƒ W Y d d }~X nX tjjƒ }||d< t|d|ƒS tjjƒ }||d< t|d|ƒS d S )NÚimageÚrank)rß   rÞ   ú/é2   Ú50X50_rx   Ú100X100_rl   Ú200X200_z	error is:rÜ   zdashboard/add-keys.html)rá   rá   )rx   rx   )rl   rl   )ÚFILESr-   r,   rÝ   r.   r§   rR   r{   rÞ   rÈ   ÚosÚpathrO   r   Ú
MEDIA_ROOTr   ÚopenÚ	thumbnailrT   rZ   r=   r�   r   )r   r0   r    r!   r"   rÞ   rß   r´   ZiddÚ
image_nameÚfileÚimrÈ   Ú
thumb_filera   r$   r$   r%   r3   G  sD    











zAddKeys.postc                s   t t| ƒj|f|ž|ŽS )N)r   rÛ   r4   )r   r0   r    r!   )r#   r$   r%   r4   s  s    zAddKeys.dispatch)
r5   r6   r7   r8   r   r3   r   r   r4   r9   r$   r$   )r#   r%   rÛ   ?  s   ,rÛ   c                   s0   e Zd ZdZdd„ Zeeƒ‡ fdd„ƒZ‡  ZS )ÚAddUserzdashboard/add-user.htmlc             C   sÖ   |j jdƒ}|j jdƒ}|j jdƒ}tjj|d�}|r>tdƒS yntjj|d�}|j|ƒ |jƒ  ||_	||_
d|_d|_|jƒ  tjj|j|j	|j
|jdd�}|jƒ  tdƒS  tk
rÐ } ztd	ƒS d }~X nX d S )
NÚ
first_namer'   rS   )r&   r+   T)ri   rÈ   rS   Úunamere   r)   rj   )r,   r-   r   r.   r/   r
   r§   rQ   rR   rð   rS   re   Úis_staffr�   r{   r&   rZ   )r   r0   rÈ   r'   rS   r1   Ú	user_infora   r$   r$   r%   r3   y  s(    
zAddUser.postc                s   t t| ƒj|f|ž|ŽS )N)r   rï   r4   )r   r0   r    r!   )r#   r$   r%   r4   ‘  s    zAddUser.dispatch)	r5   r6   r7   r8   r3   r   r   r4   r9   r$   r$   )r#   r%   rï   w  s   rï   c                   s<   e Zd ZdZ‡ fdd„Zdd„ Zeeƒ‡ fdd„ƒZ‡  Z	S )ÚEditKeyzdashboard/edit_keys.htmlc                sD   t t| ƒj||Ž}t|d ƒ tjj|d d�jƒ }|r@||d< |S )Nr{   )r{   Zcurrent_key)r   rô   r   r=   ÚKeyboard_keysr.   r/   rN   )r   r    r!   r"   r´   )r#   r$   r%   r   ˜  s    zEditKey.get_context_datac              C   s‚  |j jdƒ}|jjdƒ}i }|s&|�r¾tjj|d�jƒ }|rHt|jj	ƒ}|rZ||_
|jƒ  |jj}|�ry¨tjjtjd | ƒ}	tj|	ƒ dt|ƒ }
tjjtjd |
 ƒ}	tj|	ƒ dt|ƒ }tjjtjd | ƒ}	tj|	ƒ dt|ƒ }tjjtjd | ƒ}	tj|	ƒ W n. tk
�r> } ztd|ƒ W Y d d }~X nX �yœ||_|jƒ  |jj}tjjtjd | ƒ}tj|ƒ}|jdƒ dt|ƒ }tjjtjd | ƒ}|j|ƒ tj|ƒ}|jdƒ dt|ƒ }tjjtjd | ƒ}|j|ƒ tj|ƒ}|jdƒ dt|ƒ }tjjtjd | ƒ}|j|ƒ tjjt|ƒd�jƒ }|�r`|j|d< |j	|d< tjjt|ƒd�}ttjjt|ƒd�jdƒƒ}|�rœ||d< |�r°tj|ƒ|d< tjjt|ƒd�j ƒ }|�rÔ||d< t!|d|ƒS  tk
�r } ztd|ƒ W Y d d }~X nX tjjt|ƒd�jƒ }|�r>|j|d< |j	|d< tjjt|ƒd�}ttjjt|ƒd�jdƒƒ}|�rz||d< |�rŽtj|ƒ|d< tjjt|ƒd�j ƒ }|�r²||d< t!|d|ƒS tjjtt"d ƒd�jƒ }|�rò|j|d< |j	|d< tjjtt"d ƒd�}ttjjtt"d ƒd�jdƒƒ}|�r6||d< |�rJtj|ƒ|d< tjjtt"d ƒd�j ƒ }|�rr||d< t!|d|ƒS d S )Nrß   rÞ   )r{   rà   rä   rã   râ   zfile deletion error:rá   rx   rl   Úkeyboard_nameÚkeyboard_id)Úkeyboard_id_idÚ	key_imagerÜ   Úall_keys_objÚlengthzdashboard/add-keys.htmlz	error is:r{   )rá   rá   )rx   rx   )rl   rl   )#r,   r-   rå   rõ   r.   r/   rN   r’   r÷   r{   rß   rR   rù   rÈ   ræ   rç   rO   r   rè   ÚremoverT   rZ   r=   r   ré   rê   ÚKeyboardÚlabelr¨   Úvaluesr™   Údumpsr‘   r   r!   )r   r0   r{   rß   Úenter_imager"   r´   r÷   Ú
user_imageÚ	full_pathÚuser_image1Úuser_image2Úuser_image3ra   rë   rì   rí   rÈ   rî   r²   rú   r³   r$   r$   r%   r3      s¸    




















 zEditKey.postc                s   t t| ƒj|f|ž|ŽS )N)r   rô   r4   )r   r0   r    r!   )r#   r$   r%   r4     s    zEditKey.dispatch)
r5   r6   r7   r8   r   r3   r   r   r4   r9   r$   r$   )r#   r%   rô   •  s   trô   c                   s<   e Zd ZdZ‡ fdd„Zdd„ Zeeƒ‡ fdd„ƒZ‡  Z	S )ÚEditUserzdashboard/edit-user.htmlc                s0   t t| ƒj||Ž}tjj|d d�}||d< |S )Nr{   )r{   Úcurrent_user)r   r  r   r�   r.   r-   )r   r    r!   r"   r´   )r#   r$   r%   r     s    zEditUser.get_context_datac             C   sd  |j jdƒ}|j jdƒ}|j jdƒ}|j jdƒ}|j jdƒ}|j jdƒ}tjj|d�jƒ }	|	jj}
tjj|d�j	|
d�}|r„t
d	ƒS yªtjj|d�}||_||_||_t|ƒ|_|jƒ  |d
krÎd|_|jƒ  |dkräd|_|jƒ  tjj|jjd�}||_||_||_|�r|j|ƒ |jƒ  |jƒ  t
dƒS  tk
�r^ } ztd|ƒ t
dƒS d }~X nX d S )Nrð   r|   r'   rS   Ústatusr“   )r{   )r&   r*   ZInactiveFZActiveTr)   zerror is  : r+   )r,   r-   r�   r.   r/   rN   Úuser_idr{   r   rÎ   r
   rÈ   rS   rñ   r’   r“   rR   re   rð   r&   rQ   rZ   r=   )r   r0   r{   rÈ   rñ   r'   rS   r	  r“   Zget_idr
  r²   r´   Úauth_user_objra   r$   r$   r%   r3   !  sH    


zEditUser.postc                s   t t| ƒj|f|ž|ŽS )N)r   r  r4   )r   r0   r    r!   )r#   r$   r%   r4   S  s    zEditUser.dispatch)
r5   r6   r7   r8   r   r3   r   r   r4   r9   r$   r$   )r#   r%   r    s   2r  c                   s    e Zd ZdZ‡ fdd„Z‡  ZS )ÚLogoutzdashboard/login.htmlc                s@   t t| ƒj||Ž}td| jƒ d| jjkr<| jjd= tdƒ |S )Nr0   rg   zdone.)r   r  r   r=   r0   r;   )r   r    r!   r"   )r#   r$   r%   r   Y  s    
zLogout.get_context_data)r5   r6   r7   r8   r   r9   r$   r$   )r#   r%   r  W  s   r  c                   s<   e Zd ZdZ‡ fdd„Zdd„ Zeeƒ‡ fdd„ƒZ‡  Z	S )ÚFAQzdashboard/faq.htmlc                s(   t t| ƒj||Ž}tjjƒ }||d< |S )NÚall_questions)r   r  r   ÚQuestionAnswersr.   r�   )r   r    r!   r"   r´   )r#   r$   r%   r   d  s    
zFAQ.get_context_datac             C   sL   |j jdƒ}|j jdƒ}|r@|r@tjj||d�}|jƒ  tdƒS tdƒS d S )NÚquestionÚanswer)r  r  r)   r+   )r,   r-   r  r.   r§   rR   r
   )r   r0   r  r  Zfaq_objr$   r$   r%   r3   j  s    zFAQ.postc                s   t t| ƒj|f|ž|ŽS )N)r   r  r4   )r   r0   r    r!   )r#   r$   r%   r4   v  s    zFAQ.dispatch)
r5   r6   r7   r8   r   r3   r   r   r4   r9   r$   r$   )r#   r%   r  b  s   r  c                   s<   e Zd ZdZ‡ fdd„Zdd„ Zeeƒ‡ fdd„ƒZ‡  Z	S )ÚEditFAQzdashboard/edit_faq.htmlc                s0   t t| ƒj||Ž}tjj|d d�}||d< |S )Nr{   )r{   Zcurrent_ques)r   r  r   r  r.   r-   )r   r    r!   r"   r´   )r#   r$   r%   r   }  s    zEditFAQ.get_context_datac       	      C   sä   |j jdƒ}|j jdƒ}i }y~tjj|d�jƒ }|s8|rz|rJ||_|jƒ  |r\||_|jƒ  tjj	ƒ }||d< t
|d|ƒS tjj	ƒ }||d< t
|d|ƒS W nD tk
rÞ } z(td|ƒ tjj	ƒ }||d< t
|d|ƒS d }~X nX d S )	Nr  r  )r{   r  zdashboard/faq.htmlr)   r+   z
error is :)r,   r-   r  r.   r/   rN   r  rR   r  r�   r   r
   rZ   r=   )	r   r0   r{   r  r  r"   Zques_objr´   ra   r$   r$   r%   r3   ƒ  s4    
 


zEditFAQ.postc                s   t t| ƒj|f|ž|ŽS )N)r   r  r4   )r   r0   r    r!   )r#   r$   r%   r4   §  s    zEditFAQ.dispatch)
r5   r6   r7   r8   r   r3   r   r   r4   r9   r$   r$   )r#   r%   r  z  s   $r  c                   s4   e Zd ZdZ‡ fdd„Zeeƒ‡ fdd„ƒZ‡  ZS )ÚViewGenerateReportz#dashboard/view_generate-report.htmlc                sh  t t| ƒj||Ž}tjj|d d�jdƒ}||d< tjjt|d ƒd�}g }g }|r¶t	|ƒdkr¶x:|D ]2}i }	|j
|	d< |jj|	d< |j|	d	< |j|	ƒ qfW t|d
d„ dd�d d… }||d< g }
tjjt|d ƒd�jƒ }|�rR|jdk�rRttjjt|d ƒd�jdƒƒ}|�rRx<|D ]2}|d jdƒ}|
jt|d ƒt|d ƒgƒ �qW n |
|d< td|ƒ |S )Nr{   )r{   z-idÚ	all_posts)Ú
post_id_idé   rö   rù   Úclicksc             S   s   | d S )Nr  r$   )r}   r$   r$   r%   r~   À  s    z5ViewGenerateReport.get_context_data.<locals>.<lambda>T)r?   r   Ú	keys_infoFrß   r   rq   r   rÍ   r"   )r   r  r   rœ   r.   r/   rÏ   ÚKeyClickInfoPerPostr’   r¯   rö   Úkeys_idrù   Úclicks_by_usersr¢   r®   rN   r‰   r¨   ÚOtherUsersReactionr©   Úsplitr=   )r   r    r!   r"   r´   Úall_keys_clickedÚ	keys_dataÚkeys_data_sortedr¶   r  rÍ   Ú	check_objÚl)r#   r$   r%   r   ®  s8    


 
&
z#ViewGenerateReport.get_context_datac                s   t t| ƒj|f|ž|ŽS )N)r   r  r4   )r   r0   r    r!   )r#   r$   r%   r4   Ø  s    zViewGenerateReport.dispatch)	r5   r6   r7   r8   r   r   r   r4   r9   r$   r$   )r#   r%   r  ¬  s   *r  c                   s4   e Zd ZdZ‡ fdd„Zeeƒ‡ fdd„ƒZ‡  ZS )ÚGenerateReportzdashboard/generate-report.htmlc                sD  t t| ƒj||Ž}x(| jjjƒ D ]\}}tdj||ƒƒ q W tj	j
ƒ }g }g }|r´t|ƒdkr´x:|D ]2}	i }
|	j|
d< |	jj|
d< |	j|
d< |j|
ƒ qdW t|dd„ dd	�d d… }||d
< td|ƒ tj	j
ƒ jdƒ}||d< ttj	j
ƒ jdƒƒ}g }x@|D ]8}	t|	ƒ |	d jdƒ}|jt|d ƒt|d ƒgƒ qüW ||d< |S )Nz{} => {}r  rö   rù   r  c             S   s   | d S )Nr  r$   )r}   r$   r$   r%   r~   ð  s    z1GenerateReport.get_context_data.<locals>.<lambda>T)r?   r   r  r"   z-idr  rß   r   rq   r   rÍ   )r   r#  r   r0   r;   r<   r=   r>   ÚKeyClickesInfor.   r�   r¯   rö   r  rù   r  r¢   r®   rœ   rÏ   r¨   r  r©   r  r’   )r   r    r!   r"   r?   r@   r  r  r   r¶   r  r´   rÍ   r"  )r#   r$   r%   r   ß  s6    





"zGenerateReport.get_context_datac                s   t t| ƒj|f|ž|ŽS )N)r   r#  r4   )r   r0   r    r!   )r#   r$   r%   r4     s    zGenerateReport.dispatch)	r5   r6   r7   r8   r   r   r   r4   r9   r$   r$   )r#   r%   r#  Ý  s   'r#  c                   s<   e Zd ZdZ‡ fdd„Zdd„ Zeeƒ‡ fdd„ƒZ‡  Z	S )ÚContactInfozdashboard/contact.htmlc                sV   t t| ƒj||Ž}x(| jjjƒ D ]\}}tdj||ƒƒ q W tj	j
ƒ }|rR||d< |S )Nz{} => {}Úcurrent_info)r   r%  r   r0   r;   r<   r=   r>   ÚSiteContactInfor.   rN   )r   r    r!   r"   r?   r@   r´   )r#   r$   r%   r     s    
zContactInfo.get_context_datac       	      C   s  |j jdƒ}|j jdƒ}|j jdƒ}|j jdƒ}i }|rÐtjjt|ƒd�jƒ }|r¬||_|jƒ  ||_	|jƒ  ||_
|jƒ  tjjt|jƒd�jƒ }|r ||d< t|d|ƒS tjjƒ }|rÂ||d< t|d|ƒS n>tjj|||d�}|jƒ  tjjƒ }|�r||d< t|d|ƒS d S )
NÚ
contact_idÚphone_norS   Úaddress)r{   r&  zdashboard/contact.html)r)  rS   r*  r+   )r,   r-   r'  r.   r/   r’   rN   r)  rR   rS   r*  r{   r   r§   r
   )	r   r0   r(  r)  rS   r*  r"   r´   r²   r$   r$   r%   r3     s:    

zContactInfo.postc                s   t t| ƒj|f|ž|ŽS )N)r   r%  r4   )r   r0   r    r!   )r#   r$   r%   r4   >  s    zContactInfo.dispatch)
r5   r6   r7   r8   r   r3   r   r   r4   r9   r$   r$   )r#   r%   r%  
  s   'r%  c             C   s   t jj|d�}|jƒ  tdƒS )N)r{   zdashboard:faq)r  r.   r-   Údeleter	   )r0   r{   Úuser_objr$   r$   r%   Ú	deletefaqB  s    r-  c             C   sÄ  | j dk�rÀtdƒ tjj|d�}�y^dd„ }|j}tjj|d�jƒ }|�rx|j	}t|ƒ d| d }t|ƒ t
j|ƒ}t|jƒ t|jƒ |jd	k�rxtj|jƒ}	|	�rxtd
|	d ƒ |	d dk�rx|	d }
t|
ƒ}|dk�rx|}d}||ƒ}|dkrü|}td|ƒ td|ƒ t|ƒ d| d | d | d }t
j|ƒ}|jd	k�rxtj|jƒ}	|	�rxtd
|	d ƒ |	d dk�rx|jƒ  W n4 tk
�r¶ } zt|ƒ |jƒ  W Y d d }~X nX tdƒS d S )NrÐ   z!in dellllllllllllllllllllllllllll)r{   c             S   s6   t jj| d�jƒ }|r2tjj|d�jƒ }|r2|jS dS )N)r&   )r
  Úerror)r   r.   r/   rN   r•   r–   )Ú	email_valr,  r¸   r$   r$   r%   ÚsendemailgetcoinaddressM  s    z+deleteuser.<locals>.sendemailgetcoinaddress)r
  zOhttp://173.199.124.155:2100/MazaCoinService.asmx/Get_Balance_By_Addres?ADDRESS=z&PASSWORD=0nly@Coin123rl   zjson_resp['Success'] = rm   r   rn   r   zsterling2p@yahoo.comr.  zfrommazaaddress_val = ztomazaaddress_val = zZhttp://173.199.124.155:2100/MazaCoinService.asmx/Send_Transaction_By_Address?FROM_ADDRESS=z&TO_ADDRESS=z&AMOUNT=z"&FEES=0.0005&PASSWORD=0nly@Coin123r)   )Úmethodr=   r�   r.   r-   r
  r•   r/   rN   r–   r—   r˜   r›   r™   rš   r’   r+  rZ   r
   )r0   r{   r,  r0  Ú	auth_userr¸   r¹   rº   r»   r¼   ÚavailablecoinÚnoofcoins_valÚfrommazaaddress_valZ
adminemailÚresÚtomazaaddress_valra   r$   r$   r%   Ú
deleteuserG  sV    	






r8  c             C   s\   | j dkrPtd|ƒ tjjt|ƒd�jƒ }|rF|jƒ  tdƒ tdƒS tdƒS ntdƒS d S )NrÐ   Úpost_id)r{   zpost deleted by admin.r+   r)   )	r1  r=   rœ   r.   r/   r’   rN   r+  r
   )r0   r{   Úpost_objr$   r$   r%   Ú
deletepost‚  s    


r;  c       
      C   s‚  | j dk�r~tjj|d�}|jj}|jj}�ytj	j
tjd | ƒ}t|ƒ yÀtj	j
tjd | ƒ}tj|ƒ dt|ƒ }tj	j
tjd | ƒ}t|ƒ tj|ƒ dt|ƒ }tj	j
tjd | ƒ}t|ƒ tj|ƒ dt|ƒ }tj	j
tjd | ƒ}t|ƒ tj|ƒ W n. tk
�r: }	 ztd|	ƒ W Y d d }	~	X nX |jƒ  W n. tk
�rt }	 ztd|	ƒ W Y d d }	~	X nX t|ƒS d S )
NrÐ   )r{   rà   rä   rã   râ   zfile deletion error:zexception errorzdashboard:add_keys)r1  rõ   r.   r-   r÷   r{   rù   rÈ   ræ   rç   rO   r   rè   r=   rü   rT   rZ   r+  r
   r	   )
r0   r{   r,  r÷   r  r  r  r  r  ra   r$   r$   r%   Ú	deletekey�  s<    



r<  c       	      C   s„   t jjƒ jdƒ}tdd�}d|d< tj|ddtjd�}|jdd	d
dgƒ x6|D ].}|j	}|j
}|j}|j}|j||||gƒ qNW |S )Nz-idztext/csv)Úcontent_typez'attachment; filename="users_report.csv"zContent-Dispositionrr   )Ú	delimiterÚ
escapecharÚquotingÚNameÚUsernamezUser IdÚEmail)r�   r.   r�   rÏ   r
   ÚcsvÚwriterÚ
QUOTE_NONEÚwriterowrÈ   rñ   rS   r{   )	r0   r´   ÚresponserE  r¶   rA  rB  rC  ZUser_idr$   r$   r%   Úuser_info_csv¶  s    

rI  c       
      C   s¢   t jjt|ƒd�}tdd�}d}d|d< tj|ddtjd�}tjjt|ƒd	�j	ƒ }|rž|j
d
krrd}|j|gƒ n,x*|D ]"}|j}|jj}	|j|||	gƒ qxW |S )N)r  ztext/csv)r=  rq   z&attachment; filename="post_report.csv"zContent-Dispositionrr   )r>  r?  r@  )r{   TÚIs_offensive)r  r.   r/   r’   r
   rD  rE  rF  rœ   rN   r‰   rG  rß   Úlogged_user_idr{   )
r0   r{   r´   rH  Ú	separatorrE  r!  Úrank_submittedr¶   Zreacted_user_idr$   r$   r%   Újob_info_csvÅ  s     


rN  c             C   s   t dƒS )Nr)   )r
   )r0   r$   r$   r%   Ú
graph_dataÛ  s    rO  c                   s(   e Zd ZdZ‡ fdd„Zdd„ Z‡  ZS )ÚAddkeyboardzdashboard/add_keyboard.htmlc                s(   t t| ƒj||Ž}tjjƒ }||d< |S )NZcurrent_keyboard)r   rP  r   rý   r.   r�   )r   r    r!   r"   r´   )r#   r$   r%   r   ã  s    
zAddkeyboard.get_context_datac             C   sL   |j jdƒ}|rHtjj|d�}|r*tdƒS tjj|d�}|jƒ  tdƒS d S )Nrþ   )rþ   r+   r)   )r,   r-   rý   r.   r/   r
   r§   rR   )r   r0   rþ   r´   r²   r$   r$   r%   r3   é  s    zAddkeyboard.post)r5   r6   r7   r8   r   r3   r9   r$   r$   )r#   r%   rP  à  s   rP  c               @   s   e Zd Zdd„ ZdS )ÚKeyInfoc             O   s.   t tjjt|d ƒd�jdƒƒ}ttj|ƒƒS )Nr{   )rø   rù   )	r¨   rõ   r.   r/   r’   rÿ   r
   r™   r   )r   r0   r    r!   rú   r$   r$   r%   r-   ö  s     zKeyInfo.getN)r5   r6   r7   r-   r$   r$   r$   r%   rQ  õ  s   rQ  c               @   s   e Zd Zdd„ ZdS )ÚEditBoardNamec             C   s�   |j jdƒ}|j jdƒ}|r„tjj|d�jt|ƒd�}|rBtdƒS tjjt|ƒd�jƒ }|rz||_	|j
ƒ  tdƒ tdƒS tdƒS ntd	ƒS d S )
Nr÷   rö   )rþ   )r{   r+   zname changed.r)   r*   zdashboard:add_keyboard)r,   r-   rý   r.   r/   rÎ   r’   r
   rN   rþ   rR   r=   r	   )r   r0   r÷   rö   r´   r$   r$   r%   r3   û  s    
zEditBoardName.postN)r5   r6   r7   r3   r$   r$   r$   r%   rR  ú  s   rR  c                   s(   e Zd ZdZ‡ fdd„Zdd„ Z‡  ZS )ÚAddVirtualKeyszdashboard/add-keys.htmlc                sÂ   t t| ƒj||Ž}tjjt|d ƒd�jƒ }|rD|j|d< |j	|d< t
jjt|d ƒd�}tt
jjt|d ƒd�jdƒƒ}|r†||d< |r˜tj|ƒ|d< t
jjt|d ƒd�jƒ }|r¾||d	< |S )
Nr{   )r{   rö   r÷   )rø   rù   rÜ   rú   rû   )r   rS  r   rý   r.   r/   r’   rN   rþ   r{   rõ   r¨   rÿ   r™   r   r‘   )r   r    r!   r"   r´   r²   rú   r³   )r#   r$   r%   r     s    

 zAddVirtualKeys.get_context_datac             C   sN  |j jdƒ}|jjdƒ}|jjdƒ}i }|o2|o2|�rÖtjj|t|ƒ|d�}|jƒ  |jj	}t
jjtjd | ƒ}	tj|	ƒ}
|
jdƒ dt|ƒ }t
jjtjd | ƒ}|
j|ƒ tj|	ƒ}
|
jdƒ d	t|ƒ }t
jjtjd | ƒ}|
j|ƒ tj|	ƒ}
|
jdƒ dt|ƒ }t
jjtjd | ƒ}|
j|ƒ tjjt|ƒd�jƒ }|j|d< |j|d< tjjt|ƒd�}tjjt|ƒd�jƒ }|�rš||d< ||d< ttjjt|ƒd�jdƒƒ}|�rÊtj|ƒ|d< t|d|ƒS tjjt|ƒd�jƒ }|j|d< |j|d< tjjt|ƒd�}tjjt|ƒd�jƒ }|�r>||d< ||d< t|d|ƒS d S )NrÞ   rß   r÷   )rù   rø   rß   rà   rá   râ   rx   rã   rl   rä   )r{   rö   )rø   rÜ   rû   rù   rú   zdashboard/add-keys.html)rá   rá   )rx   rx   )rl   rl   )rå   r-   r,   rõ   r.   r§   r’   rR   rù   rÈ   ræ   rç   rO   r   rè   r   ré   rê   rT   rý   r/   rN   rþ   r{   r‘   r¨   rÿ   r™   r   r   )r   r0   r{   rÞ   rß   r÷   r"   r´   rë   rì   rí   rÈ   rî   r²   r³   rú   r$   r$   r%   r3   $  sZ    












zAddVirtualKeys.post)r5   r6   r7   r8   r   r3   r9   r$   r$   )r#   r%   rS    s   rS  c             C   s–  | j dk�r’t|ƒ}|�r’tjjt|ƒd�jƒ }|�r‚tjjt|ƒd�}|�rZ�x|D � ]þ}|j}|rVyÀtj	j
tjd | ƒ}tj|ƒ dt|ƒ }tj	j
tjd | ƒ}t|ƒ tj|ƒ dt|ƒ }	tj	j
tjd |	 ƒ}t|ƒ tj|ƒ dt|ƒ }
tj	j
tjd |
 ƒ}t|ƒ tj|ƒ W qV tk
�rT } ztd|ƒ W Y d d }~X qVX qVW tjjt|ƒd�}|�r‚�x|D �]}|j}|�rzyÀtj	j
tjd | ƒ}tj|ƒ dt|ƒ }tj	j
tjd | ƒ}t|ƒ tj|ƒ dt|ƒ }	tj	j
tjd |	 ƒ}t|ƒ tj|ƒ dt|ƒ }
tj	j
tjd |
 ƒ}t|ƒ tj|ƒ W n. tk
�rz } ztd	|ƒ W Y d d }~X nX �qzW |jƒ  td
ƒS d S )NrÐ   )r{   )rø   rà   rä   rã   râ   zkey file deletion error:zpost file deletion error:r)   )r1  r’   rý   r.   r/   rN   rõ   rù   ræ   rç   rO   r   rè   rü   rT   r=   rZ   rœ   rÞ   r+  r
   )r0   r{   r÷   r½   r´   r¶   r  r  r  r  r  ra   r³   rÆ   r$   r$   r%   Údeletekeyboard_  sj    







rT  c                   s    e Zd ZdZ‡ fdd„Z‡  ZS )ÚAdminDepositCoinzdashboard/admindepositcoin.htmlc       	         s¨   t t| ƒj||Ž}yd| jjjdƒrt| jjd }tjj|d�j	ƒ }|rt|j
}ttjƒ|jj }||d< t|ƒ ||d< W n, tk
r¢ } ztd|ƒ W Y d d }~X nX |S )Nrg   )ri   r–   Úqrcodez
error is :)r   rU  r   r0   r;   r”   r•   r.   r/   rN   r–   rT   r   ÚBASE_URLrV  rÈ   r=   rZ   )	r   r    r!   r"   r·   r¸   r¹   rV  ra   )r#   r$   r%   r   «  s    z!AdminDepositCoin.get_context_data)r5   r6   r7   r8   r   r9   r$   r$   )r#   r%   rU  ©  s   rU  c                   s(   e Zd ZdZ‡ fdd„Zdd„ Z‡  ZS )ÚAdminWithdrawCoinz dashboard/adminwithdrawcoin.htmlc                s   t t| ƒj||Ž}|S )N)r   rX  r   )r   r    r!   r"   )r#   r$   r%   r   ¾  s    z"AdminWithdrawCoin.get_context_datac             C   s¦  t dƒ �ybdd„ }|jjdƒ}|jjdƒ}tj�r\|tjƒ\}}|dkrXtddd	œƒS |d
k�rj|}||kr|tddd	œƒS d}tt|ƒt|ƒ ƒ}	d| d | d |	 d | d }
t d|
 d ƒ tj|
ƒ}|j	dk�rLt
j|jƒ}|�r<t d|d ƒ |d dk�rtddd	œƒS |d dk�rJtd|d d	œƒS ntddd	œƒS ntddd	œƒS ntddd	œƒS W n4 tk
�r  } zt |ƒ tddd	œƒS d }~X nX d S )NzAdminWithdrawCoin - in postc             S   sR   t jjtjd�jƒ }|rJtjj|d�jƒ }|rD|jr>d|jfS dS qNdS ndS d S )	N)r&   )r
  Úsuccessr.  rA   )r.  rA   )r.  rA   )r.  rA   )r   r.   r/   r   ÚADMIN_EMAILrN   r•   r–   )r/  r,  r¸   r$   r$   r%   ÚenteremailgetcoinaddressÅ  s    
z8AdminWithdrawCoin.post.<locals>.enteremailgetcoinaddressÚtomazaaddressÚ	noofcoinsr.  iô  zInternal Server Error)r	  r^   rY  i�  z#You can not send coins to yourself.z0.0005zZhttp://173.199.124.155:2100/MazaCoinService.asmx/Send_Transaction_By_Address?FROM_ADDRESS=z&TO_ADDRESS=z&AMOUNT=z&FEES=z&PASSWORD=0nly@Coin123rk   rl   zjson_resp['Success'] = rm   r   z"Transaction completed successfullyr   ÚError)r=   r,   r-   r   rZ  r   rT   r­   r—   r˜   r™   rš   r›   rZ   )r   r0   r[  r7  r4  r	  r^   r5  Úfees_valÚtotransfernoofcoins_valrº   r»   r¼   ra   r$   r$   r%   r3   Â  s@    
$
 zAdminWithdrawCoin.post)r5   r6   r7   r8   r   r3   r9   r$   r$   )r#   r%   rX  ¼  s   rX  )ÚMailc             C   sz   xt| D ]l}t d| ƒ t d|ƒ t d|ƒ ytj|d|› d�|dœƒ W q tk
rp } zt |ƒ W Y d d }~X qX qW d S )Nzhere is email=====zhere is the title====zhere is the message====zHello Dear, </br></br> 
 z( </br></br> Thanku  </br></br> Team Maza)Zemail_subjectÚbodyÚto_email)r=   ra  Z
send_emailrZ   )Ú	allEmailsÚtitler^   rS   ra   r$   r$   r%   ÚsendUserMail  s    



rf  c                   s(   e Zd ZdZ‡ fdd„Zdd„ Z‡  ZS )ÚNotificationSendzdashboard/Email_form.htmlc                s4   t t| ƒj||Ž}tjjdd�}tdƒ ||d< |S )NT)re   ZworkingrÍ   )r   rg  r   r�   r.   r/   r=   )r   r    r!   r"   Z	UserEmail)r#   r$   r%   r   &  s
    z!NotificationSend.get_context_datac             C   sJ  |j jdƒ}|jdƒ}t|ƒ tt|ƒƒ |j jdƒdkr¶|j jdƒsTtdddœƒS |j jd	ƒsntdd
dœƒS tjjƒ }tdƒ dd„ |D ƒ}td|ƒ t	||j jdƒ|j jd	ƒƒ nv|j jdƒsÐtdddœƒS |j jdƒsêtdddœƒS |j jd	ƒ�stdd
dœƒS td|ƒ t	||j jdƒ|j jd	ƒƒ t|j jdƒƒ tdddœƒS )NZemailsrq   ZallUserÚTruere  i�  ztitle is required)r˜   Zstatus_messager^   zmessage is requiredz======================c             S   s   g | ]
}|j ‘qS r$   )rS   )rG   r´   r$   r$   r%   rI   ?  s    z)NotificationSend.post.<locals>.<listcomp>zalll user===zPlease select a user atleastzusers===Ú200zEmails send successfully)
r,   r-   r  r=   Útyper   r�   r.   r�   rf  )r   r0   Z	strEmailsrd  ZallCustomerr$   r$   r%   r3   3  s0    



zNotificationSend.post)r5   r6   r7   r8   r   r3   r9   r$   r$   )r#   r%   rg  "  s   rg  c             O   sf  i }t jjƒ }d}|�r^x*|D ]"}|j|jkr|jdkr|d }qW td|ƒ |dk �rVtjjdd�j	ƒ }td|ƒ |�r^t
jjƒ j	ƒ }t|ƒ}d	}	|d
kr d}	|dkr¬d}	|dkr¸d}	|dkrÄd}	|dkrÐd}	|dkrÜd
}	t
jj|	d� d}
dd l}tjjƒ }g }x|D ]}|j}|j|ƒ �q
W |j|ƒ}td|ƒ tjjdd�j	ƒ }td|ƒ |�r^t|jƒt|
ƒd k �r|d|d< nØt|jƒt|
ƒd  |_yxtjjdd�j	ƒ }td|ƒ |�r|j}td|ƒ t jj||||
|
d�}td|ƒ |jƒ  d|d< d|d< nd|d< W nF tk
�rR } z(tdt|ƒƒ t|ƒ|d< d |d!< W Y d d }~X nX nd"|d< t|ƒS )#Nr   Fr   zuncompleted jobsrØ   zsterlingpeyton@gmail.com)Úemail__exactÚuserr_idrA   zTask_upload/task1.pngzTask_upload/task2.pngzTask_upload/task3.pngzTask_upload/task4.pngzTask_upload/task5.pngzTask_upload/task6.png)Ú
last_imager  Úkeywordr´   ry   zUser is out of coinsr`   rz   Úpost_owner_id)rv   rÞ   rø   Úpost_view_accessr�   Úsave_objjjjjjjrh  r	  zSuccesfuly Postz
No user IdzError In Codei�  ÚStatuszPosts is greater than 20 or 20)rœ   r.   r�   r�   rž   r‰   r=   r�   r/   rN   ÚStaticImagesrT   ÚupdaterB   rý   r{   r¢   rC   r’   r“   r§   rR   rZ   r   )r0   r    r!   rH  r´   r‡   r¶   r
  rÞ   Ú	new_imageÚtarget_usersrB   r÷   Ú	randomnumÚkeysrn  rz   ro  Úsave_objra   r$   r$   r%   ÚAutoAddPostQ  sz    














rz  )VÚdjango.shortcutsr   Údjango.views.generic.baser   Údjango.contrib.auth.modelsr   Údjango.contrib.authr   r   r   Údjango.urlsr   r	   Údjango.httpr
   r   r   ÚmodelsÚurllib.requestÚurllibÚdjango.core.paginatorr   r   r   r™   Údjango.confr   rU   r   Úemail.messager   ræ   rB   rD   Zuserapp.modelsÚ	decoratorr   r   Údjango.utils.decoratorsr   ÚPILr   rD  rŸ   r—   Zdjango.db.models.functionsr   Ú	itertoolsr   Zdjango.viewsr   r   r:   rb   rÇ   rÖ   r×   rÛ   rï   rô   r  r  r  r  r  r#  r%  r-  r8  r;  r<  rI  rN  rO  rP  rQ  rR  rS  rT  rU  rX  Zdashboard.utilsra  rf  rg  rz  r$   r$   r$   r%   Ú<module>   s€   )   /8 ?21-8;'PJX/