Kushal Dotel 6 months ago
parent 187754261f
commit 4d0d8b94f6
  1. 2
      backend/app.py
  2. 16
      backend/blueprints/course/__init__.py

@ -19,6 +19,7 @@ from blueprints.session import session as sessionBlueprint
from blueprints.admin import admin as adminBlueprint from blueprints.admin import admin as adminBlueprint
from blueprints.chat import chat as chatBlueprint from blueprints.chat import chat as chatBlueprint
from blueprints.public import public_summary as publicBlueprint from blueprints.public import public_summary as publicBlueprint
from blueprints.course import course as courseBlueprint
app = Flask(__name__) 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(adminBlueprint,url_prefix='/api/admin')
app.register_blueprint(chatBlueprint,url_prefix='/api/chat') app.register_blueprint(chatBlueprint,url_prefix='/api/chat')
app.register_blueprint(publicBlueprint,url_prefix='/api/public') app.register_blueprint(publicBlueprint,url_prefix='/api/public')
app.register_blueprint(courseBlueprint,url_prefix='/api/course')
@app.route('/media/<string:filename>') @app.route('/media/<string:filename>')
def send_file(filename): def send_file(filename):

@ -13,7 +13,7 @@ from constants import *
from config import * from config import *
from constants import PublishedStatus from constants import PublishedStatus
from typing import Union from typing import Union
from backend.constants import UserRole from db.model import UserRole
course = Blueprint('course', __name__) course = Blueprint('course', __name__)
@ -28,13 +28,19 @@ def list_all_courses():
if category_uuid is not None: if category_uuid is not None:
category_uuid: uuid.UUID = uuid.UUID(request.args.get('category_uuid')) category_uuid: uuid.UUID = uuid.UUID(request.args.get('category_uuid'))
# Build the query as required # Build the query as required
query: select = select(Course).limit(limit).offset(offset) query: select = select(Course)
if search_q != '': if search_q != '':
query = query.where(or_(Course.name.like(f'%{search_q}%'), Course.description.like(f'%{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: if category_uuid is not None:
query = query.where(Course.categoryID == category_uuid) 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) total_pages: int = math.ceil(total_pages_for_offset)
if sort_by in available_sorts: if sort_by in available_sorts:
if sort_by == 'date_asc': if sort_by == 'date_asc':
@ -107,7 +113,7 @@ def enroll_user():
@course.route('/create', methods=['POST']) @course.route('/createCourse', methods=['POST'])
@auth_required() @auth_required()
def create_course(): def create_course():
form_data: dict = request.form form_data: dict = request.form

Loading…
Cancel
Save