update the list of students route for coordinator - add search by mode
This commit is contained in:
parent
2a846d4394
commit
850671e147
@ -25,11 +25,12 @@ def list_students(query: dict) -> dict:
|
|||||||
fullname = query.get('fullname')
|
fullname = query.get('fullname')
|
||||||
order_by_first_name = query.get('order_by_first_name')
|
order_by_first_name = query.get('order_by_first_name')
|
||||||
order_by_last_name = query.get('order_by_last_name')
|
order_by_last_name = query.get('order_by_last_name')
|
||||||
|
mode = query.get('mode')
|
||||||
page = query.get('page')
|
page = query.get('page')
|
||||||
per_page = query.get('per_page')
|
per_page = query.get('per_page')
|
||||||
|
|
||||||
student_query = Student.search_by_fullname_and_order_by_first_name_or_last_name(fullname, order_by_first_name,
|
student_query = Student.search_by_fullname_and_mode_and_order_by_first_name_or_last_name(
|
||||||
order_by_last_name)
|
fullname, mode, order_by_first_name, order_by_last_name)
|
||||||
|
|
||||||
response = paginate_models(page, student_query, per_page)
|
response = paginate_models(page, student_query, per_page)
|
||||||
if (message := response.get('message')) is not None:
|
if (message := response.get('message')) is not None:
|
||||||
|
@ -55,3 +55,4 @@ class StudentQuerySchema(ma.Schema):
|
|||||||
order_by_first_name = fields.Str()
|
order_by_first_name = fields.Str()
|
||||||
order_by_last_name = fields.Str()
|
order_by_last_name = fields.Str()
|
||||||
page = fields.Integer()
|
page = fields.Integer()
|
||||||
|
mode = fields.Boolean()
|
||||||
|
@ -1,7 +1,3 @@
|
|||||||
from flask import Blueprint
|
from flask import Blueprint
|
||||||
|
|
||||||
from .groups import bp as bp_group
|
|
||||||
|
|
||||||
bp = Blueprint("project_supervisor", __name__, url_prefix="/project_supervisor")
|
bp = Blueprint("project_supervisor", __name__, url_prefix="/project_supervisor")
|
||||||
|
|
||||||
bp.register_blueprint(bp_group)
|
|
||||||
|
@ -25,11 +25,16 @@ class Student(Person):
|
|||||||
mode = db.Column(db.Boolean, default=True, nullable=False) # True - stationary, False - non-stationary
|
mode = db.Column(db.Boolean, default=True, nullable=False) # True - stationary, False - non-stationary
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def search_by_fullname_and_order_by_first_name_or_last_name(cls, fullname: str = None,
|
def search_by_fullname_and_mode_and_order_by_first_name_or_last_name(cls, fullname: str = None,
|
||||||
|
mode: bool = None,
|
||||||
order_by_first_name: str = None,
|
order_by_first_name: str = None,
|
||||||
order_by_last_name: str = None) -> BaseQuery:
|
order_by_last_name: str = None) -> BaseQuery:
|
||||||
student_query = cls.query
|
student_query = cls.query
|
||||||
|
|
||||||
|
if mode is None:
|
||||||
|
mode = True
|
||||||
|
student_query = student_query.filter_by(mode=mode)
|
||||||
|
|
||||||
if fullname is not None:
|
if fullname is not None:
|
||||||
"""This works only for sqlite3 database - concat function doesn't exist so i used builtin concat
|
"""This works only for sqlite3 database - concat function doesn't exist so i used builtin concat
|
||||||
operator specific only for sqlite db - || """
|
operator specific only for sqlite db - || """
|
||||||
|
Loading…
Reference in New Issue
Block a user