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 | |
parent | 1939b6728843aec2ab6fb1f56f2dcb72bb3e23dd (diff) | |
download | gn-uploader-d48cfff120562592d6535d493412ee1881487c38.tar.gz |
Provide entry-point of genotypes.
Diffstat (limited to 'uploader')
-rw-r--r-- | uploader/genotypes/views.py | 34 | ||||
-rw-r--r-- | uploader/templates/genotypes/index.html | 14 |
2 files changed, 44 insertions, 4 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}…" diff --git a/uploader/templates/genotypes/index.html b/uploader/templates/genotypes/index.html index 4f5c3a8..9ffea73 100644 --- a/uploader/templates/genotypes/index.html +++ b/uploader/templates/genotypes/index.html @@ -11,7 +11,19 @@ {{flash_all_messages()}} <div class="row"> - <p><strong>We have not implemented this part yet!</strong></p> + <p> + This section allows you to upload genotype information for your experiments, + in the case that you have not previously done so. + </p> + <p> + We'll need to link the genotypes to the species and population, so do please + go ahead and select those in the next two steps. + </p> +</div> + +<div class="row"> + {{select_species_form(url_for("species.populations.genotypes.index"), + species)}} </div> <div class="row"> |