Esempio n. 1
0
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()
Esempio n. 2
0
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
Esempio n. 3
0
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
Esempio n. 4
0
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()
Esempio n. 5
0
 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()
Esempio n. 6
0
 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()