U
    ``%                    @   s6  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mZ d d	lmZ zd d
lmZ W n  ek
r   d d
lmZ Y nX d dlZd dlmZmZ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$m%Z%m&Z&m'Z'm(Z(m)Z) d dl*m+Z+m,Z, d dl-m.Z.m/Z/m0Z0m1Z1m2Z2 d dl3m4Z4m5Z5m6Z6 d dl7m8Z8m9Z9m:Z: d dl;m<Z<m=Z=m>Z>m?Z?m@Z@ d dlAmBZBmCZC d dlDmEZE d dlFmGZGmHZHmIZI d dlFmJZJ e ddge!e/e2fedd ZKe ddge!e/e2fedd ZLe ddge!e/e2fedd  ZMed!d" ZNe ddge!e/e2fed#d$ ZOe ddge!e/e2fed%d& ZPe ddge!e/e2fed'd( ZQe ddge!e/e2fed)d* ZRe ddge!e/e2fed+d, ZSe ddge!e/e2fed-d. ZTe ddge!e/e2fed/d0 ZUe ddge!e/e2fed1d2 ZVe ddge!e/e2fed3d4 ZWe ddge!e/e2fed5d6 ZXe ddge!e/e2fed7d8 ZYe ddge!e/e2fed9d: ZZe ddge!e/e2fed;d< Z[e ddge!e/e2fed=d> Z\e ddge!e/e2fed?d@ Z]dAdB Z^e ddge!e/e2fedCdD Z_e ddge!e/e2fedEdF Z`e ddge!e/e2fedGdH Zae ddge!e/e2fedIdJ Zbe ddge!e/e2fedKdL Zce ddge!e/e2fedMdN ZddS )O    N)relativedelta)render)EmailMultiAlternatives)
connection)JsonResponseHttpResponse)Context)render_to_stringget_template)never_cache)logger)datetime	timedeltatimetimezone)Max)api_viewauthentication_classes)date)PlanSessionPlanExcercisePlanSetsSelectedAbilities	PlanGoals
PlanRating)
celeblikescelebreviewList)StartFitAuthenticationSessionAuthenticationStartFitSessionUtilAuthResponseIsAuthenticated)User
UserfollowFitnessProfile)UserPlanUserSetsUserExercise)CelebrityCommentsCelebrityLikesCelebrityUploadsCelebrityPlansLikesCelebrityDetails)exceptionMaildictfetchall)settings)PriceMappingPriceConversionVideos)ExerciseGETPOSTc              
   C   s  t  }|| }|d }d}t }zHdt| d }|| t|}g }|r`|D ]}	t|	}
|
d d |
d  |
d< |
d	 d kr|
d
 dkrd|
d	< q|
d
 dkrd|
d	< qd|
d	< n|
d	 d k	rtj	|
d	  |
d	< |
d d k	rtj	|
d  |
d< |
d d ks|
d dkr d|
d< d|
d< t
jddddjd|
d d}| r|D ]}t|}|d |
d krVttj}tjj|d |
d dj|j|j|jd  }|r|d |
d kr||d  }| }|dks|dkrd|
d< nd|
d< nd|
d< nd|
d< qV|d dkr8|
d |ksT|
d dkrX|d |
d krX||
 qXtd |d!W S  tk
r } z"td" td#t|i W Y S d }~X Y nX d S )$Nidzcelebrity/getCelebrityList/a*  SELECT su.id, su.first_name, su.last_name, su.userPrivacy, su.username, su.avatar, su.userCover,fp.gender,cc.about,cc.designation,cc.favworkout, COUNT(sf.followingUser_id) AS followingCount, uc.country as userCountry , (SELECT sff.status FROM `Subscriber_userfollow` sff WHERE `followingUser_id` = a    AND `followerUser_id` = su.id) AS followStatus FROM `Subscriber_user` su LEFT JOIN `Celebrity_celebritydetails` cc ON su.id = cc.userid_id LEFT JOIN `Subscriber_fitnessprofile` fp ON fp.user_id = su.id LEFT JOIN `Subscriber_userfollow` sf ON su.id = sf.`followerUser_id` LEFT JOIN `Subscriber_useraddress` uc ON uc.user_id = su.id WHERE su.userType = 8 AND su.userPrivacy = 0 GROUP BY sf.`followerUser_id` 
first_name 	last_nameZcelebrityFullNameavatargender   z+http://stratfit.net/assets/images/user1.png   z+http://stratfit.net/assets/images/user2.png	userCoverfollowStatus r   
liveStatususer_idplan_idstatus)rD   rB   rC   rB   )ZcreatedDate__yearZcreatedDate__monthZcreatedDate__daycreatedDatei  userType   userPrivacyuserCountryTsuccesscelebritiessomething wrongmsg)r   get_user_insessionr   cursorstrexecuter.   dictr/   S3URLr%   objectsvaluesfilterexistsr   nowr   utcr&   yearmonthdaylasttotal_secondsappendr   	Exceptionr   	exception)requeststratsessionutilusernameuserurlxrM   resultQueryarr	celebrityvalZuserActivePlandt4Z	activeObjtodayZuserliveZ	diff_timeZtotalSecondse rq   )/var/www/html/services/Celebrity/views.pygetCelebrityList"   sb    





 
2


8
rs   c              
   C   s.  t  }|| }|d }t| jd}|}d}z|d krtjj|d dd	dd}|D ]}|d }	|d }
q`|d }t
| |d }t
| tjj|	d	dd
dd	ddddd}g }|D ]R}t|}|d |d< |d |d< |d |d< |d |d< |d |d< || qtj	ddt|t| }t|}g }|D ]b}t|}tjdd
ddj|d d	ddddd}|D ]"}t|}t
|d || qqLt|||
dW S tdddW S W nT tk
r( } z4td t|||t| tdt|i W Y S d }~X Y nX d S ) Nr6   utf-8zcelebrity/completedSetDetails/r<   rB   rD   rC   endstartrC   UserExercise__idr3   r   	setNumber&userexercise__exerciseId__exerciseName	totalReps userexercise__exerciseWorkWeightplanset__num_of_reps	numOfRepssetNamerepsDoneexerciseName
workWeight-id)planset__excercise__session__idz--------)planoffset
userplanIdFUser logged outrL   messagerN   rO   )r   rP   jsonloadsbodydecoder%   rV   rX   rW   printr&   select_relatedrT   ra   r   order_byintreversedr   rb   r   rc   r-   rR   )rd   re   rf   rg   datareqrh   userplanDetailsrm   rC   userplan_idoffset1offset2infolistdtplandetailslast_twolast_two_in_ascending_orderrk   dt1detailsuserSetDetailsrW   rp   rq   rq   rr   completeSetDetails]   sT    


(",

r   c           	   
   C   s   t  }|| }|d }t| jd}|}d}zN|d krntjj|d |d |d}|	  t
ddd	W S t
d
dd	W S W nR tk
r } z4td t|||t| t
dt|i W Y S d }~X Y nX d S )Nr6   rt   celebrity/saveComment/rC   comment)	planId_idr   createdBy_idTcomment saved successfullyr   FUser Logged OutrN   rO   )r   rP   r   r   r   r   r(   rV   createsaver   rb   r   rc   r-   rR   )	rd   re   rf   rg   r   r   rh   userCommentrp   rq   rq   rr   saveComment   s(    

r   c              
   C   s   z|t | jd}tjdj|d dddddd	d
}g }|D ](}t	|}|d	 
d|d	< || qDtd|dW S  tk
r } z"td tdt|i W Y S d }~X Y nX d S )Nrt   r"   
userPlanId)r   createdBy_id__first_namer   r   r6   rF   r   %Y-%m-%dT)rL   r   rN   rO   )r   r   r   r   r(   rV   r   rX   rW   rT   strftimera   r   rb   r   rc   rR   )rd   r   r   
commentObjr   dtarp   rq   rq   rr   getComments   s    (
r   c              
   C   s
  t  }|| }|d }t| jd}|}d}z|d krtjj|d dd	d}|D ]}t
|}	qZtjj|d |d |	d |d}
|
  td	d
dW S tdddW S W nR tk
r } z2td t||t| tdt|i W Y S d }~X Y nX d S )Nr6   rt   r   celebrityIDr<   ru   r   )celebrityId_idr   r   r   Tr   r   Fr   rN   rO   )r   rP   r   r   r   r   r%   rV   rX   rW   rT   r(   r   r   r   rb   r   rc   r-   rR   )rd   re   rf   rg   r   r   rh   planDetailsr   rW   r   rp   rq   rq   rr   saveCelebrityLiveComment   s0    


r   c           
   
   C   s   t | jd}|}d}zrtjj|d dddddd	d
dd}g }|D ](}t|}|d 	d|d< |
| qJ| }td||dW S  tk
r }	 z4td td||t|	 tdt|	i W Y S d }	~	X Y nX d S )Nrt   zcelebrity/getCommentsr   r<   )celebrityIdplanId__statusr6   planId__plan__planNamer   r   r   rF   createdBy_id__avatarr   T)rL   r   commentCountrN   r@   rO   )r   r   r   r   r(   rV   rX   rW   rT   r   ra   countr   rb   r   rc   r-   rR   )
rd   r   r   rh   celebrityDetailsr   r   r   r   rp   rq   rq   rr   getCelebrityLiveComments   s0         
r   c              
   C   s  t  }|| }|d }td| t| jd}|}d}z|d krJ|d dkr~tjj	|d d
ddd	d
j|d}ntjj	|d d
ddd	d
}g }|D ]}	t|	}
td|
 |
d d |
d	  |
d< |
d |
d< d|
d< d|
d< tjdj	|
d d }|dkrd|
d< nd|
d< ||
d< ||
 qtd|dW S tdddW S W nT tk
r } z4td t|||t| tdt|i W Y S d }~X Y nX d S )Nr6   rf   rt   zcelebrity/celebrityDetails/rG   rH   rG   r7   r9   r:   r6   r   r8   ZcelbrityNamer   r   Z	followingrA   User__id)followingUserr<   ZfollowingCountT)rL   Zcelebrity_listFr   r   rN   rO   )r   rP   r   r   r   r   r   r"   rV   rX   rW   excluderT   r#   r   r   ra   r   rb   r   rc   r-   rR   )rd   re   rf   rg   r   r   rh   ZusertypeDetailsr   rm   r   ZusertypeDetails1rp   rq   rq   rr   r      s@    


(



r   c              
   C   s   t  }zl|| }t| tjjdddddd}g }|D ]&}t| t|}t| || q<t	d|dW S  t
k
r } z"td	 t	d
t|i W Y S d }~X Y nX d S )NrH   r   r6   r7   r9   rf   TrK   rN   rO   )r   rP   r   r"   rV   rX   rW   rT   ra   r   rb   r   rc   rR   )rd   re   rf   rM   rk   rl   rm   rp   rq   rq   rr   rl     s    

rl   c           	   
   C   s   t  }|| }|d }t| jd}|}d}zN|d krnt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 )Nr6   rt   celebrity/likeHit/Zceleb_idset_id)r   r   r   TLike saved successfullyr   Fr   rN   rO   )r   rP   r   r   r   r   r)   rV   r   r   r   rb   r   rc   rR   )	rd   re   rf   rg   setDatar   rh   r   rp   rq   rq   rr   likeHit(  s&    

r   c              
   C   s  t  }|| }td| |d }|d }t| jd}z@|d krltjj	|d d
d }|}tjj	|d dd	d
ddddddd}td| g }	t|dkr$|D ]n}
t|
}|d |d< |d |d< |d |d< |d |d< |d
 |d< |d |d< |d }|d }|	| qn2tjj	|d d }|D ]}
t|
}|d }q>td||||	dW S tdddW S W n. tk
r } ztd  W 5 d }~X Y nX d S )!Nz	user namer6   r7   rt   r   )followingUser_idr   r<   )Zuser__idrD   Zplan__planNameplan__idZplan__priceZplan__planGoal__goalNameZplan__programTypeZplan__createdBy__first_nameuser__first_nameuser__avatarr   r   ZPlanIDZ	PlanPriceZPlanGoalZ	PlanLevelZPlanNameZPlanCreatedByr   T)rL   followCountZCelebrityNameZCelebrityImagePlanInfoFr   r   rN   )r   rP   r   r   r   r   r   r#   rV   rX   r   r   r%   rW   lenrT   ra   r"   r   rb   r   rc   )rd   re   rf   rg   namer   r   r   r   r   r   r   ZcelebrityNameZcelebrityImageuserInfoZuserDetrp   rq   rq   rr   celebrityPlanInfoA  sB    


(
r   c              
   C   s  t  }zP|| }|d }t| jd}|d krFd|kr||d dkr|tjj|d d}d|_	|
  tddd	W S tjj|d
 |d |d d }| r4|D ]v}t|}tjj|d |d |d}	d|kr|d dkr|d |	_d}
d|kr|d dkr|d |	_d}
|	
  qtd|
d	W S tddd	W S n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 )Nr6   rt   ZmediaIdr@   pkr   TzDeleted Successfulyr   r   exIdsetIdr   planexercise_id
planset_iduserexercise_id)r   
userSet_idrB   imagezImage uploaded successfullyvideozVideo uploaded successfullyFzNo set details foundr   rN   rO   )r   rP   r   r   r   r   r*   rV   getrD   r   r   r&   rX   rW   rY   rT   r   imageUrlvideoUrlrb   r   rc   rR   )rd   re   rf   rg   uploadZupdateUploadr   rm   valObj
celbuploadr   rp   rq   rq   rr   uploadImagej  sB    

"




r   c                 C   s  t  }|| }|d }t| jd}zn|d krtd tjj	|d dd
 }|D ]}t|}t| |d }q\tjddd	d
ddddj	|d
ddddddddddd}	tt}
i }d}d}d}|	D ]}t|}tjj	|d |d d
 }| r2|D ]&}t|}|d |d< |d |d < q
|d }|d }|d d!|d< |
t|d  | qt|
 td"|
||d#W S td$d%d&W S W n. tk
r } ztd' W 5 d }~X Y nX d S )(Nr6   rt   zI am here celebrity workfeedrB   r<   ru   r   PlanSets__idPlanExcercise__idPlanSession__idMicrocycle__idPlanMesocyclePlanPeriodsPlan__idr   user_id__first_name
session_idrz   r|   setWorkWeightsetExerciseuserexerciseexercise_idJplanset__excercise__session__microcycle__mesocycle__period__plan__planNamerF   exerciser@   r   exerciseName_idnum_of_reps	prescRepsnum_of_sets	prescSetsz%Y/%m/%dT)rL   r   rf   planNameFr   r   rN   )r   rP   r   r   r   r   r   r%   rV   rX   rW   rT   r&   r   collectionsdefaultdictr   r   rY   r   rR   ra   r   rb   r   rc   )rd   re   rf   rg   dataRequserPlanObjr   uPlan
userPlanIDallSetDataObjtotalSessionDet
sessionArrr   Z
sesionDatesetObjplexDetpexpexObjrp   rq   rq   rr   getWorkFeed  sF    


<

r  c              
   C   s   t  }z||| }|d }t| jd}|d krpd|krtjj|d |d |d}|	  t
dddW S n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 )Nr6   rt   r   ex_id)r   r   rB   Tzvideo uploaded successfullyr   Fr   rN   rO   )r   rP   r   r   r   r   r*   rV   r   r   r   rb   r   rc   rR   )rd   re   rf   rg   r   r   rp   rq   rq   rr   uploadVideo  s$    

r  c           	   
   C   s   t  }|| }z|d kr|d dkrtjdddjdddd	d
dd}g }|D ]}t|}|| qT|	 }t
d||dW S t
dddW S n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 )NrG   rH   r"   r%   Planr<   )r   r6   r   r   r   r   T)rL   commentListr   FzYou are not a celebrityr   r   rN   rO   )r   rP   r(   rV   r   rX   rW   rT   ra   r   r   rb   r   rc   rR   )	rd   re   rf   r   r   r   r   r   rp   rq   rq   rr   r    s"    
&
r  c              
   C   sr  t  }|| }|d }t| jd}|}d}z|d krtjj|d d}|j	dkrt
jj|d djrt
jj|d dd}|D ]}	t|	}
qtjj||
d d rtd	d
dW S tjj|d |
d |d}|  tdddW S td	ddW S ntd	ddW S ntd	ddW S W nB tk
rl } z"td tdt|i W Y S d }~X Y nX d S )Nr6   rt   r   r   r   rH   rB   )r   r   Fz you have already liked this postr   )r   r   r   Tr   z'The user does not started any exercise.zIt is not a celebrity IDr   rN   rO   )r   rP   r   r   r   r   r"   rV   r   rG   r&   rX   rY   rW   rT   r)   r   r   r   rb   r   rc   rR   )rd   re   rf   rg   r   r   rh   usertype
setDetailsr   rW   r   rp   rq   rq   rr   postLike  s:    



r  c              
   C   s  t  }|| }d}d}t| jd}z|d krg }tjj|d d	dd
dd	d
}t| |D ]}t|}	||	 qh| }
td||
dW S tdddW S W nR tk
 r } z2td t||t| tdt|i W Y S d }~X Y nX d S )Nr4   zcelebrity/likeListrt   r   )r   r"   r&   r6   r   r   T)rL   r   Z	LikeCountFr   r   rN   rO   )r   rP   r   r   r   r   r)   rV   rX   r   rW   r   rT   ra   r   r   rb   r   rc   r-   rR   )rd   re   rf   r   rh   r   r   ZlikeDetailsr   rW   r   rp   rq   rq   rr   likeList  s(    
$
r  c              
   C   s  t  }|| }|d }t| jd}|}d}z|d kr0tjj|d |d	d}|
 r|D ]}t|}	|	d }
tjj|
|d	d}|
 r|D ]}t|}|d }qtjj|d}|d |_|  td	d
d  W S tjj|
|d |d}|  td	dd  W S qhntdddW S ntdddW S W nT tk
r } z4td td||t| tdt|i W Y S d }~X Y nX d S )Nr6   rt   zcelebrity/sendTextr  )r   rB   )r   rB   r   textTzText updated successfullyr   )r   r  rB   zText saved successfullyFzExerciseId does not existsr   rN   r@   rO   )r   rP   r   r   r   r   r'   rV   rX   rW   rY   rT   r*   r   r  r   r   r   rb   r   rc   r-   rR   )rd   re   rf   rB   r   r   rh   planIdr   rm   valueZcelbDetailsrW   idsr   r  rp   rq   rq   rr   sendText.  sF    





r  c           (      C   sr  t  }|| }|d }t| jd}z|d kr,d}tjj|d	 
 }tjddddd	d
dddd
j|d |d tt|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&}g }d'}	g }
d(d)d*gd+d,d-gd.g}g }d'}d'}d'}d'}d}d}d/}|D ]}t|}g |d0< g |d1< g |d2< |d" }|d }|d  |d3< |d'ksh||d krt|d }g }tjj|d d4}|j|d5< |j}|d }|d }d/}|d }|d }tjj|d d6d7	 }t|d d8 | r|D ]}t|}|d2 | qtjd9j|d d6d:	 }| r|D ]~}t|} | d; d'kr|| d; d kr||d0 | d | d; d< | d= d'kr8| d= d kr8|d1 | d | d= d< q8tjj|d |d d>	 }!|! rL|!D ]h}"t|"}#|#d? |d@< |#dA |dB< |#dC |dC< |#dD |dD< |#dE |dE< |#dF |dF< |#dG d6krdH}qtddI}$|dkr|d@ |d kr|d dJ |$ dKt|d dL|dM dNt|d }%nL|d dO |$ dKt|d dL|dM dNt|d dPt|d@ }%n`dQ|d%  dR }%|d d'kr`|d d kr`|d dkr`|%dSt|d  dT t|d@  7 }%|d d'kr|d d kr|d dkr|%dUt|d  dT t|dC  dV t|dM  7 }%|d# d'kr|d# d kr|d# dkr|%dWt|d#  dT t|dD  dX 7 }%|d$ d'krb|d$ d krb|d$ dkrb|%dWt|d$  dT t|dE  dY 7 }%|%|dZ< |d5 }	|| |d }&|d'ks||d kr|d }|d'kr|d |krdH}||	|d |d& |||||dZ ||dF |d d[ tjj|&d\	  }qt dH|||||||d]W S t d/d^d_W S W n. t!k
rl }' zt"#d` W 5 d }'~'X Y nX d S )aNr6   rt   r   r  r   r   r   r   r   r   r   r   r3   r2   rB   user_plan_idrF   r   )rB   r   ZsetDate__containsr   r   rz   r|   r   r   r   r   r   r   exercise_id__exerciseDesc exercise_id__video_id__videoLinkr   r   sessionStatusadvTimeadvDistanceexercise_id__exerciseNameZexercise_id__workFormular@   z#Lifted %w%%wm% for all reps %r%X%r%z4Check this out - Lifted %w%%wm% for all reps %r%X%r%z1Folks - Done lifting %w%%wm% for all reps %r%X%r%z@Finished lifting %w%%wm% %r% out of %tr% reps. Missed Reps todayz=That was tough. Finished lifting %w%%wm% %r% out of %tr% repsz=Bro. Rough Day. Finished lifting %w%%wm% %r% out of %tr% reps)setdone
setnotdoneFimagesvideoscommentsr  r   r   r<   )
userset_idrD   Z
1232323223UserSets__id)r   rD   r   )r6   rh   r   r   r   r   r   r   exWeightexTime
exDistance	intensitywarmupTr=   r"  z%w%z%wm%
weightUnitz%r%r#  z%tr%z
Completed z with:z <br> Reps: /z <br> Work weight: r8   z <br> Time: z minutesz meters
workoutMsg)r   r   	exFormulaexDescexVideor-  setsr0  advExerciser,  r   r   )rL   r   rf   r   ZplanExCountr  r   rl   r   r   rN   )$r   rP   r   r   r   r   r$   rV   rX   rW   r_   r&   r   r   r   strptimerT   r3   r   r   accessLevelr(   r   rY   ra   r*   r   randomrandintreplacerR   r   r   rb   r   rc   )(rd   re   rf   rg   r  ZplanexCountr.  r  r  Z
tempExNamemainArrZmsgArrZsetnotDoneArrr   ZtempExIdZ	tempExid1r  r   rl   r   r  r  exNameZadvExr2  r3  ZexWarmUpZcelebCOmmentscmZcmObjcelebUploadsimgimgObjr	  r
  r  ZmsgIndexZtempMsg	sessionIdrp   rq   rq   rr   getWorkFeed1Y  s    

t



 

>P*$*4*(*(

6rC  c           5      C   s^
  t  }|| }|d }t| jd}	ztjj|d}tjj|d d}t	jjdd}|j
}t||d |d |||}	|jdk
r(tj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j|d d dd!}
tt|
d" g }g }g }g }d#}|
D 	]}t|}|d |d$< t|d }t|d }||d%< ||d&< d#|d'< d#|d(< d)|d*< tjj|d dd+ }tjj|d d,jd-d.jd)d/ }||d0< ||d1< tjj|d |dd2 }| rd|d'< tjj|d |d3 }| rB|D ]>}t|}|d* d)kr|d* d kr|d* |d*< d|d(< q|d d4 |d  |d5< d|krp|d d6krp|jd7kr|d8 d9kr|d |d:< |d: |d;< n|d |d:< |d: |d;< t|d d#krld<|d:< |d: |d;< n|d8 d9krtj j|d d=}ntj j|d d=}|D ]}t|}|d> }q&||d:< t|d d#krd<|d:< |d: |d;< nt|d d#krd<|d:< |d: |d;< n|jd7kr|d8 d9krt|d t| |d:< |d: |d;< n$t|d t| |d:< |d: |d;< n@|d8 d9kr&|d |d:< |d: |d;< n|d |d:< |d: |d;< t|d d#krdd<|d:< |d: |d;< |d: d#krd<|d:< |d: |d;< t jd?j|d d,d@}d)}|D ]} t| }!|dA|!d@  7 }q|d)kr|dd  }"nd)}"t!jdBj|d d,dC}#d)}$|#D ]} t| }!|$dA|!dC  7 }$q|$d)krF|$dd  }%nd)}%|d |d kr|tjj|d d}&|&j"}'|'|dD< |d dE t#|% dF |dG< |d dHks|d dIkrtjj|d d}(t#|d dJ t#t#|(j"d4 t#|(j$  dK |dG< n|d |d kr8tjj|d d}&|&j"d4 |&j$ }'|'|dD< tjj|d d}'t#|d dJ t#t#|'j"d4 t#|'j$  dK |dG< tjj|d d, })t%jj|d dL }*d#}+d},|*D ]"}-t|-}.|+|.dM  }+|,d },q|+|, }/|"|dN< |%|dO< |d |dP< dQ|dR< |)|dS< |t|) }|/|dT< |d |dU< |d |dV< |d |dW< |d |dX< |d |dY< |d |dZ< |d |d[< |d |d\< |d |d]< |d |d< |dP d^krd_|d`< n.|dP dakrdb|d`< n|dP dckrdd|d`< |d d k	rt&j'|d  |de< n|d |de< |d d k	r0t&j'|d  |df< n|d |df< |d |dU< d#|dg< d#|dh< d#|di< |d djkrvd|dg< |d dkrd|dh< |d dkkrd|di< t(jj|d dldmdndo}0|0 
rd#|dp< d#|dq< d#}1|	g k
r|	D ]}2t|2dr |1d }1|d dkr|d |2d kr|2dp dk	r^|2dq dk	r^d|dp< d|dq< |1d }3|	|3= n|2dp d#k	r|2dq dk	rd|dq< |1d }3|	|3= nn|2dp dk	r|2dq d#k	rd|dp< |1d }3|	|3= n:|2dp d#kr|2dq d#krd#|dp< d#|dq< |1d }3|	|3= q|)| qt*d-||	|jdsW S W n. t+k

rX }4 zt,-dt W 5 d }4~4X Y nX d S )uNr6   rt   r   celebIdr<   
deviceTyperH   r   r   ProgramType__idrB   r   user_id__last_nameuser_id__emailrC   plan_id__planNamerD   plan_id__planPhotoplan_id__planLogoplan_id__createdBy_id!plan_id__createdBy_id__first_name plan_id__createdBy_id__last_nameplan_id__createdBy_id__avatarplan_id__priceplan_id__indianIosPriceplan_id__iosPriceplan_id__indianPriceplan_id__originalPlanner_idplan_id__planDescriptionplan_id__licencePolicy%plan_id__programType__programTypeNamer  r   herer   r   	planlikesplanreviewsceleblikedPlancelebreviewPlanr@   reviewsrC   rD   rx   Treviews__isnullreviews__exactplanlikesCountreviewsCountrC   rB   rD   rE   r8   	coachNameiosINRrJ   X   price	planPriceFreeinrusdPlanAbilitiesability_id__ability, PlanPurposesplanGoal_id__GoalNameoriCoachName<br><br><font><b>Purposes:</b> </font>planDescription3White-Label<br><h6>Copyright &copy; 2017 . All rights reserved.</h6>r   ratingplanPurpose
plan_goalsplanType0planCompetency	planUsersr   coachId	createdByr   indianIosPriceindianPriceiosPricelicencePolicyoriginalPlanner_idr   STARTERSptypeINTERMEDIATEIADVANCEDA	planPhotoplanLogoZpreviousPlanZ
activePlanZ
futurePlanr=      r   r   rF   setDate
likeStatusreviewStatusz------01---)rL   activePlanArrZ
likedPlansluctyperN   ).r   rP   r   r   r   r   r"   rV   r   r1   inrValuegetLikedPlansrG   r%   r   rW   rX   r   r   r   rT   r   r   r+   r   r   rY   currencyTyper   r0   roundfloatr   r   r7   rR   r9   r   r/   rU   r&   ra   r   rb   r   rc   )5rd   re   rf   rg   r   userCurrencyZcelebcurrencyValuesr  Z
likedplansuplanplanArrZprevPlanArrZfuturePlanArrr  totalusercountr   planObjclelebLikescelebReviewsplalikescountreviewscountcelebplanlikescelebplanreviewscelbdtcelbObjusdValuero  usdObj	dollarValplanAbilityValabilitieslistsrm   r   planAbilitiesplanPurposesValpurposes	planGoalscoachValrf  partnerNamedownloadUsers	ratingObj	totalRate	userCountrtrateObjr~  doneSessionstempr  indicesrp   rq   rq   rr   celebritiesPlans  s   
Z
&



6






r  c           )      C   s  d}t j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j|d}g }| r|D ]j}	t|	}
|
d dkrd|
d< nd|
d< |
d dkr|
d d krd|
d< nd|
d< |
d d  |
d  |
d!< t|
d	 }t|
d	 }||
d"< ||
d#< d|
d$< d|
d%< d|
d< t jj|
d	 dd&	 }t jj|
d	 d'j
d(d)j
dd*	 }||
d+< ||
d,< t jj|
d	 | dd- }| rd|
d$< t jj|
d	 | d. }| r|D ]>}t|}|d dkr|d d kr|d |
d< d|
d%< q|d/kr|jd0kr`|d1 d2kr,|
d |
d3< |
d3 |
d4< n|
d |
d3< |
d3 |
d4< t|
d dkrd5|
d3< n|d1 d2krtj j|
d d6}ntj j|
d d6}|D ]}t|}|d7 }q||
d3< t|
d dkr d5|
d3< |
d3 |
d4< nt|
d dkrd5|
d3< |
d3 |
d4< n|jd0krx|d1 d2krRt|
d t| |
d3< |
d3 |
d4< n$t|
d t| |
d3< |
d3 |
d4< n@|d1 d2kr|
d |
d3< |
d3 |
d4< n|
d |
d3< |
d3 |
d4< t|
d dkrd5|
d3< |
d3 |
d4< |
d3 dkr d5|
d3< |
d3 |
d4< tjd8j|
d	 d'd9}d}|D ]}t|}|d:|d9  7 }q&|dkr^|dd  }nd}tjd;j|
d	 d'd<}d}|D ]}t|}|d:|d<  7 }q|dkr|dd  }nd}|
d |
d krtjj|
d d=}|j} | |
d>< |
d d? t| d@ |
dA< |
d dBks.|
d dCkrvtjj|
d d=}!t|
d dD tt|!jd  t|!j  dE |
dA< n|
d |
d krtjj|
d d=}|jd  |j } | |
d>< tjj|
d d=} t|
d dD tt| jd  t| j  dE |
dA< tjj|
d	 d'	 }"tjj|
d	 dF }#d}$d}%|#D ]"}&t|&}'|$|'dG  }$|%d }%q0|$|% }(||
dH< ||
dI< |
d |
dJ< dK|
dL< |"|
dM< |t|" }|(|
dN< |
d |
dO< |
d |
dP< |
d |
dQ< |
d |
dR< |
d |
dS< |
d |
dT< |
d |
dU< |
d |
dV< |
d
 |
dW< |
d	 |
dX< |
dJ dYkr,dZ|
d[< n.|
dJ d\krDd]|
d[< n|
dJ d^krZd_|
d[< |
d d k	r|tj|
d  |
d`< n|
d |
d`< |
d d k	rtj|
d  |
da< n|
d |
da< |
d |
dO< ||
 q`|S )bNr   r   r   rF  rB   r   rG  rH  rC   rI  rD   rJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  rT  rU  rV  rW  r]  r  r<   r  r@   r  r8   rf  rY  rZ  r[  r\  r^  rx   Tr_  ra  rc  rd  re  rE   rg  rh  rJ   ri  rj  rk  rl  rm  ro  rp  rq  rr  rs  rt  r   ru  rv  rw  rx  ry  rz  r{  r|  r}  r~  r  r  r  r  r  r  r   r  r  r   r  r  r  r  r  r   r6   r  r  r  r  r  r  r  r  r  )r+   rV   r   rW   rX   rY   rT   r   r   r   r   r  r   r0   r  r  r   r   r"   r   r7   rR   r9   r%   r   r/   rU   ra   ))ZluseruseridrE  r  rf   r  r  ZceleblikesplansdataArrr   r  r  r  r  r  r  r  r  r  r  ro  r  r  r  r  rm   r   r  r  r  r  r  rf  r  r  r  r  r  r  r  r~  rq   rq   rr   r    sT   J



&








r  c                  C   s  t  }|| }|d }t| jd}zj|d krg }tjj|d |d d	 }t
 }d}g }	g }
t }d}| rr|D ]L}t|}|d }|d }|| |d }|dkrd	}n|d
 }|d }qtjddddj|d d	 d}|D ]R}t|}|d
 }tjj||d d	dddddd}d|d< tjdj|d |d
d	 d}g |d< | r|D ]<}t|}|d dkr|d d kr|d |d  q|d g kr|d d d
 |d< ddd  |d D |d< | rT|D ]8}t|}|d }d!t| |d"< |d d#|d$< qd%|d< n d|d< d!t| |d"< d|d$< tjd&j|d d'	dd(d)d*d+d,d-dd.	}g |d/< | r|D ]}t|}|d/ | q|d d%kr ||d kr|	|d" |d$ |d/ |d |d d0 n4|d
kr |	|d" |d$ |d/ |d |d d0 q |
t|	7 }
td|
d1W S td%d2d3W S ntd%d4d3W S W n. tk
r } ztd5 W 5 d }~X Y nX d S )6Nr6   rt   rB   r  )rB   r6   r   rC   dayOff   r<   	startDate
Microcycler   r   r  )Z#microcycle__mesocycle__period__plan)Zuserplan_id__inr   r   rF   r  r  Tskipr&   )ZuserSet_id__session_idZuserSet_id__userplan_id__inrD   r   r$  r   r@   r8   c                 s   s   | ]}t |V  qd S )N)rR   ).0ri   rq   rq   rr   	<genexpr>  s     z$getSessionDetails.<locals>.<genexpr>zSession ZsessionNamer   sessionDateFr3   r6  exerciseName__exerciseNamesessionr   	extra_setr   r,  r   exArr)rB  r  r  r  Z	sessImage)rL   r   zNo Active Planr   r   rN   )r   rP   r   r   r   r   r%   rV   rX   rW   r   rQ   r   rZ   rY   rT   ra   r   r   r   r&   r*   joinrR   r   r   r   r   rb   r   rc   ) rd   re   rf   rg   r  	userplansr  ri   r   sessionssessro   r  r   r  r  r  r  ZsessStartDateZplanSessionsZpSessZplanSessr  ZuploadedImagesr@  rA  dsZdsObjexerciseDetailsexexObjrp   rq   rq   rr   getSessionDetailsX  s    




(
,&


.
,
.r  c              
   C   s(  t  }|| }|d }t| jd}z|d krd|krV|d dkrV|d }nd}tjdddddj	|d	 |d
}|
 r&|D ]}t|}tjj|d d}	d|kr|d dkr|d |	_|	jdkr|	jd k	rd}
nd}
|dkr||	_|	  |	jdkrd}qd}qtdd||
dW S tjj|d	 ||d}d|kr^|d dkr^|d |_|  tjddddj	|d	 |d
}|
 r|D ]6}t|}|d |d	 kr|d |kr|d }qtdd|ddW S ntdddW S W n. tk
r" } ztd W 5 d }~X Y nX d S )Nr6   rt   reviewr@   rC   rB   rD   r]  planidrE   r   r=   r<   Tr   ZUnliked)rL   r   r  rD   )rC   rB   r]  ZLikedFr   r   rN   )r   rP   r   r   r   r   r+   rV   rW   rX   rY   rT   r   rD   r]  r   r   r   rb   r   rc   )rd   re   rf   rg   r  r  Z	existplanr   r  r   ZreviewstatusrD   rY  Z
existlikesr   ZplanlikeObjrp   rq   rq   rr   createPlanLikes  sX    


"


 
 r  c           	   
   C   s   t  }|| }|d }zl|d krr|d dkrg }tjj|d }|D ]}t|}|| qHtd|dW S ntddd	W S W n, t	k
r } zt
d
 W 5 d }~X Y nX d S )Nr6   rG   rH   	userid_idT)rL   ZcelbdetailsFr   r   rN   )r   rP   r,   rV   rX   rW   rT   ra   r   rb   r   rc   )	rd   re   rf   rg   ZcelebrityArrr   r   r  rp   rq   rq   rr   getcelebritydetails  s    
r  c              
   C   s.  t  }|| }|d }t| jd}z|d krtjj|d	 }|
 r|D ]J}t|}tjj|d d}|d |_|d |_|d |_||_|  qRtdd	d
W S tjj||d |d |d d}	|	  tddd
W S ntddd
W S W n. tk
r( }
 ztd W 5 d }
~
X Y nX d S )Nr6   rt   r  r   ZoccaboutZfavwkTzDetails updated Successfullyr   )r  designationr  
favWorkoutzDetails saved SuccessfullyFr   rN   )r   rP   r   r   r   r   r,   rV   rX   rW   rY   rT   r   r  r  r  r  r   r   r   rb   r   rc   )rd   re   rf   rg   r  Z
clbdetailsr   r  Zupdatedetailsr   rp   rq   rq   rr   createCelebrityDetails  s8    




r  c           	   
   C   sv  t  }|| }t| jd}z|d kr0d|kr|d dkr|d d krd|kr|d dkrtjj|d d}d|_	|
  tddd	W S tjj|d d}|d
 |_|
  tddd	W S ndtjj|d |d |d d}|rtjj|j|d |d |d |d
 d}|
  tddd	W S ntddd	W S W n. tk
rp } ztd W 5 d }~X Y nX d S )Nrt   r6   r@   rD   r   r   TzComment Deleted Successfullyr   r   zComments Updated Successfullyr  r  r   r   )r'  r   r   r   r   zComments Saved SuccessfullyFr   rN   )r   rP   r   r   r   r   r(   rV   r   rD   r   r   r   r&   r   r6   rb   r   rc   )	rd   re   rf   r  ZdeleteCelebZupdateCelebr   ZcreateCelebrityrp   rq   rq   rr   createCelebComments  s:    

 
r  c           	   
   C   s   t  }|| }t| jd}z|d krtjj|d |d |d d	d}|
 r|D ]0}t|}tjj|d d}|d |_|  q\|d dkrtdd	d
W S tddd
W S ntddd
W S W n, tk
r } ztd W 5 d }~X Y nX d S )Nrt   r  r6   r   )r   rB   r   r   rD   TzSession Enabled Successfullyr   zSession Disabled SuccessfullyFr   rN   )r   rP   r   r   r   r   r&   rV   rX   rW   rY   rT   r   r  r   r   rb   r   rc   )	rd   re   rf   r  r   rm   r  updateStatusrp   rq   rq   rr   updateSessionD  s$    
$

r  )er   r9  dateutil.relativedeltar   django.shortcutsr   django.core.mailr   	django.dbr   django.httpr   r   django.templater   django.template.loaderr	   r
   django.views.decorators.cacher   pip._internal.req.req_installr   ImportErrorZpip.req.req_installr   r   r   r   r   django.db.modelsr   rest_framework.decoratorsr   r   r   ZPlan.modelsr   r   r   r   r   r   Z
Plan.viewsr   r   Subscriber.Authenticationr   r   r   r    r!   Subscriber.modelsr"   r#   r$   ZUserplan.modelsr%   r&   r'   ZCelebrity.modelsr(   r)   r*   r+   r,   ZSubscriber.viewsr-   r.   StratFitr/   Zutility.modelsr0   r1   r2   r3   rs   r   r   r   r   r   r   rl   r   r   r   r  r  r  r  r  r  rC  r  r  r  r  r  r  r  r  rq   rq   rq   rr   <module>   s   

8

-








%





&

'

'





#



(

m

 ` .

P

6



!

#

