Debug: order_by

This commit is contained in:
Yûki VACHOT 2022-01-06 16:15:08 +01:00
parent 6851a0702b
commit 98aee3a6dc
2 changed files with 22 additions and 11 deletions

View file

@ -2,7 +2,7 @@ import hashlib
import os import os
from datetime import datetime from datetime import datetime
from flask_sqlalchemy import inspect from flask_sqlalchemy import inspect
from sqlalchemy import asc, or_ from sqlalchemy import asc, desc, or_
from .users_model import Users, db from .users_model import Users, db
from .logs_model import Logs from .logs_model import Logs
@ -277,11 +277,11 @@ def db_admin_update_user(ip, user_id, is_admin, password):
return {'status': 1, 'message': message} return {'status': 1, 'message': message}
def db_users(ip, user_id, query, by='email,nickname', id=None, is_admin=None, order_by='email'): def db_users(ip, user_id, query, by='email,nickname', id=None, is_admin=None, order_by='email,asc'):
# q= or id = # q= or id =
# if q= then by= (default: email,nickname) or email or nickname # if q= then by= (default: email,nickname) or email or nickname
# is_admin = # is_admin =
# order_by = (default: email), nickname, id, is_admin # order_by = (default: email,asc), (nickname,asc), (id,desc), (is_admin,desc)
users = Users.query users = Users.query
if query is id and query is not None: if query is id and query is not None:
@ -314,14 +314,25 @@ def db_users(ip, user_id, query, by='email,nickname', id=None, is_admin=None, or
if is_admin is not None: if is_admin is not None:
users = users.filter(Users.is_admin == is_admin) users = users.filter(Users.is_admin == is_admin)
if order_by == 'nickname': order_by = order_by.split(',')
users = users.order_by(asc(Users.nickname)) if order_by[0] == 'nickname':
elif order_by == 'id': order = Users.nickname
users = users.order_by(asc(Users.id)) elif order_by[0] == 'id':
elif order_by == 'is_admin': order = Users.id
users = users.order_by(asc(Users.is_admin)) elif order_by[0] == 'is_admin':
order = Users.is_admin
else: else:
users = users.order_by(asc(Users.email)) order = Users.email
if len(order_by) > 1:
if order_by[1] == 'asc':
users = users.order_by(asc(order))
elif order_by[1] == 'desc':
users = users.order_by(desc(order))
else:
users = users.order_by(asc(order))
else:
users = users.order_by(asc(order))
users = users.all() users = users.all()

View file

@ -330,7 +330,7 @@ def users():
get_by = request.args.get('by') get_by = request.args.get('by')
get_id = request.args.get('id') get_id = request.args.get('id')
get_is_admin = request.args.get('is_admin') get_is_admin = request.args.get('is_admin')
get_order_by = request.args.get('get_order_by') get_order_by = request.args.get('order_by')
res = db_users(ip, user_id, get_query, get_by, get_id, get_is_admin, get_order_by) res = db_users(ip, user_id, get_query, get_by, get_id, get_is_admin, get_order_by)
if res['status'] == 1: if res['status'] == 1:
return send_error(500, res['message']) return send_error(500, res['message'])