U
    f'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k
r   d dlmZ Y nX d dlmZmZ d dlmZ d dlmZ d dl m!Z!m"Z"m#Z# d dl$m%Z% d dlm&Z& 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   s  t  }|| }t| jd}|d }|}d}z|d krt|d |D ]}t|d tjj	|d}d|_
|  tjj|ddd	d
dddddd	}	|	 rL|	D ]Z}
t|
}|d dkrtjj|d	 |d
 |d |d |d |d |d ||d	}|  qqLtdddW S tdddW S W nT tk
rz } z4td t|||t| tdt|i W Y S d }~X Y nX d S )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   */var/www/html/services/stratadmin/views.py	makeAdmin   sJ    



$
rZ   c           
   
   C   s  t  }|| }t| jd}|d }|}d}z|d kr0d|krtjj|d d}t	| |d |_
|d |_|d |_|d |_|d	 |_|d
 |_|  tdddW S tjj|d |d
 d rtdddW S tjj|d |d |d |d |d	 |d
 ||d}|  tdddW S n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 )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   sL    









ri   c                 C   s  t  }|| }t| |d }d}d}z |d krd| jkr^| jd dkr^t| jd }nd}d| jkr| jd dkrt| 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| || 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 )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|krfddkrft|d }nd}d|krddkrt|d }nd}|d | }	|| }
tj	
dd	d
dddddddddd}d|  krdkrn nd|d kr|d d dkr|j|d d d}d|d krL|d d dkrL|j|d d d}d|d kr|d d dkr|j|d d d}d|d kr|d d dkr|j|d d d}d|d kr|d d dkr|j|d d d}t }t|}||	|
 }|D ] }t|}|| t| qt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 )%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   sT    

(     

r   c              
   C   s  t  }|| }|d }t| jd}|}d}zT|d krvd|krX|d d krXtjj|d d}|d |_	|d |_
|d |_||_d|kr|d d kr|d |_d	|kr|d	 d kr|d	 |_d
|kr|d
 d kr|d
 |_d|kr
|d d kr
|d |_d|kr,|d d kr,|d |_d|krN|d d krN|d |_d|krp|d d krp|d |_d|kr|d d kr|d |_d|kr|d d kr|d |_d|kr|d d kr|d |_d|kr|d d kr|d |_d|kr|d d kr|d |_d|kr<|d d kr<|d |_d|kr|d dkr|d dkr|d dkrd|kr |d d kr t|d ddkr|d dd }n|d dd }tjj|jd}||_|  n:d|kr |d d kr tjj|jd}|d |_|  |  d|krf|d d krf|d D ]}	tjj|	d}
|
   qHd|krD|d d krD|d g krD|d d  D ]}d|kr|d d krtjj|d d}|d d! |_!|j"|_#|d" |_$|d# |_%|d$ |_&|  t'd% n4tjj(|j"|d d! |d" |d# |d$ d&}|  qt)d'd(|j"d)W S tjj*|d d*+ rt)dd+d,W S tjj(|d |d |d ||dd-}d|kr|d d kr|d |_d	|kr|d	 d kr|d	 |_d
|kr
|d
 d kr
|d
 |_d|kr,|d d kr,|d |_d|krN|d d krN|d |_d|krp|d d krp|d |_d|kr|d d kr|d |_d|kr|d d kr|d |_d|kr|d d kr|d |_d|kr|d d kr|d |_d|kr|d d kr|d |_d|kr<|d d kr<|d |_|  d|kr|d d.kr|d d krt|d ddkr|d dd }n|d dd }tjj(|||d/}|  t,jj(|j"|j"||d0}|  |j"|_d1|krX|d1 d.krX|d1 d krXtjj(|d1 ||dd2}|  t,jj(|j"|j"||d0}|  |j"|_|  t)d'd3|j"d)W S nt)dd4d,W S W nT t-k
r } z4t./d5 t0|||t1| t)d6t1|i W Y S d }~X Y nX d S )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   s2   

















4

9&
















5&&
r   c              
   C   s&  t  }|| }|d }t| jd}|}d}z|d krd|krz|d d krztjj|d d}|d |_	|d |_
|d |_||_d|kr|d d kr|d |_d	|kr|d	 d kr|d	 |_d
|kr|d
 d kr|d
 |_d|kr
|d d kr
|d |_d|kr,|d d kr,|d |_d|krN|d d krN|d |_d|krp|d d krp|d |_d|kr|d d kr|d |_d|kr|d d kr|d |_d|kr|d d kr|d |_d|kr|d d kr|d |_d|kr|d d kr|d |_d|kr<|d d kr<|d |_d|kr^|d d kr^|d |_d|kr|d dkr|d dkr|d dkrd|krB|d d krBt|d ddkr|d dd }n|d dd }tjj|jd}||_|  n:d|krB|d d krBtjj|jd}|d |_|  |  d|kr|d d kr|d D ]}	t jj|	d}
|
!  qjd |krf|d  d krf|d  g krf|d  d! D ]}d|kr.|d d kr.t jj|d d}|d  d" |_"|j#|_$|d# |_%|d$ |_&|d% |_'|  t(d& n4t jj)|j#|d  d" |d# |d$ |d% d'}|  qt*d(d)|j#d*W S tjj+|d d+, rt*dd,d-W S tjj)|d |d |d ||dd.}d|kr|d d kr|d |_d	|kr
|d	 d kr
|d	 |_d
|kr,|d
 d kr,|d
 |_d|krN|d d krN|d |_d|krp|d d krp|d |_d|kr|d d kr|d |_d|kr|d d kr|d |_d|kr|d d kr|d |_d|kr|d d kr|d |_d|kr|d d kr|d |_d|kr<|d d kr<|d |_d|kr^|d d kr^|d |_d|kr|d d kr|d |_|  d|kr.|d d/kr.|d d kr.t|d ddkr|d dd }n|d dd }tjj)|||d0}|  t-jj)|j#|j#||d1}|  |j#|_d2|k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 nt*dd5d-W S W nT t.k
r  } z4t/0d6 t1|||t2| t*d7t2|i W Y S d }~X Y nX d S )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   s  t  }|| }|d }d}d}z|d krd| jkrV| jd dkrVt| jd }nd}d| jkr| jd dkrt| jd }nd}|d | }|| }	tjdd	d
ddddddd
d}
g }t|
}|
||	 }|D ]&}t	| t
|}t	| || qtd||dW S tdddW S W nT tk
rz } z4td t|||t| tdt|i W Y S d }~X Y nX d S )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  sN    

    
r   c                 C   s~  t  }|| }|d }d}d}z|d krd| jkrV| jd dkrVt| jd }nd}d| jkr| jd dkrt| jd }nd}|d | }|| }	tjdd	d
dddddd	d}
g }t|
}|
||	 }|D ]&}t	| t
|}t	| || qtd||dW S tdddW S W nT tk
rx } z4td t|||t| tdt|i W Y S d }~X Y nX d S )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  sN    

    
r   c              
   C   sL  t  }|| }|d }t| jd}|}d}z|d krd|kr^ddkr^t|d }nd}d|krddkrt|d }nd}|d | }	|| }
tj	 
d	}d
|  krdkrn nd|d
 kr|d
 d dkr|j|d
 d d}d|d
 kr&|d
 d dkr&|j|d
 d d}d|d
 krZ|d
 d dkrZ|j|d
 d d}d|d
 k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 W nT tk
rF } z4td t|||t| tdt|i W Y S d }~X Y nX d S 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  sN    

   

r   c              
   C   sL  t  }|| }|d }t| jd}|}d}z|d krd|kr^ddkr^t|d }nd}d|krddkrt|d }nd}|d | }	|| }
tj	 
d	}d
|  krdkrn nd|d
 kr|d
 d dkr|j|d
 d d}d|d
 kr&|d
 d dkr&|j|d
 d d}d|d
 krZ|d
 d dkrZ|j|d
 d d}d|d
 k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 W nT tk
rF } z4td t|||t| tdt|i W Y S d }~X Y nX d S 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  sN    

   

r   c           
   
   C   sX  t  }|| }|d }t| jd}|}d}z|d krt| d|krtjj	|d d\}}|d |_
|d |_||_|  tddd	W S tjj|d d
 rtddd	W S tjj	|d |d ||d\}}tddd	W S ntddd	W S W nT tk
rR }	 z4td t|||t|	 tdt|	i W Y S d }	~	X Y nX d S )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  s@    





r   c              
   C   sd  t  }|| }|d }d}d}z|d krd| jkrR| jd dkrRt| jd }nd}d| jk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	|}|
| qt||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 )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  sB    
 
r   c              
   C   s  t  }|| }|d }t| jd}|}d}zT|d krvd|kr^ddkr^t|d }nd}d|krddkrt|d }nd}|d | }	|| }
tj	 
d	}d
|  krdkr&n ndd|d
 kr|d
 d dkr|j|d
 d d}d|d
 kr&|d
 d dkr&|j|d
 d d}t|}||	|
 }t }|D ] }t|}|| t| qDt||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 )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  sF    

 

r   c              
   C   s  t  }|| }|d }t| jd}|}d}z|d krt| d|krtjj	t
|d d\}}t| td| |d |_t
|d |_|d |_|  td	d
dW S tjj|d |d d rt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 nT tk
r }
 z4td t|||t|
 tdt|
i W Y S d }
~
X Y nX d S )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  sD    





r   c              
   C   s2  t  }|| }|d }t| jd}|}d}z|d krd|kr^ddkr^t|d }nd}d|krddkrt|d }nd}|d | }	|| }
tj	d	d

dddddddd}d|  krdkrtn nd|d kr|d d dkr|j|d d d}d|d kr@|d d dkr@|j|d d d}d|d krt|d d dkrt|j|d d d}t|}||	|
 }t }|D ] }t|}|| t| 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 )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   s  t  }|| }t| |d }d}d} z|d krd| jkr^| jd dkr^t| jd }nd}d| jkr| jd dkrt| jd }nd}|d | }|| }	tjd	d
ddddddd	d}
t
|
}|
||	 }g }|D ]}t|}t| || 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 )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   sh  t  }|| }|d }t| jd}|}d}z|d krt| d|krtjj	|d d}|d |_
|d |_|d |_|  tdd	d
W S tjj|d |d d rt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 nT tk
rb }	 z4td t|||t|	 tdt|	i W Y S d }	~	X Y nX d S )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  s@    




r   c              
   C   s  t  }|| }|d }d}d}zt| |d krd| jkr^| jd dkr^t| jd }nd}d| jkr| jd dkrt| jd }nd}|d | }|| }	tjd	d
ddddddd	d}
t
|
}|
||	 }g }|D ]&}t| t|}t| || 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 )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|  sP    

 
r   c              
   C   s  t  }|| }|d }d}d}zt| |d krd| jkr^| jd dkr^t| jd }nd}d| jkr| jd dkrt| jd }nd}|d | }|| }	tjd	d
ddddddd	d}
t
|
}|
||	 }g }|D ]&}t| t|}t| || 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 )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  sP    

 
r   c              
   C   s2  t  }|| }|d }t| jd}|}d}z|d krd|kr^ddkr^t|d }nd}d|krddkrt|d }nd}|d | }	|| }
tj	d	d

dddddddd}d|  krdkrtn nd|d kr|d d dkr|j|d d d}d|d kr@|d d dkr@|j|d d d}d|d krt|d d dkrt|j|d d d}t|}||	|
 }t }|D ] }t|}|| t| 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 )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  s\    

    

r   c              
   C   s2  t  }|| }|d }t| jd}|}d}z|d krd|kr^ddkr^t|d }nd}d|krddkrt|d }nd}|d | }	|| }
tj	d	d

dddddddd}d|  krdkrtn nd|d kr|d d dkr|j|d d d}d|d kr@|d d dkr@|j|d d d}d|d krt|d d dkrt|j|d d d}t|}||	|
 }t }|D ] }t|}|| t| 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 )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  s\    

    

r   c           
   
   C   sX  t  }|| }|d }t| jd}|}d}z|d krt| d|krtjj	|d d\}}|d |_
|d |_||_|  tddd	W S tjj|d d
 rtddd	W S tjj	|d |d ||d\}}tddd	W S ntddd	W S W nT tk
rR }	 z4td t|||t|	 tdt|	i W Y S d }	~	X Y nX d S )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  s@    





r   c              
   C   s  t  }|| }|d }t| jd}|}d}zV|d krxd|kr^ddkr^t|d }nd}d|krddkrt|d }nd}|d | }	|| }
tj	 
d	}d
|  krdkr&n ndd|d
 kr|d
 d dkr|j|d
 d d}d|d
 kr&|d
 d dkr&|j|d
 d d}t }t|}||	|
 }|D ] }t|}|| t| qDt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 )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  sF    

 

r   c              
   C   s  t  }|| }|d }d}d}zt| |d krd| jkr^| jd dkr^t| jd }nd}d| jkr| jd dkrt| jd }nd}|d | }|| }	tjdd	d
ddddd}
g }t	|
}|
||	 }|D ]&}t| t
|}t| || 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 )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  sH    

 
r   c           
   
   C   sJ  t  }|| }|d }t| jd}|}d}z|d krd|krtjj|d d}|d |_	|d |_
|  tddd	W S tjj|d d
 rtddd	W S tjj|d |d ||d}|  tddd	W S ntddd	W S W nT tk
rD }	 z4td t|||t|	 tdt|	i W Y S d }	~	X Y nX d S )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   sp  t  }|| }|d }d}d}zt| |d krd| jkr\| jd dkr\t| jd }nd}d| jkr| jd dkrt| jd }nd}|d | }|| }	tjdd	d
ddddd}
g }t	|
}|
||	 }|D ]}t
|}|| qtd||dW S tdddW S W nT tk
rj } z4td t|||t| tdt|i W Y S d }~X Y nX d S )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  sH    

   
r   c              
   C   s  t  }|| }|d }t| jd}|}d}zV|d krxt| d|krfddkrft|d }nd}d|krddkrt|d }nd}|d | }	|| }
tj	
 d	}d
|  krdkr.n ndd|d
 kr|d
 d dkr|j|d
 d d}d|d
 kr.|d
 d dkr.|j|d
 d d}t }t|}||	|
 }|D ]}t|}|| qLt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 )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  sF    

 
r   c           
   
   C   s  t  }|| }|d }t| jd}|}d}z|d kr*t| d|krtjj	|d d}|d |_
|d |_|d |_|d |_|d	 |_|d
 |_|  tdddW S tjj|d d rtdddW S tjj|d |d |d |d |d	 |d
 ||d}|  tdddW S n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 )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  sL    









r  c                 C   sz  t  }|| }|d }d}d} zt| |d krd| jkr^| jd dkr^t| jd }nd}d| jkr| jd dkrt| jd }nd}|d | }|| }	tjdd	d
ddddddddd}
g }t	|
}|
||	 }|D ]}t
|}|| qtd||dW S tdddW S W nT tk
rt } z4td t|||t| tdt|i W Y S d }~X Y nX d S )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  sN    

     
r  c              
   C   s  t  }|| }|d }t| jd}|}d}z |d krBd|kr^ddkr^t|d }nd}d|krddkrt|d }nd}|d | }	|| }
tj	 
d	}d
|  krdkrn n4d|d
 kr|d
 d dkr|j|d
 d d}d|d
 kr(|d
 d dkr(|j|d
 d d}d|d
 kr\|d
 d dkr\|j|d
 d d}d|d
 kr|d
 d dkr|j|d
 d d}d|d
 kr|d
 d dkr|j|d
 d d}d|d
 kr|d
 d dkr|j|d
 d d}t }t|}||	|
 }|D ]}t|}|| qt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 )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  sT    

     
r  c           
   
   C   sR  t  }|| }|d }t| jd}|}d}z|d krt| d|krtjj	|d d}|d |_
|d |_|  tddd	W S tjj|d d
 rtddd	W S tjj|d |d ||d}|  tddd	W S ntddd	W S W nT tk
rL }	 z4td t|||t|	 tdt|	i W Y S d }	~	X Y nX d S )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   sp  t  }|| }|d }d}d}zt| |d krd| jkr\| jd dkr\t| jd }nd}d| jkr| jd dkrt| jd }nd}|d | }|| }	tjdd	d
ddddd}
g }t	|
}|
||	 }|D ]}t
|}|| qtd||dW S tdddW S W nT tk
rj } z4td t|||t| tdt|i W Y S d }~X Y nX d S )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  sH    

   
r  c              
   C   s  t  }|| }|d }t| jd}|}d}z|d krd|kr|d dkrtjddddj	dd	
d}d
|kr|d
 dkr|j	|d
 d}g }|D ]}	t|	}
||
 qtt|W S d|krddkrt|d }nd}d|krddkrt|d }nd}|d | }|| }tjddddj	dd	
d}d|  kr\dkrn nhd|d kr|d d dkr|j	|d d d}d|d kr|d d dkr|j	|d d d}t }t|}||| }|D ]}	t|	}|| qtd||dW S ntdddW S W nT tk
rz } z4td t|||t| tdt|i W Y S d }~X Y nX d S )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%  sV    

    
r  c           
   
   C   sh  t  }|| }|d }t| jd}|}d}z|d krt| d|krtjj	|d d}|d |_
|d |_|d |_|  tdd	d
W S tjj|d |d d rt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 nT tk
rb }	 z4td t|||t|	 tdt|	i W Y S d }	~	X Y nX d S )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_  s@    




r  c              
   C   s~  t  }|| }|d }d}d}zt| |d krd| jkr^| jd dkr^t| jd }nd}d| jkr| jd dkrt| jd }nd}|d | }|| }	tjd	dd
dddd	d}
t
|
}|
||	 }g }|D ]}t|}t| || qtd||dW S tdddW S W nT tk
rx } z4td t|||t| tdt|i W Y S d }~X Y nX d S )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  sF    


r  c              
   C   s.  t  }|| }|d }t| jd}|}d}z|d krt| d|krfddkrft|d }nd}d|krddkrt|d }nd}|d | }	|| }
tj	
d	dd
ddddd}d|  krdkrxn nd
|d kr|d d
 dkr|j|d d
 d}d|d krD|d d dkrD|j|d d d}d|d krx|d d dkrx|j|d d d}t }t|}||	|
 }|D ]}t|}|| 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 )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  sR    

   
r  c                 C   s   | j d j}|dd }| j d  }tj||dd}| }t| |D ]X}tj	j
|d d rxtdd	d
  S t|d  tj	j|d dddd}|  qLt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$    
r)  c           
   
   C   sZ  t  }|| }|d }t| jd}|}d}z|d krt| d|krtjj	|d d}t| |d |_
|d |_|  tddd	W S tjj|d d
 rtddd	W S tjj|d |d ||d}|  tddd	W S ntddd	W S W nT tk
rT }	 z4td t|||t|	 tdt|	i W Y S d }	~	X Y nX d S )Nr)   r(   zstratadmin/addExerciseCategory/r-   categoryNamestatusTzCategory Updated Successfullyr8   )r*  FzCategory already exists)r*  r+  r6   rb   zCategory 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   inforQ   rR   rg   rh   rW   rX   rX   rY   createExerciseCategory  s>    



r-  c              
   C   sx  t  }|| }t| |d }d}d}z|d krd| jkr\| jd dkr\t| jd }nd}d| jkr| jd dkrt| jd }nd}|d | }|| }	tjdd	d
ddddd}
g }t	|
}|
||	 }|D ]}t
|}t| || qtd||dW S tdddW S W nT tk
rr } z4td t|||t| tdt|i W Y S d }~X Y nX d S )Nr)   r&   zstratadmin/getExerciseCategory/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   getExerciseCategoryI  sF    

 
r.  c              
   C   s  t  }|| }|d }t| jd}|}d}z^|d krt| d|krfddkrft|d }nd}d|krddkrt|d }nd}|d | }	|| }
tj	
 d	}d
|  krdkr.n ndd|d
 kr|d
 d dkr|j|d
 d d}d|d
 kr.|d
 d dkr.|j|d
 d d}t }t|}||	|
 }|D ] }t|}|| t| qLt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 )Nr)   r(   z"stratadmin/exerciseCategorySearch/rj   rk   rl   rm   r,   r   r   r*  )ZcategoryName__icontainsr+  )r+  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  sH    

 

r/  c              
   C   s   t  }|| }|d }d}d}z`|d kr~td g }tjddd}|D ]"}t|}	|	d dkrJ||	 qJt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 )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   r0    s&    

r0  )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   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$  r)  r-  r.  r/  r0  rX   rX   rX   rY   <module>   sx  <

)

,

'

2

  

 -

&

&

,

-

%

#

+

(

-

.

&

,

.

0

0

&

(

+

$

)

,

*

)

1

#

)

7

%

+

.!

(

'

)

