aboutsummaryrefslogtreecommitdiff
path: root/uploader/publications/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'uploader/publications/views.py')
-rw-r--r--uploader/publications/views.py25
1 files changed, 14 insertions, 11 deletions
diff --git a/uploader/publications/views.py b/uploader/publications/views.py
index 63acf1b..0608a35 100644
--- a/uploader/publications/views.py
+++ b/uploader/publications/views.py
@@ -15,11 +15,12 @@ from flask import (
from uploader.authorisation import require_login
from .models import (
- fetch_publications,
fetch_publication_by_id,
create_new_publications,
fetch_publication_phenotypes)
+from .datatables import fetch_publications
+
from gn_libs.debug import __pk__
pubbp = Blueprint("publications", __name__)
@@ -38,20 +39,22 @@ def index():
def list_publications():
# request breakdown:
# https://datatables.net/manual/server-side
+ _page = int(request.args.get("draw"))
+ _length = int(request.args.get("length") or '-1')
+ _start = int(request.args.get("start") or '0')
+ _search = request.args["search[value]"]
with (database_connection(app.config["SQL_URI"]) as conn,
conn.cursor(cursorclass=DictCursor) as cursor):
- cursor.execute("SELECT COUNT(*) FROM Publication")
- _totalrows = int(cursor.fetchone()["COUNT(*)"])
- _publications = tuple({
- **row, "index": idx
- } for idx,row in enumerate(
- fetch_publications(
- conn, request.args["search[value]"]), start=1))
+ _publications, _current_rows, _totalfiltered, _totalrows = fetch_publications(
+ conn,
+ _search,
+ offset=_start,
+ limit=_length)
return json.dumps({
- "draw": request.args.get("draw"),
+ "draw": _page,
"recordsTotal": _totalrows,
- "recordsFiltered": len(_publications),
+ "recordsFiltered": _totalfiltered,
"publications": _publications,
"status": "success"
})
@@ -83,7 +86,7 @@ def create_publication():
with database_connection(app.config["SQL_URI"]) as conn:
publications = create_new_publications(conn, ({
- "pubmed_id": form.get("pubmed-id"),
+ "pubmed_id": form.get("pubmed-id") or None,
"abstract": form.get("publication-abstract").encode("utf8") or None,
"authors": authors,
"title": form.get("publication-title").encode("utf8") or None,