about summary refs log tree commit diff
diff options
context:
space:
mode:
authorzsloan2022-05-31 20:59:09 +0000
committerzsloan2022-05-31 20:59:09 +0000
commitfead71fd128f36104b0134968abc28803bc4fd0d (patch)
treeccd5bf9e89d910b26fd4e844bf240804280958ab
parent89a7868175c7594be91d638974ac1054fc3c8659 (diff)
downloadgenenetwork2-fead71fd128f36104b0134968abc28803bc4fd0d.tar.gz
Check if entered pubmed_id is already associated with a publication, and
set PublishXRef.PublicationId equal to that Id if it exists
-rw-r--r--wqflask/wqflask/metadata_edits.py26
1 files changed, 21 insertions, 5 deletions
diff --git a/wqflask/wqflask/metadata_edits.py b/wqflask/wqflask/metadata_edits.py
index cd5b7893..5a5ee4ac 100644
--- a/wqflask/wqflask/metadata_edits.py
+++ b/wqflask/wqflask/metadata_edits.py
@@ -339,12 +339,28 @@ def update_phenotype(dataset_id: str, name: str):
     }
     updated_publications = ""
     with database_connection() as conn:
-        updated_publications = update(
-            conn,
-            "Publication",
-            data=Publication(**publication_),
-            where=Publication(id_=data_.get("old_id_")),
+
+        existing_publication = fetchone(
+            conn=conn,
+            table="Publication",
+            where=Publication(pubmed_id=data_.get("pubmed-id"))
         )
+
+        if existing_publication:
+            update(
+                conn,
+                "PublishXRef",
+                data=PublishXRef(publication_id=existing_publication.id_),
+                where=PublishXRef(id_=name, inbred_set_id=dataset_id)
+            )
+        else:
+            updated_publications = update(
+                conn,
+                "Publication",
+                data=Publication(**publication_),
+                where=Publication(id_=data_.get("old_id_")),
+            )
+
     if updated_publications:
         diff_data.update(
             {