diff options
author | Frederick Muriuki Muriithi | 2024-09-12 12:57:50 -0500 |
---|---|---|
committer | Frederick Muriuki Muriithi | 2024-09-12 12:57:50 -0500 |
commit | f6096e430e2bb914225823a1953c109bad89d755 (patch) | |
tree | cabaadb1985b4c078c3612242c9a342a89010d25 /uploader/species/models.py | |
parent | 1a4804305c764cb71afa472561b132278113d842 (diff) | |
download | gn-uploader-f6096e430e2bb914225823a1953c109bad89d755.tar.gz |
Save the updated species details.
Diffstat (limited to 'uploader/species/models.py')
-rw-r--r-- | uploader/species/models.py | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/uploader/species/models.py b/uploader/species/models.py index 4426b64..1abed6d 100644 --- a/uploader/species/models.py +++ b/uploader/species/models.py @@ -91,6 +91,53 @@ def save_species(conn: mdb.Connection, } +def update_species(conn: mdb.Connection, + species_id: int, + common_name: str, + scientific_name: str, + family: str, + family_order: int, + species_order: int): + """Update a species' details. + + Parameters + ---------- + conn: A connection to the MariaDB database. + species_id: The species identifier + + Key-Word Arguments + ------------------ + common_name: A layman's name for the species + scientific_name: A binomial nomenclature name for the species + family: The grouping under which the species falls + family_order: The ordering for the "family" above + species_order: The ordering of this species in relation to others + """ + with conn.cursor(cursorclass=DictCursor) as cursor: + genus, species = scientific_name.split(" ") + species = { + "species_id": species_id, + "common_name": common_name, + "common_name_lower": common_name.lower(), + "menu_name": f"{common_name} ({genus[0]}. {species.lower()})", + "scientific_name": scientific_name, + "family": family, + "family_order": family_order, + "species_order": species_order + } + cursor.execute( + "UPDATE Species SET " + "SpeciesName=%(common_name)s, " + "Name=%(common_name_lower)s, " + "MenuName=%(menu_name)s, " + "FullName=%(scientific_name)s, " + "Family=%(family)s, " + "FamilyOrderId=%(family_order)s, " + "OrderId=%(species_order)s " + "WHERE Id=%(species_id)s", + species) + + def species_families(conn: mdb.Connection) -> dict: """Retrieve the families under which species are grouped.""" with conn.cursor(cursorclass=DictCursor) as cursor: |