U
    'dZ                     @   s  d dl 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m	Z	 d dl
mZ d dlmZ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mZ zd dlmZ W n  ek
r   d dlmZ Y nX d dl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*m+Z+ d dl,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7 d dl8Z8d dl Z d dl9m:Z: dd Z;e ddge!e'e(fedd Z<e ddge!e'e(fedd Z=e ddge!e'e(fedd Z>e ddge!e'e(fedd Z?d d! Z@ed"d# ZAe ddge!e'e(fed$d% ZBed&d' ZCed(d) ZDed*d+ ZEed,d- ZFd.d/ ZGd0d1 ZHe ddge!e'e(fed2d3 ZId4d5 ZJd6d7 ZKd8d9 ZLe ddge!e'e(fed:d; ZMe ddge!e'e(fed<d= ZNe ddged>d? ZOdS )@    N)
Permission)EmailMultiAlternatives)EmailMessage)model_to_dict)JsonResponseHttpResponse)render)IntegrityError
connection)render_to_string)never_cache)cachescache)logger)api_viewauthentication_classesvalidate_emailValidationError)SessionAuthenticationIsAuthenticatedStartFitSessionUtil)User)	IntensityRoles	UserRolesPartnerTypeCountryPlanPurposesPlanAbilitiesPriceMappingPartnersPriceConversionScience)Planc           
      C   s  i }d}t |}|r:td |}td|d |d dS tj }t| g }g }|D ]}t|}|| qX|D ]}	t|	}|d dkrd	|d
< d|d< d|d< |d dkr|d dkrd	|d
< d|d< d|d< |d dkr
|d dkr
d|d
< d	|d< d|d< |d dkr>|d dkr>d|d
< d|d< d	|d< |d dkrr|d dkrrd|d
< d|d< d|d< || qt||d< ||d< t 	|| td||d dS d S )NRepsin cacheTdataArrintensityData)ZsucessdataZ	powerData	intensity2      maxValue   medValue   minValue<      F      P   d   )
r   getprintr   r   objectsallr   appendset)
requestr&   lookuptable_keycachesessionr*   r(   r)   dtdataObjdt1 rE   '/var/www/html/services/utility/views.pymaxRepsPerSt   sR    


rG   GETPOSTc           
   
   C   s   t  }|| }|d }t| jd}|}d}zx|d krtjj|d d d}|	 rjt
ddd	W S tjj|d d d}|  t
d
dd	W S t
ddd	W S W n@ tk
r }	 z"td t
dt|	i W Y S d }	~	X Y nX d S )Nidutf-8zutility/createroleroleInfrolerM   FRole Already existssuccessmessageTRole Saved SuccessfullyUser logged outsomething wrongmsg)r   get_user_insessionjsonloadsbodydecoder   r;   filterexistsr   createsave	Exceptionr   	exceptionstr
r?   stratsessionutilusernameuserZroleInforequrlZroleDetailsroleserE   rE   rF   createRolesP   s(    


rk   c              
   C   s  t  }|| }t| |d }d}d}z|d krt }t }tjdd}tjdd}	|D ] }
|
}||d |d d q^|	D ] }
|
}||d |d d qt	||dW S t	d	d
dW S W nB t
k
r
 } z"td t	dt|i W Y S d }~X Y nX d S )NrJ   rH   zutility/getuserrolesrM   re   )rJ   rM   )rJ   re   )ri   usersFrT   rP   rU   rV   )r   rW   r:   listr   r;   valuesr   r=   r   r`   r   ra   rb   )r?   rd   re   rf   rg   rh   ZroleArruserArrZroledatauserDatarB   r*   rj   rE   rE   rF   getRolesl   s.    

rq   c           
   
   C   s   t  }|| }|d }t| jd}|}d}z|d krtjj|d d d}|	 rjt
ddd	W S tjj|d d |d d
 d}|  t
ddd	W S t
ddd	W S W n@ tk
r }	 z"td t
dt|	i W Y S d }	~	X Y nX d S )NrJ   rK   zutility/createuserrolerL   rM   rN   FrO   rP   rf   )roles_iduser_idTrS   rT   rU   rV   )r   rW   rX   rY   rZ   r[   r   r;   r\   r]   r   r   r^   r_   r`   r   ra   rb   rc   rE   rE   rF   createUserRoles   s*    



rt   c              
   C   sV   zt dddW S  tk
rP } z"td t dt|i W Y S d }~X Y nX d S )NTa<  <h2><li>Who we are </li></h2>Stratfit is the world's first scientifically designed and developed fitness platform. <br>It allows elite strength coaches to design and construct training programmes and publish them to the world in the form of an easy to use app for Android and Iphone users. <br>All programmes in Stratfit are auto regulated real time according to users feedback. <br>Stratfit's mobile app is a virtual expert trainer.<br>We aim to be the most trusted and reliable platform for fitness interactions and help users transform their lives - fitness and beyond.)rQ   contentrU   rV   )r   r`   r   ra   rb   )r?   rj   rE   rE   rF   termsAndConditions   s
    
rv   c                 C   s6   d}t |d t| |||g}||d |  dS )zcount = SentEmailsCount.objects.all()
    for val in count:
        values = model_to_dict(val)
        if values['count'] < 9500:
            FROM_EMAIL = values['email_id']
            breakzteamdentalsuite360@gmail.comZ1234565434566543456765434z	text/htmlN)r:   r   attach_alternativesend)subjectrR   to_email
FROM_EMAILrV   rE   rE   rF   
officeMail   s    
r|   c                 C   s   i }d}t |}|r4td |}td|d dS g }tjdd}|D ]}t|}|| qJ||d< t 	|| td|d dS d S )Npartnerr'   Tr(   rQ   detailsrJ   partnerTypeName)
r   r9   r:   r   r   r;   rn   dictr=   r>   )r?   Zpartnertyper@   rA   r(   ZpartnerTyper}   Z
partnerObjrE   rE   rF   getPartnerType   s    
r   c              
   C   sB  t  }i }d}t|}|r|}td zB|| }t| |d krXtt|d W S tdddW S W n@ t	k
r } z"t
d tdt|i W Y S d }~X Y nX n|| }t| |d kr0tjd	d
ddjddd
}g }|D ]}	t|	}
||
 q||d< t|| tt|d S tdddS d S )Ngetcountrydatar'   r(   FrT   rP   rU   rV   rJ   namecountryCodedialCoder6   )countryStatus)r   r   r9   r:   rW   r   rX   dumpsr   r`   r   ra   rb   r   r;   rn   r\   order_byr   r=   r>   )r?   rd   Zcountrydatar@   rA   re   rj   r*   r(   rB   rC   rE   rE   rF   r      s:    


(

 r   c                 C   s|  i }d}t |}|r2td |}td|d iS g }tjdddjdd}|D  ]}t|}tjj|d d	ddd}|	 rHg }	|D ]}
t|
}|	
| |	|d
< tjj|d d	ddd}|	 rg }|D ]l}t|}|
| ||d< tjj|d d	ddd}|	 rg }|D ] }t|}|
| ||d< q"qq|
| qR||d< t || td|d iS d S )NZplanPurposeszin cachesessiongoalsrJ   GoalNameparentGoalName_idT)ZparentGoalName_id__isnull)r   ZsubGoalsZ	subGoals1Z	subGoals2)r   r9   r:   r   r   r;   rn   r\   r   r]   r=   r>   )r?   ZpurposesInfor@   rA   r   purosesppppObjZ	purposes1ZchildArrvalvalObjZ	purposes2Z	childArr1val2Zval2ObjZ	purposes3Z	childArr2Zval3Zval3ObjrE   rE   rF   getPlanPurposes   sH    





r   c                 C   s   i }d}t |}|r2td |}td|d iS g }tj jdd}|D ]}t|}|	| qL||d< t 
|| td|d iS d S )N	abilitieszhere in cache   rJ   )r   r9   r:   r   r    r;   rn   excluder   r=   r>   )r?   Zabilitiesdatar@   rA   r   r   r   r   rE   rE   rF   getPlanAbilities'  s    
r   c                 C   s   i }d}t |}|r2td |}td|d iS g }tj }|D ]}t|}|| qD||d< t 	|| td|d iS d S )NZ	plangoalsr'   r   )
r   r9   r:   r   r   r;   rn   r   r=   r>   )r?   Z
goalValuesr@   rA   r   r   r   r   rE   rE   rF   getPlanGoalValues:  s    

r   c                 C   s   i }d}t |}|r2td |}td|d iS td g }tj }|D ]}t|}|| qL||d< t 	|| td|d iS d S )NZplanIDSr'   plansr   here)
r   r9   r:   r   r%   r;   rn   r   r=   r>   )r?   r   r@   rA   r   r   r   r   rE   rE   rF   
getPlanIDSN  s     

r   c              X   C   s  ddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXgX}ddYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddddddddddddddddddddddddddddddddddddddddgX}t ||D ]"\}}tjj||d}|  qrtdddS )Nr   r7         i,  i  i  i&  iX  i  i   iR  i  i  iL  i  i  i  ix  i  i@  ir  i  i  il  i  i  i4  i  i  i  i`	  i	  i(
  iZ
  i
  i
  iT  i  i  i  i  i  i  iH  i  i  it  i  i<  i  i  i$  iP  i|  i  i8  id  i  iL  i  i4!  i"  i%  i&  i*  i|.  i0  id2  i4  iL6  i4:  i<  i>  iB  iE  iI  iM  iDa  il  it  iT  iܛ  id  it  i  i i8 gGz?gףp=
?gQ@gQ@g(\@g(\@g(\@g(\@g{G!@g{G#@g{G%@g{G'@g{G)@g{G+@g{G-@g{G/@g=
ףp0@g=
ףp1@g=
ףp2@g=
ףp3@g=
ףp4@g=
ףp5@g=
ףp6@g=
ףp7@g=
ףp8@g=
ףp9@g=
ףp:@g=
ףp;@g=
ףp<@g=
ףp=@g=
ףp>@g=
ףp?@gQ~@@gQ@@gQ~A@gQA@gQ~B@gQB@gQ~C@gQC@gQ~D@gQD@gQ~E@gQE@gQ~F@gQF@gQ~G@gQG@gQ~H@gQH@gQ~K@gQM@g(\?P@g(\Q@g(\R@g(\S@g(\?U@g(\V@g(\W@g(\X@g(\[@g(\]@g(\?_@gHz?`@gHza@gHzb@gHzc@gHz?e@gHze@gHzf@gHzg@gHzh@gHz?j@gHzk@gHzl@gHzm@gHz?o@gp=
׿r@gp=
u@gp=
x@gp=
|@gp=
?@gR뿂@gR߅@gR@gR@gR?@)inrusdTzrecords inserted successfullyrP   )zipr!   r;   r^   r_   r   )r?   ZinrArrZusdArrr   r   ZpricemapCreaterE   rE   rF   insertPriceArrb  s    r   c                 C   s   i }d}t |}|r4td |}td|d dS td tj }i }|D ] }t|}|d |t|d < qN||d< t 	|| td|d dS d S )	NgetpriceMapr'   TpriceMapr~   r   r   r   )
r   r9   r:   r   r!   r;   rn   r   intr>   )r?   pricer@   rA   ZgetpriceMapValuesr   r   r   rE   rE   rF   r   m  s     

r   c              
   C   s   t  }|| }z|dkr|d }t| jd}tjj|d d |d d ||d}d|d d	 krx|d d	 |_	nd
|d d	  |_	|
  W n@ tk
r } z"td tdt|i W Y S d }~X Y nX d S )N rJ   rK   ZcampInfopartnerNameimg)r   partnerImagecreatedBy_idmodifiedBy_idhttprh   zhttp://!something wrong getting countriesrV   )r   rW   rX   rY   rZ   r[   r"   r;   r^   partnerLinkr_   r`   r   ra   r   rb   )r?   rd   re   rf   r   ZcreatePartnerrj   rE   rE   rF   createPartners  s&    



r   c                 C   sN   d}t |}| }|d d }tjjdd}|rB||_|  tddiS )Nz#http://api.fixer.io/latest?base=USDZratesINRr6   r   rQ   T)requestsr9   rX   r#   r;   inrValuer_   r   )r?   ZapifixerZpostObj2ZpostDetail12Z	inrValue1ZpriceDetailsrE   rE   rF   getCurrentCurrency  s    
r   c                 C   sB   ddl m} ddlm} z||  W dS  |k
r<   Y dS X d S )Nr   r   r   TF)django.core.validatorsr   django.core.exceptionsr   )emailr   r   rE   rE   rF   validateEmail  s    r   c              
   C   s  zt | jd}|d }|d }|d }|d }t|}t|d |rdd }d	d
 }tj }	|		||}
|

 }W 5 Q R X tj|||fd}|  tdddW S tdddW S W nB tk
r } z"td tdt|i W Y S d }~X Y nX d S )NrK   r   fnameZuser_questionphoneZggggggggggggggggggggggggc                 S   s   | S )NrE   )rf   rE   rE   rF   mail  s    zuserQuestions.<locals>.mailc                 S   s0   | }d}d}t |||dgd|id}|  | S )NzQuery From Userzadmin@stratfit.inzinfo@stratfit.cozReply-To)headers)r   rx   )infocode	emailInfomailContentry   r{   r   rE   rE   rF   feedback  s    zuserQuestions.<locals>.feedback)targetargsTz+Thank you for contacting us we will be backrP   FzPlease enter valid emailr   rV   )rX   rY   rZ   r[   r   r:   
concurrentfuturesThreadPoolExecutorsubmitresult	threadingThreadstartr   r`   r   ra   rb   )r?   infor   ZnameInfor   Z	infophonerf   r   r   executorfuturerandt2rj   rE   rE   rF   userQuestions  s*    

r   c              
   C   s   t  }z|| }t| jd}|d }|d krd|kr|d d krtjj|d d}|	 rtjj
|d 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ddd	W S g }i }tjj|d d
d}|	 r tddd	W S tjj|d |d d
d}|  t|}	t|	d  |	d |d< |	d |d< |	d |d< |	d |d< || tdd|dW S ntddd	W S W nD tk
r }
 z$td tt|
dd W Y S d }
~
X Y nX d S )NrK   rJ   r   r   linkstatusTzBlog saved successfullyrP   r6   )r   r   z&user already exists please give the id)r   	blog_linkr   r   zBlog successfully saved)rQ   rR   Z	link_infoFuser logged outerrorrV   rQ   )r   rW   rX   rY   rZ   r[   r$   r;   r\   r]   r9   r   r   r   r_   r   r^   r   r:   r=   r`   r   r   rb   )r?   rd   re   r   rf   blogZBlogarrayZsciencer   rj   rE   rE   rF   Science_blog  sJ    







r   c              
   C   s   t  }z|| }t| jd}|d }|d krd|kr|d d krtjj|d dj	dd}|rvt
dddW S t
d	d
dW S qt
d	ddW S nt
d	ddW S W nB tk
r } z$td t
t|d	d W Y S d }~X Y nX d S )NrK   rJ   r   r   r   Tzlink deleted successfullyrP   Fzenter valid idzenter the idr   r   r   )r   rW   rX   rY   rZ   r[   r$   r;   r\   updater   r`   r   r   rb   )r?   rd   re   r   rf   r   rj   rE   rE   rF   remove_link  s     

r   c              
   C   s   zt | jd}g }i }tjjdd}|D ]J}t|}|d |d< |d |d< |d |d< |d |d< || i }q.t	d|d	W S  t
k
r } z$td
 t	t|dd W Y S d }~X Y nX d S )NrK   r6   r   rJ   r   r   r   TrP   r   Fr   )rX   rY   rZ   r[   r$   r;   r\   r   r=   r   r`   r   r   rb   )r?   r   r   rm   r   rB   r   rj   rE   rE   rF   	linkslist  s"    

r   )PrX   r   django.contrib.auth.modelsr   django.core.mailr   concurrent.futuresr   r   r   django.formsr   django.httpr   r   django.shortcutsr   	django.dbr	   r
   django.template.loaderr   django.views.decorators.cacher   django.core.cacher   r   pip._internal.req.req_installr   ImportErrorpip.req.req_installrest_framework.decoratorsr   r   r   r   r   r   Subscriber.Authenticationr   r   r   Subscriber.modelsr   utility.modelsr   r   r   r   r   r   r    r!   r"   r#   r$   csvPlan.modelsr%   rG   rk   rq   rt   rv   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rE   rE   rE   rF   <module>   s   41










$
+




	!

-


