aboutsummaryrefslogtreecommitdiff
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(
{