about summary refs log tree commit diff
path: root/uploader/population/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'uploader/population/views.py')
-rw-r--r--uploader/population/views.py24
1 files changed, 22 insertions, 2 deletions
diff --git a/uploader/population/views.py b/uploader/population/views.py
index 3be46d4..e21465c 100644
--- a/uploader/population/views.py
+++ b/uploader/population/views.py
@@ -14,7 +14,8 @@ from uploader.species.models import (all_species,
                                      order_species_by_family)
 
 from .models import (save_population,
-                     populations_by_species)
+                     populations_by_species,
+                     population_by_species_and_id)
 
 __active_link__ = "populations"
 popbp = Blueprint("populations", __name__)
@@ -117,4 +118,23 @@ def create_population(species_id: int):
 @require_login
 def view_population(species_id: int, population_id: int):
     """View the details of a population."""
-    raise NotImplementedError("Please implement this too …")
+    with database_connection(app.config["SQL_URI"]) as conn:
+        species = species_by_id(conn, species_id)
+        population = population_by_species_and_id(conn, species_id, population_id)
+        error = False
+
+        if not bool(species):
+            flash("You must select a species.", "alert-danger")
+            error = True
+
+        if not bool(population):
+            flash("You must select a population.", "alert-danger")
+            error = True
+
+        if error:
+            return redirect(url_for("species.populations.index"))
+
+        return render_template("populations/view-population.html",
+                               species=species,
+                               population=population,
+                               activelink="view-population")