summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ustayml/db.py16
-rw-r--r--ustayml/views/students.py18
2 files changed, 17 insertions, 17 deletions
diff --git a/ustayml/db.py b/ustayml/db.py
index 8fb1ec9..25d0188 100644
--- a/ustayml/db.py
+++ b/ustayml/db.py
@@ -1,3 +1,4 @@
+import math
import psycopg
import click
@@ -51,4 +52,17 @@ def init_db_command():
def init_app(app):
app.teardown_appcontext(close_db) # callback after returning response
- app.cli.add_command(init_db_command) \ No newline at end of file
+ app.cli.add_command(init_db_command)
+
+
+# Helper functions
+
+def get_paginated_items(query: str, params: list=[], pagination: dict={}):
+ limit = pagination.get('pagesize', 100)
+ offset = pagination.get('page', 0) * limit
+ with get_db().cursor() as cursor:
+ cursor.execute(f"{query} LIMIT %s OFFSET %s;", params + [limit, offset])
+ pagination['n_pages'] = math.ceil(cursor.rowcount / limit)
+ pagination['rowcount'] = cursor.rowcount
+ items = cursor.fetchall()
+ return items \ No newline at end of file
diff --git a/ustayml/views/students.py b/ustayml/views/students.py
index fef1a82..ba1de04 100644
--- a/ustayml/views/students.py
+++ b/ustayml/views/students.py
@@ -1,4 +1,3 @@
-import math
import datetime
from flask import (
Blueprint, flash, g, redirect, render_template, request, url_for
@@ -6,7 +5,7 @@ from flask import (
from werkzeug.exceptions import abort
from ustayml.views.auth import login_required
-from ustayml.db import get_db
+from ustayml.db import get_db, get_paginated_items
bp = Blueprint('students', __name__, url_prefix='/students')
@@ -70,17 +69,4 @@ def details(id):
return render_template(
'students/details.html',
date=datetime.datetime.now()
- )
-
-
-# Helper functions
-
-def get_paginated_items(query: str, params: list=[], pagination: dict={}):
- limit = pagination.get('pagesize', 100)
- offset = pagination.get('page', 0) * limit
- with get_db().cursor() as cursor:
- cursor.execute(f"{query} LIMIT %s OFFSET %s;", params + [limit, offset])
- pagination['n_pages'] = math.ceil(cursor.rowcount / limit)
- pagination['rowcount'] = cursor.rowcount
- items = cursor.fetchall()
- return items
+ ) \ No newline at end of file