Sindbad~EG File Manager

Current Path : /home/numerotech/mcq.numerotech.com/MCQ_APP/core/model/__pycache__/
Upload File :
Current File : //home/numerotech/mcq.numerotech.com/MCQ_APP/core/model/__pycache__/UserModel.cpython-311.pyc

�

�3g{!���ddlmZmZmZmZmZmZmZmZddl	m
Z
mZddlm
Z
ddlmZddlmZddlZddlZddlmZmZmZdd	lmZmZddlZddlZGd
�d��Ze
jj�e���dS)
�)�
create_engine�MetaData�Table�insert�select�update�delete�text)�and_�or_)�app�)�Cryptography)�HelperN)�	timedelta�date�datetime)�engine�user_enginec��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�	UserModelc���	t��|_td|jt���|_td|jt
���|_td|jt
���|_td|jt
���|_td|jt
���|_	dS#t$r}t|��Yd}~dSd}~wwxYw)N�users)�
autoload_with�	q_options�	questions�user_answers�mcq_category)r�metarrrrrrrr�	Exception�print)�self�es  �C/home/numerotech/mcq.numerotech.com/MCQ_APP/core/model/UserModel.py�__init__zUserModel.__init__s���	��z�z�4�9��g�t�y��D�D�D�4�:��+�t�y��G�G�G�4�>��+�t�y��G�G�G�4�>��^�T�Y�f�M�M�M�4���^�T�Y�f�M�M�M�4�����	������8�8�8�8�8�8�8�8�8��������s�B8B<�<
C �C�C c�F�tj��5}td�|����}|�|�����}|���|rt|j��ndcddd��S#1swxYwYdS)Nz-select * from societies where society_id = {})	r�connectr
�format�execute�one_or_none�close�dict�_mapping)r"�
society_id�conn�stmt�results     r$�get_societyzUserModel.get_societys���
�~���4�4�
�>�E�E�j�Q�Q�
R�
R�4��L�L����*�*�,�,�6��:�:�<�<�<�#)�
3�$�v��
�
�
�t�	4�4�4�4�4�4�4�4�4�4�4�4����4�4�4�4�4�4s�A5B�B�Bc	��tj��5}td�||t	j������}|�|��}|���td�||����}|�|�����}|�	��|rt|j��ndcddd��S#1swxYwYdS)NzDinsert into users (email,society_id,created_at) values('{}',{},'{}')zBselect * from users where email = '{}' and society_id = {} limit 1)rr'r
r(r�nowr)�commitr*r+r,r-)r"�emailr.r/r0r1s      r$�insert_new_userzUserModel.insert_new_user%s��
�~���4�4�
�U�\�\�]b�cm�nv�nz�n|�n|�}�}�
~�
~�4��L�L����6��;�;�=�=�=�
�S�Z�Z�[`�ak�l�l�
m�
m�4��L�L����*�*�,�,�6��:�:�<�<�<�#)�
3�$�v��
�
�
�t�4�4�4�4�4�4�4�4�4�4�4�4����4�4�4�4�4�4s�CC5�5C9�<C9c��tj��5}td��}|�|�����}|���|rd�|D��ngcddd��S#1swxYwYdS)Nzselect * from mcq_categoryc�6�g|]}t|j����S��r,r-��.0�rs  r$�
<listcomp>z.UserModel.get_mcq_category.<locals>.<listcomp>4�"��
,�
,�
,��4��
���
,�
,�
,��rr'r
r)�allr+)r"r/r0r1s    r$�get_mcq_categoryzUserModel.get_mcq_category/s���
�~���?�4�
�,�
-�
-�4��L�L����"�"�$�$�6��:�:�<�<�<�06�
>�
,�
,�V�
,�
,�
,�
,�B�	?�?�?�?�?�?�?�?�?�?�?�?����?�?�?�?�?�?s�AA;�;A?�A?c��tj��5}td|�d���}|�|�����}|���|rd�|D��ngcddd��S#1swxYwYdS)N�(select * from questions where user_id = z and status_id = 0c�6�g|]}t|j����Sr:r;r<s  r$r?z;UserModel.get_incomplete_user_questions.<locals>.<listcomp>;r@rArB�r"�user_idr/r0r1s     r$�get_incomplete_user_questionsz'UserModel.get_incomplete_user_questions6����
�~���?�4�
�U�'�U�U�U�
V�
V�4��L�L����"�"�$�$�6��:�:�<�<�<�06�
>�
,�
,�V�
,�
,�
,�
,�B�	?�?�?�?�?�?�?�?�?�?�?�?����?�?�?�?�?�?��AA?�?B�Bc��tj��5}td|�d���}|�|�����}|���|rd�|D��ngcddd��S#1swxYwYdS)NrFz and status_id = 1c�6�g|]}t|j����Sr:r;r<s  r$r?z9UserModel.get_complete_user_questions.<locals>.<listcomp>Br@rArBrHs     r$�get_complete_user_questionsz%UserModel.get_complete_user_questions=rKrLc��tj��5}td|�d���}|�|�����}|���|rd�|D��ngcddd��S#1swxYwYdS)NrFz and status_id = 2c�6�g|]}t|j����Sr:r;r<s  r$r?z9UserModel.get_selected_user_questions.<locals>.<listcomp>Ir@rArBrHs     r$�get_selected_user_questionsz%UserModel.get_selected_user_questionsDrKrLc��tj��5}td|�d���}|�|��}|���td|�d���}|�|�����}|rt
|j��nd}|d}|���|cddd��S#1swxYwYdS)Nz'insert into questions (user_id) values(�)rFz order by q_id desc limit 1�q_id)	rr'r
r)r5r*r,r-r+)r"rIr/r0r1�q_datarUs       r$�insert_new_questionzUserModel.insert_new_questionKs��
�~���	�4�
�C��C�C�C�
D�
D�4��L�L����6��;�;�=�=�=�
�^�'�^�^�^�
_�
_�4��L�L����*�*�,�,�6�%+�5�D���!�!�!��6�
��.�4��:�:�<�<�<�
�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�B,C
�
C�Cc�&�tj��5}td|����}|�|�����}|���|rt
|j��ndcddd��S#1swxYwYdS)Nz�select *,group_concat(display_name) as category_name  FROM questions q left join mcq_category mc on find_in_set(mc.mcq_category_id,q.category_ids) where q_id = �rr'r
r)r*r+r,r-�r"rUr/r0r1s     r$�get_questionzUserModel.get_questionWs���
�~���4�4�
�y�sw�y�y�z�z�4��L�L����*�*�,�,�6��:�:�<�<�<�#)�
3�$�v��
�
�
�t�	4�4�4�4�4�4�4�4�4�4�4�4����4�4�4�4�4�4��A%B�B
�
B
c��tj��5}td|�d���}|�|�����}|���|rd�|D��ngcddd��S#1swxYwYdS)Nz%select * from q_options where q_id = z order by opt_idc�6�g|]}t|j����Sr:r;)r=�is  r$r?z1UserModel.get_question_option.<locals>.<listcomp>cr@rArBrZs     r$�get_question_optionzUserModel.get_question_option^s���
�~���?�4�
�M�t�M�M�M�
N�
N�4��L�L����"�"�$�$�6��:�:�<�<�<�06�
>�
,�
,�V�
,�
,�
,�
,�B�	?�?�?�?�?�?�?�?�?�?�?�?����?�?�?�?�?�?rLc�.�tj��5}td|�d|�d���}|�|�����}|���|rt
|j��ndcddd��S#1swxYwYdS)N�#select * from users where email = "z" and password = "�" and society_id = 18�rr'r
r)r*r+r,r-)r"r6�passwordr/r0r1s      r$�get_user_by_passwordzUserModel.get_user_by_passwordes�������4��
�m�U�m�m�h�m�m�m�
n�
n�4��L�L����*�*�,�,�6��:�:�<�<�<�#)�
3�$�v��
�
�
�t�	4�4�4�4�4�4�4�4�4�4�4�4����4�4�4�4�4�4s�A)B
�
B�Bc�(�tj��5}td|�d���}|�|�����}|���|rt
|j��ndcddd��S#1swxYwYdS)Nrbrcrd)r"r6r/r0r1s     r$�get_user_by_emailzUserModel.get_user_by_emaills�������4��
�Q�U�Q�Q�Q�
R�
R�4��L�L����*�*�,�,�6��:�:�<�<�<�#)�
3�$�v��
�
�
�t�	4�4�4�4�4�4�4�4�4�4�4�4����4�4�4�4�4�4��A&B�B�Bc�`�|j����|���|jjj�|g����}tdt|��zdz��}tj
��5}|�|��}|���|�|���
��}|rt|j��nd}|���|cddd��S#1swxYwYdS)Nz%select *  from users where user_id = � )rr�values�where�crI�in_r
�strrr'r)r5�firstr,r-r+)	r"rI�datar0�select_stmtr/r1�
select_result�result_2s	         r$�
update_memberzUserModel.update_memberss;��	
��	�	�	�	�	#�	#�D�	)�	)�	/�	/��
��0D�0H�0H�'��0S�0S�	T�	T�$��<�S��\�\�I�#�M�N�N�+��������L�L����6��;�;�=�=�=��<�<��,�,�2�2�4�4�=�.;�E�d�=�)�*�*�*��8��:�:�<�<�<�
�
��������������������s�A>D#�#D'�*D'c�(�td|�d���}tj��5}|�|�����}|���|rt
|j��ndcddd��S#1swxYwYdS)Nz$select * from users where user_id = z and society_id = 18)r
rr'r)r*r+r,r-)r"rIr0r/r1s     r$�
get_memberzUserModel.get_member~s���	
�R�W�R�R�R�	S�	S�$�����4���L�L����*�*�,�,�6��:�:�<�<�<�#)�
3�$�v��
�
�
�t�4�4�4�4�4�4�4�4�4�4�4�4����4�4�4�4�4�4s�AB�B�Bc��tj��5}td|�d|�d���}|�|�����}|���|rd�|D��ndcddd��S#1swxYwYdS)Nz�select *,group_concat( distinct display_name) as category_name  from questions q left join mcq_category mc on find_in_set(mc.mcq_category_id,q.category_ids) where user_id = z and status_id = z group by q.q_idc�6�g|]}t|j����Sr:r;�r=�rows  r$r?z/UserModel.get_all_questions.<locals>.<listcomp>��"��
0�
0�
0�#�4�����
0�
0�
0rArB)r"rI�	status_idr/r0r1s      r$�get_all_questionszUserModel.get_all_questions�s
��
�~���E�4�
�u�@G�u�u�Zc�u�u�u�v�v�4��L�L����"�"�$�$�6��:�:�<�<�<�4:�
D�
0�
0��
0�
0�
0�
0��	E�E�E�E�E�E�E�E�E�E�E�E����E�E�E�E�E�Es�A!B�B�	Bc� �tj��5}|D]�}|ds.|�|j���|��}�8|j����|jjj�	|dg�����
|��}|�|��}��|���|���	ddd��dS#1swxYwYdS)N�opt_id�success)
rr'r)rrrrmrnr�rorlr5r+)r"�opt_datar/r_r1r0s      r$�insert_update_optzUserModel.insert_update_opt�s+��
�~���	�4��!�!�q��X�;�!��l�l�4�>�0�0�2�2�A�6�6�V�V��N�!�!�#�#�)�)�$�.�*:�*A�*E�*E�q��{�m�*T�*T�U�U�\�\�]^�_�_�T��l�l�4� � �V�V��;�;�=�=�=��:�:�<�<�<�
�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�C"D�D�
Dc��tj��5}t|��|j����|jjj�|g�����	|��}|�
|��}|���|���	ddd��dS#1swxYwYdS)Nr�)
rr'r!rrrmrnrUrorlr)r5r+)r"rVrUr/r0r1s      r$�update_questionzUserModel.update_question�s���
�~����4���=�=�=�
�.�
�
�
!�
!�
'�
'���(8�(=�(A�(A�4�&�(I�(I�
J�
J�
Q�
Q�RX�
Y�
Y�4��L�L����6��;�;�=�=�=��:�:�<�<�<�
�
��������������������s�B0C�C�Cc�&�tj��5}td|����}|�|�����}|���|rt
|j��ndcddd��S#1swxYwYdS)Nz%select * from questions where q_id = rYrZs     r$�get_img_upload_by_q_idz UserModel.get_img_upload_by_q_id�s���
�~���4�4�
�=�t�=�=�
>�
>�4��L�L����*�*�,�,�6��:�:�<�<�<�#)�
3�$�v��
�
�
�t�	4�4�4�4�4�4�4�4�4�4�4�4����4�4�4�4�4�4r\c�(�tj��5}td|�d���}|�|�����}|���|rt
|j��ndcddd��S#1swxYwYdS)Nz[select count(distinct session_id) as session_count from user_answers ua where ua.user_id = z ;)rr'r
r)�fetchoner+r,r-rHs     r$�get_completed_sessionsz UserModel.get_completed_sessions�s���
�~���4�4�
�x�mt�x�x�x�
y�
y�4��L�L����'�'�)�)�6��:�:�<�<�<�#)�
3�$�v��
�
�
�t�	4�4�4�4�4�4�4�4�4�4�4�4����4�4�4�4�4�4ric��tj��5}td|�d���}|�|�����}|���|rd�|D��ndcddd��S#1swxYwYdS)Nz7select * from m_session where startdate > STR_TO_DATE('z', '%Y-%m-%d %T') ;c�6�g|]}t|j����Sr:r;r{s  r$r?z3UserModel.get_upcoming_sessions.<locals>.<listcomp>�r}rArB�r"r4r/r0r1s     r$�get_upcoming_sessionszUserModel.get_upcoming_sessions�s���
�~���E�4�
�a��a�a�a�
b�
b�4��L�L����"�"�$�$�6��:�:�<�<�<�4:�
D�
0�
0��
0�
0�
0�
0��	E�E�E�E�E�E�E�E�E�E�E�E����E�E�E�E�E�ErLc��tj��5}td|�d���}|�|�����}|���|rd�|D��ndcddd��S#1swxYwYdS)Nz+select * from m_session where STR_TO_DATE('z0', '%Y-%m-%d %T') between startdate and enddate;c�6�g|]}t|j����Sr:r;r{s  r$r?z0UserModel.get_active_session.<locals>.<listcomp>�r}rArBr�s     r$�get_active_sessionzUserModel.get_active_session�s���
�~���E�4�
�r�S�r�r�r�
s�
s�4��L�L����"�"�$�$�6��:�:�<�<�<�4:�
D�
0�
0��
0�
0�
0�
0��	E�E�E�E�E�E�E�E�E�E�E�E����E�E�E�E�E�ErLc�&�g}	tj��}|���}|�d|||g��	d�|jD��}g}	|���}	|	�n3t
t||	����}
|�|
���J|�t|����|�
���n	|j�n��|���n#|���wxYw|S)N�usp_get_question_options�c��g|]
}|d��S)rr:)r=rns  r$r?z/UserModel.get_question_data.<locals>.<listcomp>�s��.�.�.�a�Q�q�T�.�.�.rA)r�raw_connection�cursor�callproc�descriptionr�r,�zip�append�list�nextsetr+)r"�
session_idrUrI�sets�
connectionr��names�set_�row_rawr|s           r$�get_question_datazUserModel.get_question_data�s#��	�$���%�'�'�:������6�	�?�?�-�z�$�w�.G�H�H�H�
�.�.�6�-�.�.�.�E�
�D����� � �W������E�7�#�#�$�$�S�	�[�[������	�K�K��T�
�
����
�~�~����
�
��!�
�
���������:����������	
�+s�CC8�8Dc��tj��5}|�|j���|��}|���|���|jcddd��S#1swxYwYdS)N)rr'r)rrr5r+�inserted_primary_key)r"rrr/r1s    r$�insert_user_optionzUserModel.insert_user_option�s���
�~���&�4��L�L��*�1�1�3�3�T�:�:�6��;�;�=�=�=��:�:�<�<�<�
�
%�	&�&�&�&�&�&�&�&�&�&�&�&����&�&�&�&�&�&s�AA=�=B�BN)�__name__�
__module__�__qualname__r%r2r7rDrJrOrRrWr[r`rfrhrvrxrr�r�r�r�r�r�r�r�r:rAr$rrsv������
�
�
�4�4�4�4�4�4�?�?�?�?�?�?�?�?�?�?�?�?�
�
�
�4�4�4�?�?�?�4�4�4�4�4�4�	�	�	�4�4�4�E�E�E�
�
�
����4�4�4�4�4�4�E�E�E�E�E�E����0&�&�&�&�&rAr)r)�
sqlalchemyrrrrrrr	r
�sqlalchemy.sqlrr�corer
�r�core.library.helperr�jsonrrrrr�sqlite3�pandas�pdr�	jinja_env�globalsr:rAr$�<module>r�sA��X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�$�$�$�$�$�$�$�$�������������&�&�&�&�&�&���������,�,�,�,�,�,�,�,�,�,�!�!�!�!�!�!�!�!���������I&�I&�I&�I&�I&�I&�I&�I&�Z�
����y��1�1�1�1�1rA

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists