From 4f06468ec926092092da7135403a6082484f9e27 Mon Sep 17 00:00:00 2001 From: superlishunqin <852326703@qq.com> Date: Thu, 1 May 2025 05:29:00 +0800 Subject: [PATCH] role --- app/controllers/book.py | 41 +++++++++++++++++++++++++++++++++++++++++ app/templates/base.html | 4 ++-- 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/app/controllers/book.py b/app/controllers/book.py index 93ed5e2..d6f9570 100644 --- a/app/controllers/book.py +++ b/app/controllers/book.py @@ -10,6 +10,47 @@ import uuid book_bp = Blueprint('book', __name__) +@book_bp.route('/admin/list') +@login_required +@admin_required +def admin_book_list(): + page = request.args.get('page', 1, type=int) + per_page = request.args.get('per_page', 10, type=int) + # 只显示状态为1的图书(未下架的图书) + query = Book.query.filter_by(status=1) + # 搜索功能 + search = request.args.get('search', '') + if search: + query = query.filter( + (Book.title.contains(search)) | + (Book.author.contains(search)) | + (Book.isbn.contains(search)) + ) + # 分类筛选 + category_id = request.args.get('category_id', type=int) + if category_id: + query = query.filter_by(category_id=category_id) + # 排序 + sort = request.args.get('sort', 'id') + order = request.args.get('order', 'desc') + if order == 'desc': + query = query.order_by(getattr(Book, sort).desc()) + else: + query = query.order_by(getattr(Book, sort)) + pagination = query.paginate(page=page, per_page=per_page) + books = pagination.items + # 获取所有分类供筛选使用 + categories = Category.query.all() + return render_template('book/list.html', + books=books, + pagination=pagination, + search=search, + categories=categories, + category_id=category_id, + sort=sort, + order=order, + current_user=g.user, + is_admin_view=True) # 指明这是管理视图 # 图书列表页面 @book_bp.route('/list') diff --git a/app/templates/base.html b/app/templates/base.html index 529d51e..89d1e97 100644 --- a/app/templates/base.html +++ b/app/templates/base.html @@ -40,8 +40,8 @@
  • 角色管理
  • -
  • - 图书管理 +
  • + 图书管理
  • 借阅管理