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__/BoModel.cpython-311.pyc

�

R�4g����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�h�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�ZdS)�BoModelc�B�	t��|_td|jt���|_td|jt
���|_td|jt
���|_dS#t$r}t|��Yd}~dSd}~wwxYw)N�users)�
autoload_with�	q_options�	m_session)
r�metarrrrrr�	Exception�print)�self�es  �A/home/numerotech/mcq.numerotech.com/MCQ_APP/core/model/BoModel.py�__init__zBoModel.__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�>�>�>��	������8�8�8�8�8�8�8�8�8��������s�A6A:�:
B�B�Bc�2�tj��5}td|�d|�d���}|�|�����}|rt|j��nd}|���|cddd��S#1swxYwYdS)Nz)select * from admin_users where email = 'z' and password = 'z' �r�connectr
�execute�fetchone�dict�_mapping�close)r �email�password�conn�stmt�results      r"�get_admin_userzBoModel.get_admin_users���
�~����4�
�`�5�`�`�T\�`�`�`�
a�
a�4��L�L����'�'�)�)�6�%+�5�D���!�!�!��6��:�:�<�<�<�
���������������������s�A+B�B�Bc�$�tj��5}td��}|�|�����}|rt|j��nd}|���|cddd��S#1swxYwYdS)Na,select count(distinct user_id) as total_users,count(*) as total_quesitons,
							sum(case when status_id = 0 then 1 else 0 end) as incomplete,
							sum(case when status_id = 1 then 1 else 0 end) as complete,
							sum(case when status_id = 2 then 1 else 0 end) as seleted 
							from questions; r%)r r.r/r0s    r"�get_q_count_datazBoModel.get_q_count_data$s���
�~���	�4�
����4�

�L�L����'�'�)�)�6�%+�5�D���!�!�!��6��:�:�<�<�<�
�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�A$B�B	�B	c
�8�tj��5}td|�d|�d|�d���}|�|�����}|rt|j��nd}|���|cddd��S#1swxYwYdS)NzIselect count(*) as total_sessions,sum(case when startdate > STR_TO_DATE('z^', '%Y-%m-%d %T') then 1 else 0 end) as upcoming,
							sum(case when enddate < STR_TO_DATE('zU', '%Y-%m-%d %T') then 1 else 0 end) as completed,
							sum(case when STR_TO_DATE('zf', '%Y-%m-%d %T') between startdate and enddate  then 1 else 0 end) as active_s
							from m_session;r%)r �nowr.r/r0s     r"�get_session_count_datazBoModel.get_session_count_data1s���
�~����4�
��]`���-0���#&������4�
�L�L����'�'�)�)�6�%+�5�D���!�!�!��6��:�:�<�<�<�
���������������������s�A.B�B�Bc��tj��5}td|�d���}|�|�����}|rd�|D��nd}|���|cddd��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 status_id in (z) group by q.q_id;c�6�g|]}t|j����S��r)r*��.0�rs  r"�
<listcomp>z-BoModel.get_all_questions.<locals>.<listcomp>@�"��
1�
1�
1�A�t�A�J���
1�
1�
1��rr&r
r'�fetchallr+)r �	status_idr.r/r0�resultss      r"�get_all_questionszBoModel.get_all_questions<s���
�~����4�
�a�DM�a�a�a�b�b�4��L�L����'�'�)�)�6�5;�
E�
1�
1��
1�
1�
1�
1��7��:�:�<�<�<�
�����������������������A B�B�Bc��tj��5}td��}|�|�����}|rd�|D��nd}|���|cddd��S#1swxYwYdS)Nzselect * from m_session;c�6�g|]}t|j����Sr9r:r;s  r"r>z,BoModel.get_all_sessions.<locals>.<listcomp>Hr?r@rA)r r.r/r0rDs     r"�get_all_sessionszBoModel.get_all_sessionsDs���
�~����4�
�)�
*�
*�4��L�L����'�'�)�)�6�5;�
E�
1�
1��
1�
1�
1�
1��7��:�:�<�<�<�
���������������������s�AA=�=B�Bc��tj��5}td|�d���}|�|��|���td|�d���}|�|�����}|rt
|j��nd}|���|dcddd��S#1swxYwYdS)Nz+insert into m_session (created_at) values('z')z,select * from m_session where created_at = 'z#' order by session_id desc limit 1 �
session_id)	rr&r
r'�commitr(r)r*r+)r �
created_atr.r/r0s     r"�create_sessionzBoModel.create_sessionLs
��
�~����4�
�K�Z�K�K�K�
L�
L�4��<�<������;�;�=�=�=�
�m�j�m�m�m�
n�
n�4��L�L����'�'�)�)�6�%+�5�D���!�!�!��6��:�:�<�<�<�
��
���������������������s�B*C�C�Cc�,�tj��5}td|�d���}|�|�����}|rt|j��nd}|���|cddd��S#1swxYwYdS)Nz+select * from m_session where session_id = �;r%)r rKr.r/r0s     r"�get_session_datazBoModel.get_session_dataWs���
�~����4�
�J�Z�J�J�J�
K�
K�4��L�L����'�'�)�)�6�%+�5�D���!�!�!��6��:�:�<�<�<�
�����������������������A(B	�	B
�B
c��tj��5}|j����|jjj�|g�����|��}|�	|��|�
��|���	ddd��dS#1swxYwYdS)NT)rr&rr�where�crK�in_�valuesr'rLr+)r �s_id�datar.r/s     r"�update_sessionzBoModel.update_session_s���
�~����4�
�.�
�
�
!�
!�
'�
'���(8�(C�(G�(G���(O�(O�
P�
P�
W�
W�X\�
]�
]�4��<�<������;�;�=�=�=��:�:�<�<�<�
���������������������s�B!C�C�	Cc��tj��5}td|�d���}|�|�����}|rd�|D��nd}|���|cddd��S#1swxYwYdS)Nzdselect * from map_session_questions m inner join questions q on m.q_id = q.q_id  where session_id = rPc�6�g|]}t|j����Sr9r:r;s  r"r>z1BoModel.get_session_questions.<locals>.<listcomp>kr?r@rA�r rXr.r/r0rDs      r"�get_session_questionszBoModel.get_session_questionsgs���
�~����4��~�w{�~�~�~���4��L�L����'�'�)�)�6�5;�
E�
1�
1��
1�
1�
1�
1��7��:�:�<�<�<�
���������������������rFc��tj��5}td|�d���}|�|�����}|rd�|D��nd}|���|cddd��S#1swxYwYdS)Nzkselect q.*,m.msq_id from questions q left join map_session_questions m on m.q_id = q.q_id and session_id = z) where m.q_id is null and status_id >= 1;c�6�g|]}t|j����Sr9r:r;s  r"r>z9BoModel.get_all_questions_for_session.<locals>.<listcomp>sr?r@rAr]s      r"�get_all_questions_for_sessionz%BoModel.get_all_questions_for_sessionos���
�~����4�
�m�~B�m�m�m�n�n�4��L�L����'�'�)�)�6�5;�
E�
1�
1��
1�
1�
1�
1��7��:�:�<�<�<�
���������������������rFc	��tj��5}|D]-}td|�d|�d���}|�|���.|���|���	ddd��dS#1swxYwYdS)Nz;insert into map_session_questions (session_id,q_id) values(�,z);T�rr&r
r'rLr+)r rX�q_idsr.�ir/s      r"�add_question_to_sessionzBoModel.add_question_to_sessionws���
�~����4����q��Z�d�Z�Z�UV�Z�Z�Z�[�[�D��L�L�������;�;�=�=�=��:�:�<�<�<�
�
��������������������s�AA;�;A?�A?c��tj��5}td|�d���}|�|��|���|���	ddd��dS#1swxYwYdS)Nz3delete from map_session_questions where msq_id in (�)Trd)r �mq_idr.r/s    r"�remove_question_to_sessionz"BoModel.remove_question_to_session�s���
�~����4�
�M�U�M�M�M�
N�
N�4��<�<������;�;�=�=�=��:�:�<�<�<�
���������������������s�AA3�3A7�:A7c�,�tj��5}td|�d���}|�|�����}|rt|j��nd}|���|cddd��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 = rPr%)r �q_idr.r/r0s     r"�get_question_datazBoModel.get_question_data�s���
�~����4�
�z�sw�z�z�z�{�{�4��L�L����'�'�)�)�6�%+�5�D���!�!�!��6��:�:�<�<�<�
���������������������rRc	���tj��}|���}|�d|g��|jr�d�|jD��}g}|���D]2}|�tt||�������3|�	��|�
��|r|SdS|�	��|�
��dS)N�usp_search_mcq_usersc��g|]
}|d��S)rr9)r<�columns  r"r>z,BoModel.usp_search_users.<locals>.<listcomp>�s��=�=�=��&��)�=�=�=r@)r�raw_connection�cursor�callproc�descriptionrB�appendr)�zipr+rL)r �
searchData�
connectionrt�columnsrD�rows       r"�usp_search_userszBoModel.usp_search_users�s����%�'�'�*��!�!�#�#�&��/�/�(�*��6�6�6����=�=�&�*<�=�=�=�7��7��o�o���,�,�s��N�N�4��G�S�)�)�*�*�+�+�+�+�	�<�<�>�>�>�
������
���N��4�	�<�<�>�>�>�
������
�$r@N)�__name__�
__module__�__qualname__r#r1r3r6rErIrNrQrZr^rargrkrnr}r9r@r"rrs�������������
�
�
�	�	�	�������	�	�	��������������������������r@r)r)�
sqlalchemyrrrrrrr	r
�sqlalchemy.sqlrr�corer
�r�core.library.helperr�jsonrrrrr�sqlite3�pandas�pdr�	jinja_env�globalsr9r@r"�<module>r�sA��X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�$�$�$�$�$�$�$�$�������������&�&�&�&�&�&���������,�,�,�,�,�,�,�,�,�,�!�!�!�!�!�!�!�!���������Q�Q�Q�Q�Q�Q�Q�Q�h�
����W��-�-�-�-�-r@

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