diff --git a/app/dao/jobs_dao.py b/app/dao/jobs_dao.py index 13ee5829d..563eba68f 100644 --- a/app/dao/jobs_dao.py +++ b/app/dao/jobs_dao.py @@ -6,8 +6,7 @@ from flask import current_app from sqlalchemy import and_, asc, desc, func, select from app import db - -# from app.dao.pagination import Pagination +from app.dao.pagination import Pagination from app.enums import JobStatus from app.models import ( FactNotificationStatus, @@ -67,25 +66,26 @@ def dao_get_jobs_by_service_id( if statuses is not None and statuses != [""]: query_filter.append(Job.job_status.in_(statuses)) - # total_items = db.session.execute( - # select(func.count()).select_from(Job).filter(*query_filter) - # ).scalar_one() + total_items = db.session.execute( + select(func.count()).select_from(Job).filter(*query_filter) + ).scalar_one() - # stmt = ( - # select(Job) - # .filter(*query_filter) - # .order_by(Job.processing_started.desc(), Job.created_at.desc()) - # .limit(page_size) - # .offset(page) - # ) - # items = db.session.execute(stmt).scalars().all() - # return Pagination(items, page, page_size, total_items) - - return ( - Job.query.filter(*query_filter) + offset = (page - 1) * page_size + stmt = ( + select(Job) + .filter(*query_filter) .order_by(Job.processing_started.desc(), Job.created_at.desc()) - .paginate(page=page, per_page=page_size) + .limit(page_size) + .offset(offset) ) + items = db.session.execute(stmt).scalars().all() + return Pagination(items, page, page_size, total_items) + + # return ( + # Job.query.filter(*query_filter) + # .order_by(Job.processing_started.desc(), Job.created_at.desc()) + # .paginate(page=page, per_page=page_size) + # ) def dao_get_scheduled_job_stats(