diff options
author | Frederick Muriuki Muriithi | 2024-09-17 12:58:13 -0500 |
---|---|---|
committer | Frederick Muriuki Muriithi | 2024-09-17 15:07:19 -0500 |
commit | d48cfff120562592d6535d493412ee1881487c38 (patch) | |
tree | 4f8f741008271cb32047bccbe6b208a22103ce9c /uploader/genotypes/views.py | |
parent | 1939b6728843aec2ab6fb1f56f2dcb72bb3e23dd (diff) | |
download | gn-uploader-d48cfff120562592d6535d493412ee1881487c38.tar.gz |
Provide entry-point of genotypes.
Diffstat (limited to 'uploader/genotypes/views.py')
-rw-r--r-- | uploader/genotypes/views.py | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/uploader/genotypes/views.py b/uploader/genotypes/views.py index 2b4ed10..65cdf4b 100644 --- a/uploader/genotypes/views.py +++ b/uploader/genotypes/views.py @@ -1,12 +1,40 @@ """Views for the genotypes.""" -from flask import Blueprint, render_template +from flask import (flash, + request, + url_for, + redirect, + Blueprint, + render_template, + current_app as app) +from uploader.datautils import order_by_family from uploader.authorisation import require_login +from uploader.db_utils import database_connection +from uploader.species.models import all_species, species_by_id genotypesbp = Blueprint("genotypes", __name__) -@genotypesbp.route("/genotypes") +@genotypesbp.route("populations/genotypes", methods=["GET"]) @require_login def index(): """Direct entry-point for genotypes.""" - return render_template("genotypes/index.html") + with database_connection(app.config["SQL_URI"]) as conn: + if not bool(request.args.get("species_id")): + return render_template("genotypes/index.html", + species=order_by_family(all_species(conn)), + activelink="genotypes") + species = species_by_id(conn, request.args.get("species_id")) + if not bool(species): + flash(f"Could not find species with ID '{request.args.get('species_id')}'!", + "alert-danger") + return redirect(url_for("species.populations.genotypes.index")) + return redirect(url_for("species.populations.genotypes.select_population", + species_id=species["SpeciesId"])) + + +@genotypesbp.route("/<int:species_id>/genotypes/select-population", + methods=["GET"]) +@require_login +def select_population(species_id: int): + """Select the population under which the genotypes go.""" + return f"Would select population with species {species_id}…" |