o
    &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yi   d dlmZ Y nw 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|}|| q,|D ]}}	t|	}|d dkrRd	|d
< d|d< d|d< |d dkrj|d dkrjd	|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rd|d
< d|d< d	|d< |d dkr|d dkrd|d
< d|d< d|d< || q:||d< ||d< t 	|| td||d 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   uC:\Users\DELL\Desktop\soubhikg1894-stratfit-d75d91182fa3\soubhikg1894-stratfit-d75d91182fa3\services\utility\views.pymaxRepsPerSt   sR   

rG   GETPOSTc           
   
   C   s   t  }|| }|d }t| jd}|}d}z:|d krLtjj|d d d}|	 r5t
ddd	W S tjj|d d d}|  t
d
dd	W S t
ddd	W S  tyr }	 ztd t
dt|	iW  Y d }	~	S d }	~	ww )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}zN|d kr[t }t }tjdd}tjdd}	|D ]}
|
}||d |d d q/|	D ]}
|
}||d |d d qBt	||dW S t	d	d
dW S  t
y } ztd t	dt|iW  Y d }~S d }~ww )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   s2   

rq   c           
   
   C   s   t  }|| }|d }t| jd}|}d}z?|d krQtjj|d d d}|	 r5t
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  tyw }	 ztd t
dt|	iW  Y d }	~	S d }	~	ww )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   sP   zt dddW S  ty' } ztd t dt|iW  Y d }~S d }~ww )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 |}|rtd |}td|d dS g }tjdd}|D ]}t|}|| q%||d< t 	|| td|d 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   s4  t  }i }d}t|}|rS|}td z|| }t| |d kr,tt|d W S tdddW S  t	yR } zt
d tdt|iW  Y d }~S d }~ww || }t| |d krtjd	d
ddjddd
}g }|D ]}	t|	}
||
 qt||d< t|| tt|d S tdd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   sr  i }d}t |}|rt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}|	 rg }	|D ][}
t|
}|	
| |	|d
< tjj|d d	ddd}|	 rg }|D ]5}t|}|
| ||d< tjj|d d	ddd}|	 rg }|D ]}t|}|
| ||d< qqjqE|
| q)||d< t || td|d i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   sJ   




r   c                 C   s   i }d}t |}|rtd |}td|d iS g }tj jdd}|D ]}t|}|	| q&||d< t 
|| td|d i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 |}|rtd |}td|d iS g }tj }|D ]}t|}|| q"||d< t 	|| td|d i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 |}|rtd |}td|d iS td g }tj }|D ]}t|}|| q&||d< t 	|| td|d i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                 C   sJ   g d}g d}t ||D ]\}}tjj||d}|  qtdddS )N)Xr   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 )Xr   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 |}|rtd |}td|d dS td tj }i }|D ]}t|}|d |t|d < q'||d< t 	|| td|d 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  }|| }zF|dkrL|d }t| jd}tjj|d d |d d ||d}d|d d	 v r<|d d	 |_	n	d
|d d	  |_	|
  W d S W d S  tym } ztd tdt|iW  Y d }~S d }~ww )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}|r!||_|  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   s<   ddl m} ddlm} z||  W dS  |y   Y dS w )Nr   r   r   TF)django.core.validatorsr   django.core.exceptionsr   )emailr   r   rE   rE   rF   validateEmail  s   r   c              
   C   s  zht | jd}|d }|d }|d }|d }t|}t|d |radd }d	d
 }tj }	|		||}
|

 }W d    n1 sGw   Y  tj|||fd}|  tdddW S tdddW S  ty } ztd tdt|iW  Y d }~S d }~ww )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  s0   


r   c              
   C   s  t  }z|| }t| jd}|d }|d krd|v rs|d d krstjj|d d}|	 rktjj
|d d}d|v rI|d d krI|d |_d|v rX|d d krX|d |_d|v rg|d d krg|d |_|  tddd	W S g }i }tjj|d d
d}|	 rt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 tddd	W S  ty }
 ztd tt|
ddW  Y d }
~
S d }
~
ww )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  sN   





r   c              
   C   s   t  }zO|| }t| jd}|d }|d krKd|v rC|d d krCtjj|d dj	dd}|r;t
dddW S t
d	d
dW S t
d	ddW S t
d	ddW S  tyr } ztd t
t|d	dW  Y d }~S d }~ww )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   zDt | jd}g }i }tjjdd}|D ]%}t|}|d |d< |d |d< |d |d< |d |d< || i }qt	d|d	W S  t
yd } ztd
 t	t|ddW  Y d }~S d }~ww )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









$
+




	
!

-

