aboutsummaryrefslogtreecommitdiff
path: root/uploader/species
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2025-02-17 10:50:57 -0600
committerFrederick Muriuki Muriithi2025-02-17 10:50:57 -0600
commitb32c9b3988ee5600c12b3dbded51a4fcc6754237 (patch)
tree13c6e2995ba2d125b425ebceaba680b50927c562 /uploader/species
parentd8b58c3bf6fb98fa1e8842a5e59c290e11e8b3c3 (diff)
downloadgn-uploader-b32c9b3988ee5600c12b3dbded51a4fcc6754237.tar.gz
Allow a subspecies to be provided as part of the scientific name.
Diffstat (limited to 'uploader/species')
-rw-r--r--uploader/species/models.py6
-rw-r--r--uploader/species/views.py2
2 files changed, 5 insertions, 3 deletions
diff --git a/uploader/species/models.py b/uploader/species/models.py
index 51f941c..078e1d0 100644
--- a/uploader/species/models.py
+++ b/uploader/species/models.py
@@ -58,7 +58,8 @@ def save_species(conn: mdb.Connection,
common_name: The species' common name.
scientific_name; The species' scientific name.
"""
- genus, species_name = scientific_name.split(" ")
+ genus, *species_name = scientific_name.split(" ")
+ species_name = " ".join(species_name)
families = species_families(conn)
with conn.cursor() as cursor:
cursor.execute("SELECT MAX(OrderId) FROM Species")
@@ -116,7 +117,8 @@ def update_species(# pylint: disable=[too-many-arguments]
species_order: The ordering of this species in relation to others
"""
with conn.cursor(cursorclass=DictCursor) as cursor:
- genus, species_name = scientific_name.split(" ")
+ genus, *species_name = scientific_name.split(" ")
+ species_name = " ".join(species_name)
species = {
"species_id": species_id,
"common_name": common_name,
diff --git a/uploader/species/views.py b/uploader/species/views.py
index fee5c75..a7e4d59 100644
--- a/uploader/species/views.py
+++ b/uploader/species/views.py
@@ -79,7 +79,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