From 8c74a230f9b7041b70d06a901ed60189a32144e2 Mon Sep 17 00:00:00 2001 From: jpizarro Date: Mon, 13 Jan 2025 09:58:35 +0100 Subject: [PATCH] Trying stuff... --- bam_masterdata/datamodel/collection_types.py | 12 ++++++++++ bam_masterdata/metadata/entities.py | 25 ++++++++++---------- 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/bam_masterdata/datamodel/collection_types.py b/bam_masterdata/datamodel/collection_types.py index fd95c03..8e13192 100644 --- a/bam_masterdata/datamodel/collection_types.py +++ b/bam_masterdata/datamodel/collection_types.py @@ -315,3 +315,15 @@ class MeasurementsCollection(CollectionType): show_in_edit_views=False, section="Comments", ) + + +from decouple import config as environ + +from bam_masterdata.logger import logger +from bam_masterdata.openbis.login import ologin + +openbis = ologin(url=environ("OPENBIS_URL")) + +Collection().to_openbis(logger=logger, openbis=openbis) +DefaultExperiment().to_openbis(logger=logger, openbis=openbis) +MeasurementsCollection().to_openbis(logger=logger, openbis=openbis) diff --git a/bam_masterdata/metadata/entities.py b/bam_masterdata/metadata/entities.py index 778473a..ca57c89 100644 --- a/bam_masterdata/metadata/entities.py +++ b/bam_masterdata/metadata/entities.py @@ -93,8 +93,9 @@ def to_openbis( openbis_entities = getattr( OpenbisEntities(url=openbis.url), f"get_{type}_dict" )() - if self.defs.code in openbis_entities.keys(): - obis_entity = openbis_entities.get(self.defs.code) + defs = getattr(self, "defs") + if defs.code in openbis_entities.keys(): + obis_entity = openbis_entities.get(defs.code) for key in self.model_fields.keys(): obis_attr = type_map.get(key) value = obis_entity.get(obis_attr) @@ -104,7 +105,7 @@ def to_openbis( continue # Check if the value has changed - if value != getattr(self.defs, key): + if value != getattr(defs, key): # `code` are immutable if they exist already in openBIS if key == "code": logger.critical( @@ -115,21 +116,21 @@ def to_openbis( # Otherwise, the attribute can be changed else: logger.warning( - f"{self.code} has changed the value for `{key}` from ``{value}`` to ``{getattr(self, key)}``, <<{datetime.now()}>>\n" + f"{defs.code} has changed the value for `{key}` from ``{value}`` to ``{getattr(self, key)}``, <<{datetime.now()}>>\n" "We will update its value in openBIS." ) - prop = openbis.get_property_type(self.defs.code) + prop = openbis.get_property_type(defs.code) # !!! print(prop) # TODO delete this and uncomment next line # setattr(prop, obis_attr, getattr(self, key)) else: # Adding it to openBIS - prop = openbis.new_property_type( - code=self.code, - description=self.description, - label=self.property_label, - dataType=self.data_type, - vocabulary=self.vocabulary_code, - metaData=self.metadata, + prop = openbis.new_property_type( # !!! + code=defs.code, + description=defs.description, + label=defs.property_label, + dataType=defs.data_type, + vocabulary=defs.vocabulary_code, + metaData=defs.metadata, ) print(prop) # TODO delete this and uncomment next line # prop.save()