o
    &d                    @   s  d dl Z d dlmZ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 d d
lmZ zd dlmZ W n eyW   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& d dl'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4 d dl5Z5d dl Z d dl6m7Z7 eddgee!e"fedd Z8eddgee!e"fedd Z9e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=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) ZAeddgee!e"fed*d+ ZBeddgee!e"fed,d- ZCeddgee!e"fed.d/ ZDeddgee!e"fed0d1 ZEeddgee!e"fed2d3 ZFeddgee!e"fed4d5 ZGeddgee!e"fed6d7 ZHeddgee!e"fed8d9 ZIeddgee!e"fed:d; ZJeddgee!e"fed<d= ZKeddgee!e"fed>d? ZLeddgee!e"fed@dA ZMeddgee!e"fedBdC ZNeddgee!e"fedDdE ZOeddgee!e"fedFdG ZPeddgee!e"fedHdI ZQeddgee!e"fedJdK ZReddgee!e"fedLdM ZSeddgee!e"fedNdO ZTeddgee!e"fedPdQ ZUeddgee!e"fedRdS ZVeddgee!e"fedTdU ZWeddgee!e"fedVdW ZXeddgee!e"fedXdY ZYeddgee!e"fedZd[ ZZeddgee!e"fed\d] Z[d dl\Z]	 d^d_ Z^eddgee!e"fed`da Z_eddgee!e"fedbdc Z`eddgee!e"feddde Zaeddgee!e"fedfdg ZbdS )h    N)timedatetime)
Permission)EmailMultiAlternatives)model_to_dict)JsonResponseHttpResponse)render)IntegrityError
connection)render_to_string)never_cache)logger)api_viewauthentication_classes)MetabolicValues)exceptionMail)SessionAuthenticationIsAuthenticatedStartFitSessionUtil)User)dictfetchall)ExerciseTypeNewExerciseExerciseVideosExcerciseTypeVideosExcerciseVideosProgramTypeGoals	InolRangeCountryStateExerciseCategoryAdvExercises)AdminGETPOSTc                 C   sr  t  }|| }t| jd}|d }|}d}zw|d krt|d |D ][}t|d tjj	|d}d|_
|  tjj|ddd	d
dddddd	}	|	 r|	D ]-}
t|
}|d dkrtjj|d	 |d
 |d |d |d |d |d ||d	}|  qRq%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 )Nutf-8idzstratadmin/makeAdminzin Herez--<>--pk   r)   email
first_nameis_superusermiddle_name	last_nameusername	is_activepassword)	r.   r/   r1   r2   r3   r4   r5   createdBy_idupdatedBy_idTzAdmin Created SuccessfullysuccessmessageFzuser logged outerrormsg)r   get_user_insessionjsonloadsbodydecodeprintr   objectsgetr0   savefiltervaluesexistsdictr%   creater   	Exceptionr   r;   r   str)requeststratsessionutilr3   datauserrequrldtZ	useradminuserDetailsdt1dataObjZadminDetailse rX   xC:\Users\DELL\Desktop\soubhikg1894-stratfit-d75d91182fa3\soubhikg1894-stratfit-d75d91182fa3\services\stratadmin\views.py	makeAdmin   sP   


$
rZ   c           
   
   C   s  t  }|| }t| jd}|d }|}d}z|d krd|v rYtjj|d d}t	| |d |_
|d |_|d |_|d |_|d	 |_|d
 |_|  tdddW S tjj|d |d
 d rotdddW S tjj|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|	 tdt|	iW  Y d }	~	S d }	~	ww )Nr(   r)   zstratadmin/addExerciseType/r-   exerciseTypeNameexerciseTypeCodeexerciseTypeStatusexerciseTypeDesc	equipmentexerciseCategoryTz!ExerciseType Updated Successfullyr8   )r[   r`   FzexerciseTypeName already exists)r[   r\   r]   r^   r_   exerciseCategory_idr6   modifiedBy_idzExerciseType Saved SuccessfullyUser Logged Outsomething wrongr<   )r   r=   r>   r?   r@   rA   r   rC   rD   rB   r[   r\   r]   r^   r_   ra   rE   r   rF   rH   rJ   rK   r   	exceptionr   rL   )
rM   rN   r3   exinforP   rQ   rR   detailsexTypesrW   rX   rX   rY   createExerciseTypeJ   sP   








ri   c                 C   st  t  }|| }t| |d }d}d}z}|d krd| jv r-| jd dkr-t| jd }nd}d| jv rC| jd dkrCt| jd }nd}|d | }|| }	tjdd	d
dddddddddd}
g }t	|
}|
||	 }|D ]}t
|}t| || qqt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 )Nr)   r&   zstratadmin/getExerciseType/rows 2   pager,   ra   r[   r\   r]   r^   r_   exerciseCategory__categoryName	createdBy
modifiedBycreatedDatemodifiedDate-createdDateTr9   rg   totalFUser logged outr8   rd   r<   )r   r=   rB   r'   intr   rC   rG   order_bylenrI   appendr   rK   r   re   r   rL   rM   rN   r3   rP   rQ   rR   rj   rm   offsettotuserpageuserarryru   rO   rS   rV   rW   rX   rX   rY   getExerciseTypey   s@   
(
r   c                 C   s  t  }|| }|d }t| jd}|}d}z|d krt| d|v r2ddkr2t|d }nd}d|v rCddkrCt|d }nd}|d | }	|| }
tj	
dd	d
dddddddddd}d|  v rmdkrn nxd|d v r|d d dkr|j|d d d}d|d v r|d d dkr|j|d d d}d|d v r|d d dkr|j|d d d}d|d v r|d d dkr|j|d d d}d|d v r|d d dkr|j|d d d}t }t|}||	|
 }|D ]}t|}|| t| qt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 )%Nr)   r(   zstratadmin/exerciseTypeSearch/rj   rk   rl   rm   r,   ra   r[   r\   r]   r^   r_   rn   ro   rp   rq   rr   -modifiedDateexcdatar`   )ra   Z
exTypeName)ZexerciseTypeName__icontainsZ
exTypeCode)ZexerciseTypeCode__icontainsZequipment__icontains)r]   Trt   Fz
logged outr8   rd   r<   )r   r=   r>   r?   r@   rA   rB   rw   r   rC   rG   rx   rF   listry   rI   rz   r   rK   r   re   r   rL   rM   rN   r3   rP   exeinforQ   rR   rj   rm   r|   r}   	excfilterdataArrru   	totaldatarS   rV   rW   rX   rX   rY   exerciseTypeSearch   sX   

(


r   c              
   C   s  t  }|| }|d }t| jd}|}d}z|d krd|v r|d d krtjj|d d}|d |_	|d |_
|d |_||_d|v rV|d d krV|d |_d	|v re|d	 d kre|d	 |_d
|v rt|d
 d krt|d
 |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v ra|d dkra|d dkra|d dkrad|v r`|d d kr`t|d ddkrH|d dd }n	|d dd }tjj|jd}||_|  nd|v r~|d d kr~tjj|jd}|d |_|  |  	 d|v r|d d kr|d D ]}	tjj|	d}
|
   qd|v r|d d kr|d g kr|d d  D ]V}d|v r|d d krtjj|d d}|d d! |_!|j"|_#|d" |_$|d# |_%|d$ |_&|  t'd% qtjj(|j"|d d! |d" |d# |d$ d&}|  qt)d'd(|j"d)W S tjj*|d d*+ r0t)dd+d,W S tjj(|d |d |d ||dd-}d|v rS|d d krS|d |_d	|v rd|d	 d krd|d	 |_d
|v ru|d
 d kru|d
 |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_|  	 d|v rf|d d.krf|d d krft|d ddkr<|d dd }n	|d dd }tjj(|||d/}|  t,jj(|j"|j"||d0}|  |j"|_d1|v r|d1 d.kr|d1 d krtjj(|d1 ||dd2}|  t,jj(|j"|j"||d0}|  |j"|_|  t)d'd3|j"d)W S t)dd4d,W S  t-y } zt./d5 t0|||t1| t)d6t1|iW  Y d }~S d }~ww )7Nr)   r(   zstratadmin/addExercise/r*   exerciseNameexerciseDescexerciseStatusr_   preExInstructionspostExInstructionsdistanceExists
timeExistsexAbilities
repsExistsweightExistssetInstructionsspeedExistsheightExistssetInstContenttimeShortest
youtubeUrlr   0Fvideo_id__videoLink=r,   r-   	videoLinkrmMetValues	metValuesrangeskeyminmaxvalueupdateexercise_id	parameterminValuemaxValue	metaValueTExercise Updated Successfullyr9   r:   exIdr   Exercise Name already existsr8   r   r   r   r6   rb   accessLevelrk   r   r6   rb   excercise_idvideo_idr6   rb   videoUrlr   r6   rb   r   Exercise Saved Successfullyrc   rd   r<   )2r   r=   r>   r?   r@   rA   r   rC   rD   r   r   r   rb   r_   r   r   r   r   r   r   r   r   r   r   r   ry   splitr   r   r   rE   r   deleter   r)   r   r   r   r   rB   rJ   r   rF   rH   r   rK   r   re   r   rL   rM   rN   r3   rP   rf   rQ   rR   ZexercisesInfor   ZmetidZdeletemetValuesvalZupdatemetaValZcreateMetaValues	exercisesexVideosrW   rX   rX   rY   createExercise   s<  

















4
8&















&3&
r   c              
   C   s  t  }|| }|d }t| jd}|}d}z|d krd|v r,|d d kr,tjj|d d}|d |_	|d |_
|d |_||_d|v rV|d d krV|d |_d	|v re|d	 d kre|d	 |_d
|v rt|d
 d krt|d
 |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v rr|d dkrr|d dkrr|d dkrrd|v rq|d d krqt|d ddkrY|d dd }n	|d dd }tjj|jd}||_|  nd|v r|d d krtjj|jd}|d |_|  |  d|v r|d d kr|d D ]}	t jj|	d}
|
!  qd |v r"|d  d kr"|d  g kr"|d  d! D ]V}d|v r|d d krt jj|d d}|d  d" |_"|j#|_$|d# |_%|d$ |_&|d% |_'|  t(d& qt jj)|j#|d  d" |d# |d$ |d% d'}|  qt*d(d)|j#d*W S tjj+|d d+, r@t*dd,d-W S tjj)|d |d |d ||dd.}d|v rc|d d krc|d |_d	|v rt|d	 d krt|d	 |_d
|v r|d
 d kr|d
 |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r|d d kr|d |_d|v r/|d d kr/|d |_|  d|v r|d d/kr|d d krt|d ddkr\|d dd }n	|d dd }tjj)|||d0}|  t-jj)|j#|j#||d1}|  |j#|_d2|v r|d2 d/kr|d2 d krtjj)|d2 ||dd3}|  t-jj)|j#|j#||d1}|  |j#|_|  t*d(d4|j#d*W S t*dd5d-W S  t.y } zt/0d6 t1|||t2| t*d7t2|iW  Y d }~S d }~ww )8Nr)   r(   zstratadmin/addExercisev2/r*   r   r   r   r_   r   r   r   r   r   r   r   r   r   r   r   r   flowTyper   r   r   Fr   r   r,   r-   r   r   r   r   r   r   r   r   r   r   Tr   r   r   r   r8   r   rk   r   r   r   r   r   rc   rd   r<   )3r   r=   r>   r?   r@   rA   r   rC   rD   r   r   r   rb   r_   r   r   r   r   r   r   r   r   r   r   r   r   ry   r   r   r   r   rE   r   r   r   r)   r   r   r   r   rB   rJ   r   rF   rH   r   rK   r   re   r   rL   r   rX   rX   rY   createExercise1  s@  


















4
&
















&&
r   c                 C   sp  t  }|| }|d }d}d}z|d krd| jv r)| jd dkr)t| jd }nd}d| jv r?| jd dkr?t| jd }nd}|d | }|| }	tjdd	d
ddddddd
d}
g }t|
}|
||	 }|D ]}t	| t
|}t	| || qkt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 )Nr)   r&   stratadmin/getExercise/rj   rk   rl   rm   r,   r   exerciseCoder   r   r_   ro   rp   rq   rr   rs   Trt   Frv   r8   rd   r<   )r   r=   r'   rw   r   rC   rG   rx   ry   rB   rI   rz   r   rK   r   re   r   rL   r{   rX   rX   rY   getExercise  sJ   

r   c                 C   sn  t  }|| }|d }d}d}z~|d krd| jv r)| jd dkr)t| jd }nd}d| jv r?| jd dkr?t| jd }nd}|d | }|| }	tjdd	d
dddddd	d}
g }t|
}|
||	 }|D ]}t	| t
|}t	| || qjt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 )Nr)   r&   r   rj   rk   rl   rm   r,   r   r   r   r_   ro   rp   rq   rr   rs   Trt   Frv   r8   rd   r<   )r   r=   r'   rw   r   rC   rG   rx   ry   rB   rI   rz   r   rK   r   re   r   rL   r{   rX   rX   rY   getExercise1  sJ   

r   c              
   C   .  t  }|| }|d }t| jd}|}d}z|d krd|v r-ddkr-t|d }nd}d|v r>ddkr>t|d }nd}|d | }	|| }
tj	 
d	}d
|  v r\dkrn n`d|d
 v rv|d
 d dkrv|j|d
 d d}d|d
 v r|d
 d dkr|j|d
 d d}d|d
 v r|d
 d dkr|j|d
 d d}d|d
 v r|d
 d dkr|j|d
 d d}t }t|}||	|
 }|D ]}t|}|| t| qt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 Nr)   r(   zstratadmin/exercisesearch/rj   rk   rl   rm   r,   r   r   exName)ZexerciseName__icontainsexCode)ZexerciseCode__icontainsr_   r   r   )r   Trt   Frv   r8   rd   r<   )r   r=   r>   r?   r@   rA   rw   r   rC   allrx   rF   r   ry   r   rz   rB   r   rK   r   re   r   rL   r   rX   rX   rY   exerciseSearch  R   



r   c              
   C   r   r   )r   r=   r>   r?   r@   rA   rw   r   rC   r   rx   rF   r   ry   r   rz   rB   r   rK   r   re   r   rL   r   rX   rX   rY   exerciseSearch1  r   r   c           
   
   C   J  t  }|| }|d }t| jd}|}d}zc|d krut| d|v rJtjj	|d d\}}|d |_
|d |_||_|  tddd	W S t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y }	 ztd t|||t|	 tdt|	iW  Y d }	~	S d }	~	ww )Nr)   r(   zstratadmin/addVideos/r-   r   videosStatusTzvedio updated succesfullyr8   )r   Fzvideo link already exists)r   r   r6   rb   zvedio Saved Successfullyrc   rd   r<   )r   r=   r>   r?   r@   rA   rB   r   rC   get_or_creater   r   rb   rE   r   rF   rH   rK   r   re   r   rL   )
rM   rN   r3   rP   	vedioinforQ   rR   ZvideoObjcreatedrW   rX   rX   rY   createVideosK  D   





r   c              
   C   sX  t  }|| }|d }d}d}zs|d kr|d| jv r)| jd dkr)t| jd }nd}d| jv r?| jd dkr?t| jd }nd}|d | }|| }	tjdd	d
ddddd}
t|
}|
||	 }g }|D ]}t	|}|
| qht||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 )Nr)   r&   zstratadmin/getVideos/rj   rk   rl   rm   r,   r   r   ro   rp   rq   rr   rs   rg   ru   Frv   r8   rd   r<   )r   r=   r'   rw   r   rC   rG   rx   ry   rI   rz   r   rK   r   re   r   rL   rM   rN   r3   rP   rQ   rR   rj   rm   r|   r}   r~   ru   rO   r   rS   rV   rW   rX   rX   rY   	getVideoss  sD   

r   c              
   C   s  t  }|| }|d }t| jd}|}d}z|d krd|v r-ddkr-t|d }nd}d|v r>ddkr>t|d }nd}|d | }	|| }
tj	 
d	}d
|  v r\dkrn n0d|d
 v rv|d
 d dkrv|j|d
 d d}d|d
 v r|d
 d dkr|j|d
 d d}t|}||	|
 }t }|D ]}t|}|| t| qt||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 )Nr)   r(   zstratadmin/videosSearch/rj   rk   rl   rm   r,   r   r   r   )ZvideoLink__icontainsr   )r   r   Frv   r8   rd   r<   )r   r=   r>   r?   r@   rA   rw   r   rC   r   rx   rF   ry   r   r   rz   rB   r   rK   r   re   r   rL   rM   rN   r3   rP   r   rQ   rR   rj   rm   r|   r}   r   ru   r   r   rS   rV   rW   rX   rX   rY   videosSearch  sJ   



r   c              
   C   sx  t  }|| }|d }t| jd}|}d}zz|d krt| d|v rYtjj	t
|d d\}}t| td| |d |_t
|d |_|d |_|  td	d
dW S tjj|d |d d rot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 t|||t|
 tdt|
iW  Y d }
~
S d }
~
ww )Nr)   r(   z"stratadmin/addExcerciseTypeVideos/r-   rg   excerciseTypevideoexcerciseStatusTz'ExcerciseTypeVideo updated successfullyr8   )r   r   FzexcerciseType already exists)excerciseType_idr   r   r6   rb   z%ExcerciseTypeVideo Saved Successfullyrc   rd   r<   )r   r=   r>   r?   r@   rA   rB   r   rC   r   rw   r   r   r   rE   r   rF   rH   rJ   rK   r   re   r   rL   )rM   rN   r3   rP   r   rQ   rR   rg   r   vediorW   rX   rX   rY   createExcerciseTypeVideos  sH   




r   c              
   C   s  t  }|| }|d }t| jd}|}d}z|d krd|v r-ddkr-t|d }nd}d|v r>ddkr>t|d }nd}|d | }	|| }
tj	d	d

dddddddd}d|  v rgdkrn nHd|d v r|d d dkr|j|d d d}d|d v r|d d dkr|j|d d d}d|d v r|d d dkr|j|d d d}t|}||	|
 }t }|D ]}t|}|| t| qt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 )Nr)   r(   z#stratadmin/exerciseTypeVideoSearch/rj   rk   rl   rm   r,   ExerciseType__id	Videos_idr   excerciseType__exerciseTypeNamevideo__videoLinkrr   r   r   r   r   )r   r   )r   Trt   Frv   r8   rd   r<   )r   r=   r>   r?   r@   rA   rw   r   rC   select_relatedrG   rx   rF   ry   r   rI   rz   rB   r   rK   r   re   r   rL   r   rX   rX   rY   exerciseTypeVideoSearch  sZ   



r   c              
   C   sr  t  }|| }t| |d }d}d}z||d krd| jv r-| jd dkr-t| jd }nd}d| jv rC| jd dkrCt| jd }nd}|d | }|| }	tjd	d
ddddddd	d}
t
|
}|
||	 }g }|D ]}t|}t| || 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 )Nr)   r&   z"stratadmin/getExcerciseTypeVideos/rj   rk   rl   rm   r,   r   r   r   r   r   rq   r   r   rs   Trt   Frv   r8   rd   r<   )r   r=   rB   r'   rw   r   rC   r   rG   rx   ry   rI   rz   r   rK   r   re   r   rL   r   rX   rX   rY   getExcerciseTypeVideos"  sL   

r   c           
   
   C   Z  t  }|| }|d }t| jd}|}d}zk|d kr}t| d|v rJtjj	|d d}|d |_
|d |_|d |_|  tdd	d
W S tjj|d |d d r`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 t|||t|	 tdt|	iW  Y d }	~	S d }	~	ww )Nr)   r(   zstratadmin/addExcerciseVideos/r-   	excerciser   excerciseVideosStatusTz#ExcerciseVideo updated successfullyr8   )r   r   FzExcerciseVideo already exists)r   r   r   r6   rb   z!ExcerciseVideo Saved Successfullyrc   rd   r<   )r   r=   r>   r?   r@   rA   rB   r   rC   rD   r   r   r   rE   r   rF   rH   rJ   rK   r   re   r   rL   )
rM   rN   r3   rP   r   rQ   rR   rg   r   rW   rX   rX   rY   createExcerciseVideosS  D   




r   c              
   C   z  t  }|| }|d }d}d}zt| |d krd| jv r-| jd dkr-t| jd }nd}d| jv rC| jd dkrCt| jd }nd}|d | }|| }	tjd	d
ddddddd	d}
t
|
}|
||	 }g }|D ]}t| t|}t| || 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 )Nr)   r&   zstratadmin/getExcerciseVideos/rj   rk   rl   rm   r,   Exercise__idr   r   excercise__exerciseNamer   r   rq   r   rs   Trt   Frv   r8   rd   r<   r   r=   rB   r'   rw   r   rC   r   rG   rx   ry   rI   rz   r   rK   r   re   r   rL   r   rX   rX   rY   getExcerciseVideos|  sR   

r   c              
   C   r   )Nr)   r&   z stratadmin/getExcerciseVideosv2/rj   rk   rl   rm   r,   NewExercise__idr   r   r   r   r   rq   r   rs   Trt   Frv   r8   rd   r<   r   r   rX   rX   rY   getExcerciseVideos1  sR   

r   c              
   C     t  }|| }|d }t| jd}|}d}z|d krd|v r-ddkr-t|d }nd}d|v r>ddkr>t|d }nd}|d | }	|| }
tj	d	d

dddddddd}d|  v rgdkrn nHd|d v r|d d dkr|j|d d d}d|d v r|d d dkr|j|d d d}d|d v r|d d dkr|j|d d d}t|}||	|
 }t }|D ]}t|}|| t| qt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 )Nr)   r(   zstratadmin/exerciseVideoSearch/rj   rk   rl   rm   r,   r   r   r   r   r   r   rr   r   r   r   r   r   r   Trt   Frv   r8   rd   r<   r   r=   r>   r?   r@   rA   rw   r   rC   r   rG   rx   rF   ry   r   rI   rz   rB   r   rK   r   re   r   rL   r   rX   rX   rY   exerciseVideoSearch  ^   



r   c              
   C   r   )Nr)   r(   z!stratadmin/exerciseVideoSearchv2/rj   rk   rl   rm   r,   r   r   r   r   r   r   rr   r   r   r   r   r   r   Trt   Frv   r8   rd   r<   r   r   rX   rX   rY   exerciseVideoSearch1  r   r   c           
   
   C   r   )Nr)   r(   zstratadmin/addProgramType/r-   programTypeNameprogramTypeStatusTz$programTypeNames updated succesfullyr8   )r   FzprogramTypeName already exists)r   r   r6   rb   z"programTypeName Saved Successfullyrc   rd   r<   )r   r=   r>   r?   r@   rA   rB   r   rC   r   r   r   rb   rE   r   rF   rH   rK   r   re   r   rL   )
rM   rN   r3   rP   ZptinforQ   rR   pObjr   rW   rX   rX   rY   createProgramTypeB  r   r   c              
   C   s  t  }|| }|d }t| jd}|}d}z|d krd|v r-ddkr-t|d }nd}d|v r>ddkr>t|d }nd}|d | }	|| }
tj	 
d	}d
|  v r\dkrn n0d|d
 v rv|d
 d dkrv|j|d
 d d}d|d
 v r|d
 d dkr|j|d
 d d}t }t|}||	|
 }|D ]}t|}|| t| qt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 )Nr)   r(   zstratadmin/programTypeSearch/rj   rk   rl   rm   r,   r   r   r   )ZprogramTypeName__icontainsr   )r   Trt   Frv   r8   rd   r<   )r   r=   r>   r?   r@   rA   rw   r   rC   r   rx   rF   r   ry   r   rz   rB   r   rK   r   re   r   rL   r   rX   rX   rY   programTypeSearchk  sJ   



r  c              
   C   sr  t  }|| }|d }d}d}zt| |d krd| jv r-| jd dkr-t| jd }nd}d| jv rC| jd dkrCt| jd }nd}|d | }|| }	tjdd	d
ddddd}
g }t	|
}|
||	 }|D ]}t| t
|}t| || qlt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 )Nr)   r&   zstratadmin/getProgramType/rj   rk   rl   rm   r,   r   r   ro   rp   rq   rr   rs   Trt   Frv   r8   rd   r<   )r   r=   rB   r'   rw   r   rC   rG   rx   ry   rI   rz   r   rK   r   re   r   rL   r{   rX   rX   rY   getProgramType  sJ   

r  c           
   
   C   s<  t  }|| }|d }t| jd}|}d}z\|d krnd|v rAtjj|d d}|d |_	|d |_
|  tddd	W S tjj|d d
 rTtddd	W S tjj|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 )Nr)   r(   zstratadmin/addGoals/r-   goalName
goalStatusTzGoal Updated Successfullyr8   )r  FzGoalName already exists)r  r  r6   rb   zGoal Saved Successfullyrc   rd   r<   )r   r=   r>   r?   r@   rA   r   rC   rD   r  r  rE   r   rF   rH   rJ   rK   r   re   r   rL   )
rM   rN   r3   rP   ZgoalinforQ   rR   rg   goalrW   rX   rX   rY   createGoals  s>   



r  c              
   C   b  t  }|| }|d }d}d}zxt| |d krd| jv r-| jd dkr-t| jd }nd}d| jv rC| jd dkrCt| jd }nd}|d | }|| }	tjdd	d
ddddd}
g }t	|
}|
||	 }|D ]}t
|}|| qlt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 )Nr)   r&   zstratadmin/getGoals/rj   rk   rl   rm   r,   r  r  ro   rp   rq   rr   rs   Trt   Frv   r8   rd   r<   )r   r=   rB   r'   rw   r   rC   rG   rx   ry   rI   rz   r   rK   r   re   r   rL   r{   rX   rX   rY   getGoals  F   

r  c              
   C   s  t  }|| }|d }t| jd}|}d}z|d krt| d|v r1ddkr1t|d }nd}d|v rBddkrBt|d }nd}|d | }	|| }
tj	
 d	}d
|  v r`dkrn n0d|d
 v rz|d
 d dkrz|j|d
 d d}d|d
 v r|d
 d dkr|j|d
 d d}t }t|}||	|
 }|D ]}t|}|| qt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 )Nr)   r(   zstratadmin/goalSearch/rj   rk   rl   rm   r,   r   r   r  )ZgoalName__icontainsr  )ZgoalStatus__icontainsTrt   Frv   r8   rd   r<   )r   r=   r>   r?   r@   rA   rB   rw   r   rC   r   rx   rF   r   ry   r   rz   r   rK   r   re   r   rL   r   rX   rX   rY   
goalSearch  sJ   

r
  c           
   
   C   s  t  }|| }|d }t| jd}|}d}z|d krt| d|v rYtjj	|d d}|d |_
|d |_|d |_|d |_|d	 |_|d
 |_|  tdddW S tjj|d d rltdddW S tjj|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|	 tdt|	iW  Y d }	~	S d }	~	ww )Nr)   r(   zstratadmin/addInolRange/r-   levelr   r   avgValuestressValueinolRangeStatusTzInolRange Upade successfullyr8   )r  FzInolRange already exists)r  r   r   r  r  r  r6   rb   zInolRange Saved Successfullyrc   rd   r<   )r   r=   r>   r?   r@   rA   rB   r    rC   rD   r  r   r   r  r  r  rE   r   rF   rH   rJ   rK   r   re   r   rL   )
rM   rN   r3   rP   ZinolRangeinforQ   rR   rg   Z
inolRangesrW   rX   rX   rY   createInolRangeF  sP   








r  c                 C   sj  t  }|| }|d }d}d}z|t| |d krd| jv r-| jd dkr-t| jd }nd}d| jv rC| jd dkrCt| jd }nd}|d | }|| }	tjdd	d
ddddddddd}
g }t	|
}|
||	 }|D ]}t
|}|| 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 )Nr)   r&   zstratadmin/getInolRange/rj   rk   rl   rm   r,   r  r   r   r  r  r  ro   rp   rq   rr   rs   Trt   Frv   r8   rd   r<   )r   r=   rB   r'   rw   r    rC   rG   rx   ry   rI   rz   r   rK   r   re   r   rL   r{   rX   rX   rY   getInolRanges  sH   

r  c              
   C   s  t  }|| }|d }t| jd}|}d}z|d krd|v r/ddkr/t|d }nd}d|v r@ddkr@t|d }nd}|d | }	|| }
tj	 
d	}d
|  v r^dkrn nd|d
 v rx|d
 d dkrx|j|d
 d d}d|d
 v r|d
 d dkr|j|d
 d d}d|d
 v r|d
 d dkr|j|d
 d d}d|d
 v r|d
 d dkr|j|d
 d d}d|d
 v r|d
 d dkr|j|d
 d d}d|d
 v r|d
 d dkr|j|d
 d d}t }t|}||	|
 }|D ]}t|}|| qtd||dW S tdddW S  tyD } ztd t|||t| tdt|iW  Y d }~S d }~ww )Nr)   r(   zstratadmin/inolRangeSearch/rj   rk   rl   rm   r,   r   r   r  )Zlevel__icontainsr   )ZminValue__icontainsr   )ZmaxValue__icontainsr  )ZavgValue__icontainsr  )ZstressValue__icontainsr  )r  Trt   Frv   r8   rd   r<   )r   r=   r>   r?   r@   rA   rw   r    rC   r   rx   rF   r   ry   r   rz   r   rK   r   re   r   rL   r   rX   rX   rY   inolRangeSearch  sX   


r  c           
   
   C   sD  t  }|| }|d }t| jd}|}d}z`|d krrt| d|v rEtjj	|d d}|d |_
|d |_|  tddd	W S tjj|d d
 rXtddd	W S tjj|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 )Nr)   r(   zstratadmin/addCountry/r-   namecountryStatusTz!Country name Updated Successfullyr8   r  FCountry name already existsr  r  r6   rb   Country name Saved Successfullyrc   rd   r<   )r   r=   r>   r?   r@   rA   rB   r!   rC   rD   r  r  rE   r   rF   rH   rJ   rK   r   re   r   rL   )
rM   rN   r3   rP   ZcountryinforQ   rR   rg   countryrW   rX   rX   rY   createCountry  s@   



r  c              
   C   r  )Nr)   r&   zstratadmin/getCountry/rj   rk   rl   rm   r,   r  r  ro   rp   rq   rr   rs   Trt   Frv   r8   rd   r<   )r   r=   rB   r'   rw   r!   rC   rG   rx   ry   rI   rz   r   rK   r   re   r   rL   r{   rX   rX   rY   
getCountry  r	  r  c              
   C   s^  t  }|| }|d }t| jd}|}d}z|d krd|v rb|d dkrbtjddddj	dd	
d}d
|v rJ|d
 dkrJ|j	|d
 d}g }|D ]}	t|	}
||
 qNtt|W S d|v rqddkrqt|d }nd}d|v rddkrt|d }nd}|d | }|| }tjddddj	dd	
d}d|  v rdkrn n0d|d v r|d d dkr|j	|d d d}d|d v r|d d dkr|j	|d d d}t }t|}||| }|D ]}	t|	}|| qt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 )Nr)   r(   zstratadmin/countrySearch/Zappreqr,   r  countryCodedialCode)r  Zcountrynamerk   )Zname__istartswithrj   rl   rm   r   r  )ZcountryStatus__icontainsTrt   Frv   r8   rd   r<   )r   r=   r>   r?   r@   rA   r!   rC   rG   rF   rx   rI   rz   r   dumpsrw   r   ry   r   rK   r   re   r   rL   )rM   rN   r3   rP   r   rQ   rR   	cntrydataZcntryArrrS   cntryObjrj   rm   r|   r}   r   r   ru   r   rV   rW   rX   rX   rY   countrySearch%  sZ   
  
r   c           
   
   C   r   )Nr)   r(   zstratadmin/addState/r-   r  r  stateStatusTzState name Updated Successfullyr8   )r  r  FzState name already exists)
country_idr  r!  r6   rb   zState name Saved Successfullyrc   rd   r<   )r   r=   r>   r?   r@   rA   rB   r"   rC   rD   r"  r  r!  rE   r   rF   rH   rJ   rK   r   re   r   rL   )
rM   rN   r3   rP   Z	stateinforQ   rR   rg   staterW   rX   rX   rY   createState_  r   r$  c              
   C   sn  t  }|| }|d }d}d}z~t| |d krd| jv r-| jd dkr-t| jd }nd}d| jv rC| jd dkrCt| jd }nd}|d | }|| }	tjd	dd
dddd	d}
t
|
}|
||	 }g }|D ]}t|}t| || qnt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 )Nr)   r&   zstratadmin/getStates/rj   rk   rl   rm   r,   Country__idr  r  r!  country__namerq   rs   Trt   Frv   r8   rd   r<   )r   r=   rB   r'   rw   r"   rC   r   rG   rx   ry   rI   rz   r   rK   r   re   r   rL   r   rX   rX   rY   	getStates  sJ   

r'  c              
   C   s  t  }|| }|d }t| jd}|}d}z|d krt| d|v r1ddkr1t|d }nd}d|v rBddkrBt|d }nd}|d | }	|| }
tj	
d	dd
ddddd}d|  v ridkrn nHd
|d v r|d d
 dkr|j|d d
 d}d|d v r|d d dkr|j|d d d}d|d v r|d d dkr|j|d d d}t }t|}||	|
 }|D ]}t|}|| qt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 )Nr)   r(   zstratadmin/stateSearch/rj   rk   rl   rm   r,   r%  r  r  r!  r&  rq   r   r   )r"  r#  )name__icontains)ZstateStatus__icontainsTrt   Frv   r8   rd   r<   )r   r=   r>   r?   r@   rA   rB   rw   r"   rC   r   rG   rx   rF   r   ry   rI   rz   r   rK   r   re   r   rL   r   rX   rX   rY   stateSearch  sV   

r)  c                 C   s   | j d j}|dd }| j d  }tj||dd}| }t| |D ],}tj	j
|d d r<tdd	d
  S t|d  tj	j|d dddd}|  q&tddd
S )Nfile.r,   r   )	file_typeZfile_contentZname_columns_by_rowr  r  Fr  r8   Tr  r  )FILESr  r   readpeZ	get_sheetZ
to_recordsrB   r!   rC   rF   rH   r   rJ   rE   )rM   filename	extensioncontentZsheetrecordsr   r  rX   rX   rY   countryuploadfile  s$   
r4  c           
   
   C   sL  t  }|| }|d }t| jd}|}d}zd|d krvt| d|v rItjj	|d d}t| |d |_
|d |_|  tddd	W S t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y }	 ztd t|||t|	 tdt|	iW  Y d }	~	S d }	~	ww )Nr)   r(   zstratadmin/addExerciseCategory/r-   categoryNamestatusTzCategory Updated Successfullyr8   )r5  FzCategory already exists)r5  r6  r6   rb   zCategory Saved Successfullyrc   rd   r<   )r   r=   r>   r?   r@   rA   rB   r#   rC   rD   r5  r6  rE   r   rF   rH   rJ   rK   r   re   r   rL   )
rM   rN   r3   rP   inforQ   rR   rg   rh   rW   rX   rX   rY   createExerciseCategory  sB   



r8  c              
   C   sj  t  }|| }t| |d }d}d}zx|d krd| jv r-| jd dkr-t| jd }nd}d| jv rC| jd dkrCt| jd }nd}|d | }|| }	tjdd	d
ddddd}
g }t	|
}|
||	 }|D ]}t
|}t| || qlt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 )Nr)   r&   zstratadmin/getExerciseCategory/rj   rk   rl   rm   r,   r5  r6  ro   rp   rq   rr   rs   Trt   Frv   r8   rd   r<   )r   r=   rB   r'   rw   r#   rC   rG   rx   ry   rI   rz   r   rK   r   re   r   rL   r{   rX   rX   rY   getExerciseCategoryI  sH   

r9  c              
   C   s  t  }|| }|d }t| jd}|}d}z|d krt| d|v r1ddkr1t|d }nd}d|v rBddkrBt|d }nd}|d | }	|| }
tj	
 d	}d
|  v r`dkrn n0d|d
 v rz|d
 d dkrz|j|d
 d d}d|d
 v r|d
 d dkr|j|d
 d d}t }t|}||	|
 }|D ]}t|}|| t| qt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 )Nr)   r(   z"stratadmin/exerciseCategorySearch/rj   rk   rl   rm   r,   r   r   r5  )ZcategoryName__icontainsr6  )r6  Trt   Frv   r8   rd   r<   )r   r=   r>   r?   r@   rA   rB   rw   r#   rC   r   rx   rF   r   ry   r   rz   r   rK   r   re   r   rL   r   rX   rX   rY   exerciseCategorySearchs  sL   



r:  c              
   C   s   t  }|| }|d }d}d}z1|d kr?td g }tjddd}|D ]}t|}	|	d dkr6||	 q%td|d	W S W d S  t	yi }
 zt
d
 t|||t|
 tdt|
iW  Y d }
~
S d }
~
ww )Nr)   r&   zstratadmin/getParentGoals/getParentGoalsr  r  r,   T)r9   rg   rd   r<   )r   r=   rB   r   rC   rG   rI   rz   r   rK   r   re   r   rL   )rM   rN   r3   rP   rQ   rR   r   r  rS   rO   rW   rX   rX   rY   r;    s.   

	
r;  )cr>   r   r   django.contrib.auth.modelsr   django.core.mailr   Zdjango.formsr   django.httpr   r   django.shortcutsr	   	django.dbr
   r   django.template.loaderr   django.views.decorators.cacher   Zpip._internal.req.req_installr   ImportErrorZpip.req.req_installrest_framework.decoratorsr   r   ZPlan.modelsr   ZSubscriber.viewsr   Subscriber.Authenticationr   r   r   Subscriber.modelsr   r   Zutility.modelsr   r   r   r   r   r   r   r   r    r!   r"   r#   r$   csvZstratadmin.modelsr%   rZ   ri   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r
  r  r  r  r  r  r   r$  r'  r)  Zpyexcelr/  r4  r8  r9  r:  r;  rX   rX   rX   rY   <module>   s~   <


)

,

'

2
  

 
-

&

&

,

-

%

#

+

(

-

.

&

,

.

0

0

&

(

+

$

)

,

*

)

1

#

)

7

%

+
.


(

'

)
