about summary refs log tree commit diff
path: root/uploader/base_routes.py
diff options
context:
space:
mode:
Diffstat (limited to 'uploader/base_routes.py')
-rw-r--r--uploader/base_routes.py50
1 files changed, 43 insertions, 7 deletions
diff --git a/uploader/base_routes.py b/uploader/base_routes.py
index 742a254..72a8402 100644
--- a/uploader/base_routes.py
+++ b/uploader/base_routes.py
@@ -1,15 +1,22 @@
 """Basic routes required for all pages"""
 import os
+import logging
 from urllib.parse import urljoin
 
-from flask import (Blueprint,
+from gn_libs.mysqldb import database_connection
+from flask import (flash,
+                   request,
+                   redirect,
+                   Blueprint,
                    current_app as app,
                    send_from_directory)
 
+from uploader.flask_extensions import url_for
 from uploader.ui import make_template_renderer
-from uploader.oauth2.client import user_logged_in
+from uploader.species.models import all_species, species_by_id
 
 base = Blueprint("base", __name__)
+logger = logging.getLogger(__name__)
 render_template = make_template_renderer("home")
 
 
@@ -24,9 +31,25 @@ def favicon():
 @base.route("/", methods=["GET"])
 def index():
     """Load the landing page"""
-    return render_template("index.html" if user_logged_in() else "login.html",
-                           gn2server_intro=urljoin(app.config["GN2_SERVER_URL"],
-                                                   "/intro"))
+    streamlined_ui = request.args.get("streamlined_ui")
+    with database_connection(app.config["SQL_URI"]) as conn:
+        print("We found a species ID. Processing...")
+        if not bool(request.args.get("species_id")):
+            return render_template(
+                "index.html",
+                gn2server_intro=urljoin(app.config["GN2_SERVER_URL"], "/intro"),
+                species=all_species(conn),
+                view_under_construction=request.args.get(
+                    "view_under_construction", False))
+
+        species = species_by_id(conn, request.args.get("species_id"))
+        if not bool(species):
+            flash("Selected species was not found!", "alert alert-danger")
+            return redirect(url_for("base.index", streamlined_ui=streamlined_ui))
+
+        return redirect(url_for("species.view_species",
+                                species_id=species["SpeciesId"]))
+
 
 def appenv():
     """Get app's guix environment path."""
@@ -35,8 +58,8 @@ def appenv():
 @base.route("/bootstrap/<path:filename>")
 def bootstrap(filename):
     """Fetch bootstrap files."""
-    return send_from_directory(
-        appenv(), f"share/genenetwork2/javascript/bootstrap/{filename}")
+    return send_from_directory(appenv(), f"share/web/bootstrap/{filename}")
+
 
 
 @base.route("/jquery/<path:filename>")
@@ -46,6 +69,19 @@ def jquery(filename):
         appenv(), f"share/genenetwork2/javascript/jquery/{filename}")
 
 
+@base.route("/datatables/<path:filename>")
+def datatables(filename):
+    """Fetch DataTables files."""
+    return send_from_directory(
+        appenv(), f"share/genenetwork2/javascript/DataTables/{filename}")
+
+@base.route("/datatables-extensions/<path:filename>")
+def datatables_extensions(filename):
+    """Fetch DataTables files."""
+    return send_from_directory(
+        appenv(), f"share/genenetwork2/javascript/DataTablesExtensions/{filename}")
+
+
 @base.route("/node-modules/<path:filename>")
 def node_modules(filename):
     """Fetch node-js modules."""