From 4d0d8b94f6d758158c6c2b127edd58f4cffa30c3 Mon Sep 17 00:00:00 2001 From: Kushal Dotel Date: Sun, 12 Jan 2025 20:37:07 +0545 Subject: [PATCH] fixes --- backend/app.py | 2 ++ backend/blueprints/course/__init__.py | 16 +++++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/backend/app.py b/backend/app.py index 54e935e..d45ea71 100644 --- a/backend/app.py +++ b/backend/app.py @@ -19,6 +19,7 @@ from blueprints.session import session as sessionBlueprint from blueprints.admin import admin as adminBlueprint from blueprints.chat import chat as chatBlueprint from blueprints.public import public_summary as publicBlueprint +from blueprints.course import course as courseBlueprint app = Flask(__name__) @@ -40,6 +41,7 @@ app.register_blueprint(sessionBlueprint,url_prefix='/api/session') app.register_blueprint(adminBlueprint,url_prefix='/api/admin') app.register_blueprint(chatBlueprint,url_prefix='/api/chat') app.register_blueprint(publicBlueprint,url_prefix='/api/public') +app.register_blueprint(courseBlueprint,url_prefix='/api/course') @app.route('/media/') def send_file(filename): diff --git a/backend/blueprints/course/__init__.py b/backend/blueprints/course/__init__.py index b2a653c..94f549b 100644 --- a/backend/blueprints/course/__init__.py +++ b/backend/blueprints/course/__init__.py @@ -13,7 +13,7 @@ from constants import * from config import * from constants import PublishedStatus from typing import Union -from backend.constants import UserRole +from db.model import UserRole course = Blueprint('course', __name__) @@ -28,13 +28,19 @@ def list_all_courses(): if category_uuid is not None: category_uuid: uuid.UUID = uuid.UUID(request.args.get('category_uuid')) # Build the query as required - query: select = select(Course).limit(limit).offset(offset) + query: select = select(Course) if search_q != '': query = query.where(or_(Course.name.like(f'%{search_q}%'), Course.description.like(f'%{search_q}%'), - Course.author.firstName.like(f'%{search_q}%'))) + User.firstName.like(f'%{search_q}%'))) if category_uuid is not None: query = query.where(Course.categoryID == category_uuid) - total_pages_for_offset: int = db.session.execute(func.count(Course.id).select_from(Course)).scalar()/limit + + #total_pages_for_offset: int = db.session.execute(func.count(Course.id).select_from(Course)).scalar()/limit + total_pages_for_offset: int = db.session.execute( + select(func.count()).select_from(query.subquery()) + ).scalar() / limit + + query = query.limit(limit).offset(offset) total_pages: int = math.ceil(total_pages_for_offset) if sort_by in available_sorts: if sort_by == 'date_asc': @@ -107,7 +113,7 @@ def enroll_user(): -@course.route('/create', methods=['POST']) +@course.route('/createCourse', methods=['POST']) @auth_required() def create_course(): form_data: dict = request.form