diff options
Diffstat (limited to 'uploader/species/views.py')
-rw-r--r-- | uploader/species/views.py | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/uploader/species/views.py b/uploader/species/views.py index 10715a5..9ad5254 100644 --- a/uploader/species/views.py +++ b/uploader/species/views.py @@ -1,6 +1,8 @@ """Endpoints handling species.""" from pymonad.either import Left, Right, Either +from gn_libs.mysqldb import database_connection from flask import (flash, + escape, request, url_for, redirect, @@ -10,7 +12,6 @@ from flask import (flash, from uploader.population import popbp from uploader.platforms import platformsbp from uploader.ui import make_template_renderer -from uploader.db_utils import database_connection from uploader.oauth2.client import oauth2_get, oauth2_post from uploader.authorisation import require_login, require_token from uploader.datautils import order_by_family, enumerate_sequence @@ -62,6 +63,8 @@ def create_species(): if request.method == "GET": return render_template("species/create-species.html", families=species_families(conn), + return_to=( + request.args.get("return_to") or ""), activelink="create-species") error = False @@ -79,7 +82,7 @@ def create_species(): error = True parts = tuple(name.strip() for name in scientific_name.split(" ")) - if len(parts) != 2 or not all(bool(name) for name in parts): + if (len(parts) != 2 and len(parts) != 3) or not all(bool(name) for name in parts): flash("The scientific name you provided is invalid.", "alert-danger") error = True @@ -113,7 +116,15 @@ def create_species(): species = save_species( conn, common_name, scientific_name, family, taxon_id) - flash("Species saved successfully!", "alert-success") + flash( + f"You have successfully added species " + f"'{escape(species['scientific_name'])} " + f"({escape(species['common_name'])})'.", + "alert-success") + + return_to = request.form.get("return_to").strip() + if return_to: + return redirect(url_for(return_to, species_id=species["species_id"])) return redirect(url_for("species.view_species", species_id=species["species_id"])) |