55from sqlalchemy import select
66from app .database import db
77from app .database .models import Exam , School , ZhiXueStudentAccount , User
8- from app .utils .paginate import paginated_json
8+ from app .utils .paginate import paginate_query
99from loguru import logger
1010
1111admin_bp = Blueprint ("admin" , __name__ )
@@ -31,12 +31,10 @@ def list_schools():
3131 per_page = request .args .get ("per_page" , 10 , type = int )
3232 query = request .args .get ("query" , "" , type = str )
3333
34- stmt = select (School )
34+ stmt = select (School ). order_by ( School . id . asc ())
3535 if query :
3636 stmt = stmt .where (School .name .contains (query ) | School .id .contains (query ))
37-
38- schools = db .session .scalars (stmt ).all ()
39- paginated_schools = paginated_json (schools , page , per_page )
37+ paginated_schools = paginate_query (stmt , page , per_page )
4038 school_list = [{"id" : school .id , "name" : school .name } for school in paginated_schools ["items" ]]
4139
4240 return jsonify ({
@@ -56,9 +54,7 @@ def list_users():
5654 stmt = select (User ).order_by (User .id .asc ())
5755 if query :
5856 stmt = stmt .where (User .username .contains (query ))
59-
60- users = db .session .scalars (stmt ).all ()
61- paginated_users = paginated_json (users , page , per_page )
57+ paginated_users = paginate_query (stmt , page , per_page )
6258 user_list = [user .to_dict_all () for user in paginated_users ["items" ]]
6359
6460 return jsonify ({
@@ -75,12 +71,10 @@ def list_zhixue_accounts():
7571 per_page = request .args .get ("per_page" , 10 , type = int )
7672 query = request .args .get ("query" , "" , type = str )
7773
78- stmt = select (ZhiXueStudentAccount )
74+ stmt = select (ZhiXueStudentAccount ). order_by ( ZhiXueStudentAccount . id . asc ())
7975 if query :
8076 stmt = stmt .where (ZhiXueStudentAccount .username .contains (query ))
81-
82- zhixue_accounts = db .session .scalars (stmt ).all ()
83- paginated_accounts = paginated_json (zhixue_accounts , page , per_page )
77+ paginated_accounts = paginate_query (stmt , page , per_page )
8478 account_list = [account .to_dict_all () for account in paginated_accounts ["items" ]]
8579
8680 return jsonify ({
@@ -97,12 +91,10 @@ def list_exams():
9791 per_page = request .args .get ("per_page" , 10 , type = int )
9892 query = request .args .get ("query" , "" , type = str )
9993
100- stmt = select (Exam ).order_by (Exam .created_at .desc ())
94+ stmt = select (Exam ).order_by (Exam .created_at .desc (), Exam . id . desc () )
10195 if query :
10296 stmt = stmt .where (Exam .name .contains (query ) | Exam .id .contains (query ))
103-
104- exams = db .session .scalars (stmt ).all ()
105- paginated_exams = paginated_json (exams , page , per_page )
97+ paginated_exams = paginate_query (stmt , page , per_page )
10698 exam_list = [
10799 {
108100 "id" : exam .id ,
0 commit comments