
ûÉè]bO  ã               @   st  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 d d	 l Td  d
 l 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 m Z d d l m  Z  d  d l! m" Z" d  d
 l# Z# d  d l$ m% Z% Gd d „  d e ƒ Z& Gd d „  d e ƒ Z' Gd d „  d e ƒ Z( Gd d „  d e ƒ Z) Gd d „  d e ƒ Z* Gd d „  d e ƒ Z+ Gd d „  d e ƒ Z, Gd  d! „  d! e ƒ Z- Gd" d# „  d# e ƒ Z. Gd$ d% „  d% e ƒ Z/ Gd& d' „  d' e ƒ Z0 d( d) „  Z1 Gd* d+ „  d+ e ƒ Z2 d, d- „  Z3 d
 S).é    )Úrender)ÚTemplateView)ÚUser)ÚauthenticateÚloginÚlogout)Úreverse)Úredirect)ÚHttpResponseÚHttpResponseRedirecté   )Ú*N)Úsettings)ÚSMTPException)ÚEmailMessage)ÚImage)Úuser_redirect)Úmethod_decorator)Úmessagesc                   s@   e  Z d  Z d Z e e ƒ ‡  f d d †  ƒ Z d d „  Z ‡  S)ÚUserPostzuserapp/add-post-image.htmlc                s   t  t |  ƒ j | | | Ž S)N)Úsuperr   Údispatch)ÚselfÚrequestÚargsÚkwargs)Ú	__class__© úF/home/ip-d/Documents/live_download/Sterling/myproject/userapp/views.pyr      s    zUserPost.dispatchc             C   s´  t  d | j ƒ | j j d ƒ } | j j d ƒ } | j j d ƒ } | j j d ƒ } | r{| r{| r{| r{t  d | ƒ t j j d t | ƒ ƒ j ƒ  } | r | j	 } t | j
 ƒ t | ƒ d | _
 | j ƒ  t  d	 ƒ t  | j ƒ d
 | j k rt | j
 ƒ | j d
 <t  d ƒ n d  } yë t  d | ƒ t j j d | d | d t | ƒ d | d | ƒ } | j ƒ  t  d ƒ | j j }	 t j j t j d |	 ƒ }
 t j |
 ƒ } | j d ƒ d t |	 ƒ } t  | ƒ t j j t j d | ƒ } | j | ƒ t  d ƒ Wn2 t k
 rE} z t  d | ƒ WYd  d  } ~ Xn Xi  } t j j ƒ  } | rk| | d <t | d | ƒ Si  } t j j ƒ  } | r | | d <t | d | ƒ Sd  S)NzDATA:ÚimageÚuser_idztargrt-usersZselect_keyboard_idzuser_id:Ú
user_id_idé   zsession:Úcoinszcoins changed.Úenter_idÚuserinfo_id_idÚkeyboard_id_idÚpost_view_accessÚ
total_viewzsaved.ú/éd   Z100X100_zthumbnial saved.100z
error is :Úkeyboardzuserapp/add-post-image.html)r*   r*   )ÚprintÚPOSTÚFILESÚgetÚUserInfoÚobjectsÚfilterÚintÚfirstÚidr#   ÚsaveÚsessionÚstrÚUserAddedPostÚcreater   ÚnameÚosÚpathÚjoinr   Ú
MEDIA_ROOTr   ÚopenZ	thumbnailÚ	ExceptionÚKeyboardÚallr   )r   r   Zenter_imager    Ztarget_usersÚkeyboard_idÚobjr$   Zsave_objZ
image_nameÚfileZimr;   Z
thumb_fileÚeÚcontextr   r   r   Úpost   sZ    !	 

3




zUserPost.post)Ú__name__Ú
__module__Ú__qualname__Útemplate_namer   r   r   rI   r   r   )r   r   r      s   r   c                   s4   e  Z d  Z d Z ‡  f d d †  Z d d „  Z ‡  S)ÚSignupzuserapp/signup.htmlc                sB   t  t |  ƒ j | | Ž  } t | ƒ t j j ƒ  } | | d <| S)NÚcontact_info)r   rN   Úget_context_datar,   ÚSiteContactInfor1   rC   )r   r   r   rH   rE   )r   r   r   rP   i   s
    

zSignup.get_context_datac             C   sl  t  d ƒ | j j d ƒ } | j j d ƒ } | j j d ƒ } t j j d | ƒ } t  d ƒ | ry t  d ƒ t d ƒ Sy¦ t j j d | ƒ } | j | ƒ | j	 ƒ  | | _
 d	 | _ d	 | _ | j	 ƒ  t j j d
 | j d | j
 d | j d | j ƒ } | j	 ƒ  t  d ƒ t d ƒ SWnF t k
 rg} z& t  d ƒ t  d | ƒ t d ƒ SWYd  d  } ~ Xn Xd  S)Nzin postÚemailÚpasswordr;   ÚusernameZ24ÚexistÚ0Tr!   ÚunameZsavedÚ1z


zuser error is :Ú2)r,   r-   r/   r   r1   r2   r
   r:   Úset_passwordr6   Ú
first_nameÚ	is_activeÚis_staffr0   r5   rT   rR   rA   )r   r   rW   rS   r;   ÚuserZ	user_inforG   r   r   r   rI   p   s2    




			
3


zSignup.post)rJ   rK   rL   rM   rP   rI   r   r   )r   r   rN   g   s   rN   c                   s4   e  Z d  Z d Z ‡  f d d †  Z d d „  Z ‡  S)ÚLoginzuserapp/login.htmlc                s…   t  d ƒ t t |  ƒ j | | Ž  } x6 |  j j j ƒ  D]" \ } } t  d j | | ƒ ƒ q8 Wt  | ƒ t j	 j
 ƒ  } | | d <| S)Nzin loginz{} => {}rO   )r,   r   r_   rP   r   r7   ÚitemsÚformatrQ   r1   rC   )r   r   r   rH   ÚkeyÚvaluerE   )r   r   r   rP   —   s    


zLogin.get_context_datac       	      C   s  | j  j d ƒ } | j  j d ƒ } t d ƒ t | ƒ t | ƒ t d | d | ƒ } | rõ| j d k r€ t d ƒ t d ƒ S| j } t j j	 d t
 | ƒ ƒ j ƒ  } | rÞ| j d k rÇt d ƒ t d	 t | j ƒ ƒ x6 |  j j j ƒ  D]" \ } } t d
 j | | ƒ ƒ qò Wt | | ƒ t d ƒ t | j ƒ |  j j d <x6 |  j j j ƒ  D]" \ } } t d
 j | | ƒ ƒ q[Wd | j k r¤t |  j j d ƒ t t | j ƒ ƒ St t d ƒ ƒ St d ƒ t d ƒ Sqt d ƒ t d ƒ Sn$ t d ƒ t d ƒ St t d ƒ ƒ Sd  S)NrT   rS   z++++++++++++++++Tzit is admin.rY   r!   zactive existsz
pre-coins:z{} => {}z
after ::::r#   zuserapp:homeznot active existsÚ3zuserinfo not exists.rV   z
not existszuserapp:login)r-   r/   r,   r   Úis_superuserr
   r5   r0   r1   r2   r3   r4   r\   r8   r#   r   r7   r`   ra   r   r	   r   )	r   r   rT   rS   r^   r    Zuser_info_objrb   rc   r   r   r   rI   ¡   sD    




	!





z
Login.post)rJ   rK   rL   rM   rP   rI   r   r   )r   r   r_   •   s   
r_   c                   s4   e  Z d  Z d Z ‡  f d d †  Z d d „  Z ‡  S)ÚForgotPasswordzuserapp/forgot.htmlc                sB   t  t |  ƒ j | | Ž  } t | ƒ t j j ƒ  } | | d <| S)NrO   )r   rf   rP   r,   rQ   r1   rC   )r   r   r   rH   rE   )r   r   r   rP   Í   s
    

zForgotPassword.get_context_datac             C   s¹  t  d ƒ | j j d ƒ } t j j d | ƒ j ƒ  } | r¡d j d d „  t d ƒ Dƒ ƒ } t  d | ƒ | j	 | ƒ | j
 ƒ  t  d ƒ d	 } | } t  d
 | ƒ d t | j ƒ d t | ƒ } t  d | ƒ y‹ t j d d ƒ } | j ƒ  | j d	 d ƒ t ƒ  }	 |	 j | ƒ d |	 d <d	 |	 d <t | ƒ |	 d <| j |	 ƒ t  d ƒ t d ƒ SWqµt k
 r�}
 z t  d |
 ƒ t d ƒ SWYd  d  }
 ~
 XqµXn t  d ƒ t d ƒ Sd  S)Nzin postrT   Ú c             S   s)   g  |  ] } t  j t j t j ƒ ‘ q Sr   )ÚrandomÚchoiceÚstringÚascii_lettersÚdigits)Ú.0Únr   r   r   ú
<listcomp>Ù   s   	 z'ForgotPassword.post.<locals>.<listcomp>é   Únewpasszsaved.zitsmepython21@gmail.comrR   zHello z Your New Password is -Úmessagezsmtp.gmail.comiK  Z
esfera0143zNEW PASSWORDÚSubjectÚFromÚTozsuccessfully sent.rX   z
error is :rY   z	not existrV   )r,   r-   r/   r   r1   r2   r4   r>   ÚrangerZ   r6   r8   r[   ÚsmtplibÚSMTPÚstarttlsr   r   Úset_contentÚsend_messager
   rA   )r   r   rT   r^   rq   ÚsenderÚreceiverrr   ÚserverÚmsgrG   r   r   r   rI   Ô   s>    
"

!
	


 
zForgotPassword.post)rJ   rK   rL   rM   rP   rI   r   r   )r   r   rf   Ë   s   rf   c                   s(   e  Z d  Z d Z ‡  f d d †  Z ‡  S)ÚHomezuserapp/index.htmlc                sè  t  t |  ƒ j | | Ž  } t j j ƒ  j ƒ  } | rC | | d <n
 d | d <t j j d d ƒ j ƒ  } | r{ | | d <n
 d | d <t j j d d ƒ } d } | rÊ x! | D] } | t | j	 ƒ } q­ W| | d <t
 j j ƒ  }	 d }
 d } d } |	 r�x� |	 D]‡ } | j | j k r3| j d k r3|
 d }
 | j | j k r^| j d k r^| d } | j | j k r| j d k r| d } qW| | d	 <|
 | d
 <| | d <x6 |  j j j ƒ  D]" \ } } t d j | | ƒ ƒ q¾W| S)NZ	all_usersr   r\   TÚactive_usersZ
maza_coinsFr   Zuncompleted_jobsZcompleted_jobsÚ	offensivez{} => {})r   r€   rP   r0   r1   rC   Úcountr2   r3   r#   r9   r(   Úcurrent_viewr‚   r   r7   r`   r,   ra   )r   r   r   rH   Úobj1Úobj2rE   Zt_coinsÚiZobj3Zcompleted_countZuncompleted_countZoffensive_countrb   rc   )r   r   r   rP   ø   sB    


!
!
!


zHome.get_context_data)rJ   rK   rL   rM   rP   r   r   )r   r   r€   ö   s   r€   c                   sR   e  Z d  Z d Z ‡  f d d †  Z e e ƒ ‡  f d d †  ƒ Z d d „  Z ‡  S)ÚHomePagezuserapp/user-dashboard.htmlc                s  t  t |  ƒ j | | Ž  } t d |  j j d ƒ t |  j j d ƒ } g  } g  } g  } t j j	 ƒ  } | r“ x! | D] }	 | j
 |	 j j ƒ qv Wt j j d t | ƒ ƒ }
 |
 rÞ x' |
 D] }	 | j
 t |	 j j ƒ ƒ q» Wx| D]} | t | ƒ k r
t d ƒ qå t j j d t | ƒ ƒ } | rå xÆ | D]¾ }	 t |	 j ƒ | k rZt d ƒ q2t |	 j ƒ d k r2i  } |	 j j | d <|	 j j | d	 <|	 j j | d
 <|	 j | d <t j j d t |	 j j ƒ ƒ } | rã| | d <| j
 | ƒ q2Wqå W| | d <| S)Nzsession id:Ú_auth_user_idÚlogged_user_id__user_id_idÚskipÚuserinfo_id__user_id_idz)skipped already reacted post by the user.r   r   r    Ú	user_nameÚpost_idr&   Úall_keys_checkedÚall_post)r   rˆ   rP   r,   r   r7   r3   r0   r1   rC   Úappendr    r5   ÚOtherUsersReactionr2   rŽ   r9   r'   r   r;   Úuserinfo_idÚKeyboard_keysrD   )r   r   r   rH   Úcheck_idÚall_idsÚ	full_dataÚpost_idsrE   r‡   Úobj4ÚkÚdatar…   )r   r   r   rP   *  sD    !

zHomePage.get_context_datac                s   t  t |  ƒ j | | | Ž S)N)r   rˆ   r   )r   r   r   r   )r   r   r   r   �  s    zHomePage.dispatchc          	   O   sB  i  } t  d ƒ t  d ƒ t  d | j ƒ | j j d ƒ } | j j d ƒ } | j j d ƒ } d } d }	 g  }
 x4 | D], } | j d ƒ } |
 j t | d ƒ ƒ qy Wx | D]w } | j d ƒ } t  | d& ƒ t | d' ƒ d
 k rý |	 t | d ƒ }	 t | d( ƒ d
 k  r° | t | d ƒ } q° Wt  | ƒ t  | ƒ t  |	 ƒ g  } | r5xE |
 D]= } t j j	 d t | ƒ ƒ j
 ƒ  } | r\| j | j ƒ q\Wt d j t t | ƒ ƒ ƒ } t d j t t | ƒ ƒ ƒ } t t | ƒ d t |	 ƒ ƒ } t j j	 d t | ƒ ƒ j
 ƒ  } | j } t | j ƒ d	 | _ t  d ƒ | j ƒ  d | j k rrt | j ƒ | j d <t  d ƒ t j j	 d t | ƒ ƒ j
 ƒ  } | r÷t | j ƒ d	 | _ | j ƒ  t  d ƒ t | j ƒ d	 | _ | j ƒ  t  d ƒ t j j d | d | d | d | ƒ } | j ƒ  t  d ƒ n t j | t j d ƒ t  d |  j j d ƒ t |  j j d ƒ } g  } g  } g  } t j j ƒ  } | rÃx! | D] } | j | j j ƒ q¦Wt j j	 d t | ƒ ƒ } | rx' | D] } | j t | j j ƒ ƒ qëWx| D]} | t | ƒ k r:t  d ƒ qt j j	 d t | ƒ ƒ } | rxÆ | D]¾ } t | j ƒ | k rŠt  d ƒ qbt | j ƒ d k rbi  } | j  j! | d <| j" j | d  <| j" j! | d! <| j | d <t j j	 d" t | j# j ƒ ƒ } | r| | d# <| j | ƒ qbWqW| | d$ <t$ | d% | ƒ S))Nzin postz




z	DATA is :rŽ   Úlogged_user_idzcheckbox-for-selected-imgaer   ú#r   é   r5   ú,r!   zone coin earned.r#   zcoin incremented.zone view decreased by one.zviews increased.Ú
post_id_idÚreaction_key_idsÚlogged_user_id_idÚrankzreaction saved.zPlease select any key !!zsession id:r‰   rŠ   r‹   rŒ   z)skipped already reacted post by the user.r   r    r�   r&   r�   r�   zuserapp/user-dashboard.htmléÿÿÿÿr¤   r¤   )%r,   r-   r/   ÚgetlistÚsplitr‘   r3   r”   r1   r2   r4   r£   r8   r>   Úmapr0   r5   r#   r6   r7   r9   r'   r„   r’   r:   r   Úadd_messageÚINFOr   rC   r    rŽ   r   r;   r“   rD   r   )r   r   r   r   rH   rŽ   rœ   Z	final_idsZc1Zc2Únew_idsr‡   Úar£   rE   ÚidsZ
logged_objZlogged_user_info_idÚpost_objr•   r–   r—   r˜   r™   rš   r›   r…   r   r   r   rI   ‘  sª    




! !	


!



'
!

zHomePage.post)	rJ   rK   rL   rM   rP   r   r   r   rI   r   r   )r   r   rˆ   (  s   crˆ   c                   sF   e  Z d  Z d Z ‡  f d d †  Z e e ƒ ‡  f d d †  ƒ Z ‡  S)ÚAddPostzuserapp/add-post-image.htmlc                s>   t  t |  ƒ j | | Ž  } t j j ƒ  } | r: | | d <| S)Nr+   )r   r®   rP   rB   r1   rC   )r   r   r   rH   rE   )r   r   r   rP     s
    
zAddPost.get_context_datac                s   t  t |  ƒ j | | | Ž S)N)r   r®   r   )r   r   r   r   )r   r   r   r   $  s    zAddPost.dispatch)rJ   rK   rL   rM   rP   r   r   r   r   r   )r   r   r®     s   r®   c                   sF   e  Z d  Z d Z ‡  f d d †  Z e e ƒ ‡  f d d †  ƒ Z ‡  S)Ú	UsersPostzuserapp/added_post.htmlc       	         sœ   t  t |  ƒ j | | Ž  } t d |  j j d ƒ t |  j j d ƒ } g  } g  } g  } t j j	 d t | ƒ ƒ j
 d ƒ } | rŽ | | d <t d ƒ | S)Nzsession id:r‰   rŒ   z-idr�   z



)r   r¯   rP   r,   r   r7   r3   r9   r1   r2   Úorder_by)	r   r   r   rH   r•   r–   r—   r˜   rE   )r   r   r   rP   *  s    $

zUsersPost.get_context_datac                s   t  t |  ƒ j | | | Ž S)N)r   r¯   r   )r   r   r   r   )r   r   r   r   9  s    zUsersPost.dispatch)rJ   rK   rL   rM   rP   r   r   r   r   r   )r   r   r¯   (  s   r¯   c               @   s"   e  Z d  Z d Z d d „  Z d S)ÚEditUserzuserapp/edit-user.htmlc             C   s   t  d | j ƒ d  S)NzData:)r,   r-   )r   r   r   r   r   rI   G  s    zEditUser.postN)rJ   rK   rL   rM   rI   r   r   r   r   r±   =  s   	r±   c                   s(   e  Z d  Z d Z ‡  f d d †  Z ‡  S)ÚLogoutzuserapp/login.htmlc                sš   t  t |  ƒ j | | Ž  } t d |  j ƒ d |  j j k rT |  j j d =t d ƒ d |  j j k r} |  j j d =t d ƒ t j j ƒ  } | | d <| S)Nr   r‰   zdone.r#   zcoins done.rO   )	r   r²   rP   r,   r   r7   rQ   r1   rC   )r   r   r   rH   rE   )r   r   r   rP   L  s    


zLogout.get_context_data)rJ   rK   rL   rM   rP   r   r   )r   r   r²   J  s   r²   c                   s(   e  Z d  Z d Z ‡  f d d †  Z ‡  S)ÚFAQzuserapp/faq.htmlc                sQ   t  t |  ƒ j | | Ž  } t j j ƒ  } | | d <t j j ƒ  } | | d <| S)NZfaq_inforO   )r   r³   rP   ÚQuestionAnswersr1   rC   rQ   )r   r   r   rH   rE   )r   r   r   rP   \  s    

zFAQ.get_context_data)rJ   rK   rL   rM   rP   r   r   )r   r   r³   Z  s   r³   c             C   s  t  j j d t | ƒ ƒ j d ƒ } t d d ƒ } d | d <t j | ƒ } d } | j d d	 d
 d d g ƒ x¡ | D]™ } t | ƒ } t	 t
 j ƒ t	 | j j ƒ } t | j ƒ }	 | j }
 | j d k rÓ d } | j d k rè d } | j | | |	 |
 | g ƒ | d } qu W| S)NrŒ   z-idÚcontent_typeztext/csvz&attachment; filename="post_report.csv"zContent-Dispositionr   zS.Noz	Post Linkz
View LimitzCurrent ViewsZIs_offensiveTÚYesFÚNo)r9   r1   r2   r3   r°   r
   ÚcsvÚwriterZwriterowr8   r   Ú
API_SERVERr   r;   r(   r„   r‚   )r   r5   rE   Úresponser¹   Úcr‡   Zs_noZ	post_linkZ
view_limitZcurrent_viewsÚoffr   r   r   Úpost_info_csvh  s$    $
	r¾   c                   s(   e  Z d  Z d Z ‡  f d d †  Z ‡  S)Ú
ComleteJobzuserapp/added_post.htmlc       
         sS  t  t |  ƒ j | | Ž  } t | d ƒ } g  } g  } g  } t j j d t | d ƒ ƒ j ƒ  } | rþ d | _ | j	 ƒ  t | j
 ƒ | _ | j	 ƒ  t d ƒ | j | _
 | j	 ƒ  t d ƒ d | _ | j	 ƒ  t d ƒ t d | j
 ƒ t d	 | j ƒ t j j d
 t | ƒ ƒ j d ƒ }	 |	 r2|	 | d <t d ƒ | St |  j d | ƒ S)NÚuidr5   Tzoffensive donezjob complete.r   zview 0zval:zval2:rŒ   z-idr�   z



zuserapp/added_post.html)r   r¿   rP   r3   r9   r1   r2   r4   r‚   r6   r„   Úoffensive_atr,   r(   r'   r°   r   r   )
r   r   r   rH   r•   r–   r—   r˜   r…   rE   )r   r   r   rP   €  s4    %	




	

$

zComleteJob.get_context_data)rJ   rK   rL   rM   rP   r   r   )r   r   r¿   }  s   r¿   c             C   s|   |  j  d k rn t d | ƒ t j j d t | ƒ ƒ j ƒ  } | ra | j ƒ  t d ƒ t d ƒ St d ƒ Sn
 t d ƒ Sd  S)NÚGETZuser_post_idr5   zpost deleted by admin.rV   rX   )	Úmethodr,   r9   r1   r2   r3   r4   Údeleter
   )r   r5   r­   r   r   r   Ú
deletepost£  s    !


rÅ   )4Zdjango.shortcutsr   Údjango.views.generic.baser   Údjango.contrib.auth.modelsr   Údjango.contrib.authr   r   r   Údjango.urlsr   r	   Údjango.httpr
   r   ÚmodelsÚurllib.requestÚurllibÚjsonÚdjango.confr   rw   r   Úemail.messager   r<   rh   rj   ÚPILr   Ú	decoratorr   Údjango.utils.decoratorsr   r¸   Údjango.contribr   r   rN   r_   rf   r€   rˆ   r®   r¯   r±   r²   r³   r¾   r¿   rÅ   r   r   r   r   Ú<module>   sB   
$P.6+2ì&