about summary refs log tree commit diff
path: root/uploader
diff options
context:
space:
mode:
Diffstat (limited to 'uploader')
-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