def _update(parameterset, name, string_value): param = _get_or_none(ExperimentParameter.objects.all(), parameterset=parameterset, name=name) if string_value: if not param: param = ExperimentParameter(parameterset=parameterset, name=name) param.string_value = string_value param.save() else: if param: param.delete()
def synchrotron_search_epn(publication): # *** Synchrotron specific *** # Search for beamline/EPN information associated with each dataset # and add to the publication. try: synch_epn_schema = Schema.objects.get( namespace='http://www.tardis.edu.au/schemas/as/' 'experiment/2010/09/21') datasets = Dataset.objects.filter(experiments=publication) synch_experiments = Experiment.objects.filter( datasets__in=datasets, experimentparameterset__schema=synch_epn_schema).exclude( pk=publication.pk).distinct() for exp in [s for s in synch_experiments if not s.is_publication()]: epn = ExperimentParameter.objects.get( name__name='EPN', name__schema=synch_epn_schema, parameterset__experiment=exp).string_value beamline = ExperimentParameter.objects.get( name__name='beamline', name__schema=synch_epn_schema, parameterset__experiment=exp).string_value epn_parameter_set = ExperimentParameterSet( schema=synch_epn_schema, experiment=publication) epn_parameter_set.save() epn_copy = ExperimentParameter( name=ParameterName.objects.get( name='EPN', schema=synch_epn_schema), parameterset=epn_parameter_set) epn_copy.string_value = epn epn_copy.save() beamline_copy = ExperimentParameter( name=ParameterName.objects.get( name='beamline', schema=synch_epn_schema), parameterset=epn_parameter_set) beamline_copy.string_value = beamline beamline_copy.save() except Schema.DoesNotExist: pass
def add_if_missing(parameterset, name, string_value=None, numerical_value=None, datetime_value=None): try: ExperimentParameter.objects.get( name__name=name, parameterset=parameterset) except ExperimentParameter.DoesNotExist: param_name = ParameterName.objects.get( name=name, schema=parameterset.schema) param = ExperimentParameter(name=param_name, parameterset=parameterset) param.string_value = string_value param.numerical_value = numerical_value param.datetime_value = datetime_value param.save()
def add_if_missing(parameterset, name, string_value=None, numerical_value=None, datetime_value=None): try: ExperimentParameter.objects.get(name__name=name, parameterset=parameterset) except ExperimentParameter.DoesNotExist: param_name = ParameterName.objects.get(name=name, schema=parameterset.schema) param = ExperimentParameter(name=param_name, parameterset=parameterset) param.string_value = string_value param.numerical_value = numerical_value param.datetime_value = datetime_value param.save()