o
    H`%                    @   s4  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yS   d d
lmZ Y nw 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 }zdt| d }|| t|}g }|r+|D ]}	t|	}
|
d d |
d  |
d< |
d	 d u r_|
d
 dkrOd|
d	< n|
d
 dkrZd|
d	< nd|
d	< n|
d	 d urntj	|
d	  |
d	< |
d d ur}tj	|
d  |
d< |
d d u s|
d dkrd|
d< d|
d< t
jddddjd|
d d}| r|D ]^}t|}|d |
d krt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< qd|
d< qd|
d< qd|
d< q|d dkr|
d |ks%|
d dkr*|d |
d kr*||
 q,td |d!W S  tyR } ztd" td#t|iW  Y d }~S d }~ww )$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   wC:\Users\DELL\Desktop\soubhikg1894-stratfit-d75d91182fa3\soubhikg1894-stratfit-d75d91182fa3\services\Celebrity\views.pygetCelebrityList"   sj   




 
2


<

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 ])}t|}|d |d< |d |d< |d |d< |d |d< |d |d< || qatj	ddt|t| }t|}g }|D ]/}t|}tjdd
ddj|d d	ddddd}|D ]}t|}t
|d || qqt|||
dW S tdddW S  ty } ztd t|||t| tdt|iW  Y d }~S d }~ww ) 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]   sZ   

(",

r   c           	   
   C   s   t  }|| }|d }t| jd}|}d}z%|d kr7tjj|d |d |d}|	  t
ddd	W S t
d
dd	W S  tyf } ztd t|||t| t
dt|iW  Y d }~S d }~ww )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	< || q"td|dW S  ty] } ztd tdt|iW  Y d }~S d }~ww )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rPtjj|d dd	d}|D ]}t
|}	q-tjj|d |d |	d |d}
|
  td	d
dW S tdddW S  ty~ } ztd t||t| tdt|iW  Y d }~S d }~ww )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   s4   


r   c           
   
   C   s   t | jd}|}d}z9tjj|d dddddd	d
dd}g }|D ]}t|}|d 	d|d< |
| q%| }td||dW S  tyn }	 ztd td||t|	 tdt|	iW  Y d }	~	S d }	~	ww )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   s*   
r   c              
   C   s  t  }|| }|d }td| t| jd}|}d}z|d kr|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 ]I}	t|	}
td|
 |
d d |
d	  |
d< |
d |
d< d|
d< d|
d< tjdj	|
d d }|dkrd|
d< nd|
d< ||
d< ||
 qPtd|dW S tdddW S  ty } ztd t|||t| tdt|iW  Y d }~S d }~ww )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      sD   

(


r   c              
   C   s   t  }z6|| }t| tjjdddddd}g }|D ]}t| t|}t| || qt	d|dW S  t
yX } ztd	 t	d
t|iW  Y d }~S d }~ww )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}z%|d kr7tjj||d |d 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 )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rt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 ]7}
t|
}|d |d< |d |d< |d |d< |d |d< |d
 |d< |d |d< |d }|d }|	| qVntjj	|d d }|D ]
}
t|
}|d }qtd||||	dW S tdddW S  ty } ztd  W Y d }~d S d }~ww )!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  sH   

(

r   c              
   C   s  t  }z|| }|d }t| jd}|d krd|v r<|d dkr<tjj|d d}d|_	|
  tddd	W S tjj|d
 |d |d d }| r|D ]9}t|}tjj|d |d |d}	d|v rw|d dkrw|d |	_d}
d|v r|d dkr|d |	_d}
|	
  qStd|
d	W S 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 )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  sF   
"



r   c                 C   s  t  }|| }|d }t| jd}z|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 ]I}t|}tjj	|d |d d
 }| r|D ]}t|}|d |d< |d |d < q|d }|d }|d d!|d< |
t|d  | qht|
 td"|
||d#W S td$d%d&W S  ty } ztd' W Y d }~d S d }~ww )(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  sJ   

<
r  c              
   C   s   t  }z>|| }|d }t| jd}|d kr:d|v r7tjj|d |d |d}|	  t
dddW S W d S t
d	d
dW S  ty` } ztd t
dt|iW  Y d }~S d }~ww )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  }|| }zJ|d krK|d dkrCtjdddjdddd	d
dd}g }|D ]}t|}|| q*|	 }t
d||dW S t
dddW S t
dddW S  tyq } ztd t
dt|iW  Y d }~S d }~ww )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   s^  t  }|| }|d }t| jd}|}d}zv|d krtjj|d d}|j	dkrt
jj|d djrxt
jj|d dd}|D ]}	t|	}
qDtjj||
d d r_td	d
dW S tjj|d |
d |d}|  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y } ztd tdt|iW  Y d }~S d }~ww )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rMg }tjj|d d	dd
dd	d
}t| |D ]}t|}	||	 q4| }
td||
dW S tdddW S  ty{ } ztd t||t| tdt|iW  Y d }~S d }~ww )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rtjj|d |d	d}|
 r|D ]X}t|}	|	d }
tjj|
|d	d}|
 rq|D ]
}t|}|d }qLtjj|d}|d |_|  td	d
d  W S tjj|
|d |d}|  td	dd  W S W d S tdddW S tdddW S  ty } ztd td||t| tdt|iW  Y d }~S d }~ww )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.  sL   



r  c           (      C   s`  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 }
g d(g d)d*g}g }d'}d'}d'}d'}d}d}d+}|D ]z}t|}g |d,< g |d-< g |d.< |d" }|d }|d  |d/< |d'ks||d kr|d }g }tjj|d d0}|j|d1< |j}|d }|d }d+}|d }|d }tjj|d d2d3	 }t|d d4 | r|D ]}t|}|d. | qtjd5j|d d2d6	 }| rW|D ]?}t|} | d7 d'kr9| d7 d kr9|d, | d | d7 d8 | d9 d'krU| d9 d krU|d- | d | d9 d8 qtjj|d |d d:	 }!|! r|!D ]4}"t|"}#|#d; |d<< |#d= |d>< |#d? |d?< |#d@ |d@< |#dA |dA< |#dB |dB< |#dC d2krdD}qltddE}$|dkr|d< |d kr|d dF |$ dGt|d dH|dI dJt|d }%n|d dK |$ dGt|d dH|dI dJt|d dLt|d< }%ndM|d%  dN }%|d d'kr*|d d kr*|d dkr*|%dOt|d  dP t|d<  7 }%|d d'krY|d d krY|d dkrY|%dQt|d  dP t|d?  dR t|dI  7 }%|d# d'kr|d# d kr|d# dkr|%dSt|d#  dP t|d@  dT 7 }%|d$ d'kr|d$ d kr|d$ dkr|%dSt|d$  dP t|dA  dU 7 }%|%|dV< |d1 }	|| |d }&|d'ks||d kr|d }|d'kr|d |krdD}||	|d |d& |||||dV ||dB |d dW tjj|&dX	  }qt dD|||||||dYW S t d+dZd[W S  t!y/ }' zt"#d\ W Y d }'~'d S d }'~'ww )]Nr6   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





>N*$*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 }| r |D ]}t|}|d* d)kr|d* d kr|d* |d*< d|d(< q |d d4 |d  |d5< d|v r|d d6kr|jd7krr|d8 d9krR|d |d:< |d: |d;< n|d |d:< |d: |d;< t|d d#krqd<|d:< |d: |d;< n|d8 d9krtj j|d d=}ntj j|d d=}|D ]}t|}|d> }q||d:< t|d d#krd<|d:< |d: |d;< nt|d d#krd<|d:< |d: |d;< nw|jd7kr|d8 d9krt|d t| |d:< |d: |d;< n3t|d t| |d:< |d: |d;< n |d8 d9kr|d |d:< |d: |d;< n|d |d:< |d: |d;< t|d d#kr0d<|d:< |d: |d;< |d: d#krAd<|d:< |d: |d;< t jd?j|d d,d@}d)}|D ]} t| }!|dA|!d@  7 }qT|d)krp|dd  }"nd)}"t!jdBj|d d,dC}#d)}$|#D ]} t| }!|$dA|!dC  7 }$q|$d)kr|$dd  }%nd)}%|d |d krt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< nA|d |d krt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 },qY|+|, }/|"|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 urt&j'|d  |de< n|d |de< |d d urt&j'|d  |df< n|d |df< |d |dU< d#|dg< d#|dh< d#|di< |d djkr9d|dg< |d dkrDd|dh< |d dkkrOd|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rd|dp< d|dq< |1d }3|	|3= qs|2dp d#kr|2dq dkrd|dq< |1d }3|	|3= qs|2dp dkr|2dq d#krd|dp< |1d }3|	|3= qs|2dp d#kr |2dq d#kr d#|dp< d#|dq< |1d }3|	|3= qs|)| qt*d-||	|jdsW S W d S  t+y. }4 zt,-dt W Y d }4~4d S d }4~4ww )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







  Q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 ]}	t|	}
|
d dkrBd|
d< nd|
d< |
d dkrW|
d d krWd|
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ro|jd0kr+|d1 d2kr|
d |
d3< |
d3 |
d4< n|
d |
d3< |
d3 |
d4< t|
d dkr*d5|
d3< n|d1 d2kr>tj j|
d d6}ntj j|
d d6}|D ]}t|}|d7 }qK||
d3< t|
d dkrnd5|
d3< |
d3 |
d4< nt|
d dkrd5|
d3< |
d3 |
d4< nw|jd0kr|d1 d2krt|
d t| |
d3< |
d3 |
d4< n3t|
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rd5|
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rZ|dd  }nd}|
d |
d krutjj|
d d=}|j} | |
d>< |
d d? t| d@ |
dA< |
d dBks|
d dCkrtjj|
d d=}!t|
d dD tt|!jd  t|!j  dE |
dA< nA|
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 }%q|$|% }(||
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rdZ|
d[< n|
dJ d\krd]|
d[< n|
dJ d^krd_|
d[< |
d d urtj|
d  |
d`< n|
d |
d`< |
d d urtj|
d  |
da< n|
d |
da< |
d |
dO< ||
 q0|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    sZ  J



&





r  c                  C   s  t  }|| }|d }t| jd}z|d krg }tjj|d |d d	 }t
 }d}g }	g }
t }d}| r|D ]&}t|}|d }|d }|| |d }|dkrad	}n|d
 }|d }qCtjddddj|d d	 d}|D ]#}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< | r%|D ]}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/< | rf|D ]}t|}|d/ | qW|d d%kr||d kr|	|d" |d$ |d/ |d |d d0 q|d
kr|	|d" |d$ |d/ |d |d d0 q|
t|	7 }
td|
d1W S td%d2d3W S td%d4d3W S  ty } ztd5 W Y d }~d S d }~ww )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|v r)|d dkr)|d }nd}tjdddddj	|d	 |d
}|
 r|D ]B}t|}tjj|d d}	d|v r`|d dkr`|d |	_|	jdkrm|	jd urmd}
nd}
|dkrv||	_|	  |	jdkrd}qBd}qBtdd||
dW S tjj|d	 ||d}d|v r|d dkr|d |_|  tjddddj	|d	 |d
}|
 r|D ]}t|}|d |d	 kr|d |kr|d }qtdd|ddW S tdddW S  ty } ztd W Y d }~d S d }~ww )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  s^   

"


 r  c           	   
   C   s   t  }|| }|d }z6|d kr;|d dkr8g }tjj|d }|D ]}t|}|| q$td|dW S W d S tddd	W S  t	yZ } zt
d
 W Y d }~d S d }~ww )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}ze|d krstjj|d	 }|
 rW|D ]%}t|}tjj|d d}|d |_|d |_|d |_||_|  q)tdd	d
W S tjj||d |d |d d}	|	  tddd
W S tddd
W S  ty }
 ztd W Y d }
~
d S d }
~
ww )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  s<   




r  c           	   
   C   sf  t  }|| }t| jd}z|d krd|v rb|d dkrb|d d krbd|v rH|d dkrHtjj|d d}d|_	|
  tddd	W S tjj|d d}|d
 |_|
  tddd	W S tjj|d |d |d d}|rtjj|j|d |d |d |d
 d}|
  tddd	W S tddd	W S  ty } ztd W Y d }~d S d }~ww )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}zS|d kr]tjj|d |d |d d	d}|
 rG|D ]}t|}tjj|d d}|d |_|  q.|d dkrUtdd	d
W S tddd
W S tddd
W S  ty| } ztd W Y d }~d S d }~ww )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   Z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



!

#
