Пример #1
0
def process_metadata(result):
    created = False
    dataset = None

    try:
        the_id = result['dataset_id']
        dataset = DataSet.objects.get(blackrock_id=the_id)
    except DataSet.DoesNotExist:
        dataset = DataSet()
        created = True

    original_state = dict(dataset.__dict__)

    values = process_fieldnames(result)

    dataset = process_dataset_meta_fields(dataset, values)

    dataset.location = process_location(values)
    save_if_created(created, dataset)

    for field in dataset._meta.many_to_many:
        if field.name in list(values.keys()):
            related_model = apps.et_model("portal", field.name)
            for v in values[field.name]:
                if field.name == 'url':
                    v = settings.CDRS_SOLR_FILEURL + v
                related_obj, temp_created = \
                    related_model.objects.get_or_create(name=v.strip())
                dataset.__getattribute__(field.name).add(related_obj)

    dataset.audience.add(Audience.objects.get(name='Research'))

    save_if_dirty(original_state, dataset)

    return created
Пример #2
0
def process_metadata(result):
    created = False
    dataset = None

    try:
        the_id = result['dataset_id']
        dataset = DataSet.objects.get(blackrock_id=the_id)
    except DataSet.DoesNotExist:
        dataset = DataSet()
        created = True

    original_state = dict(dataset.__dict__)

    values = process_fieldnames(result)

    dataset = process_dataset_meta_fields(dataset, values)

    dataset.location = process_location(values)
    save_if_created(created, dataset)

    for field in dataset._meta.many_to_many:
        if field.name in list(values.keys()):
            related_model = apps.et_model("portal", field.name)
            for v in values[field.name]:
                if field.name == 'url':
                    v = settings.CDRS_SOLR_FILEURL + v
                related_obj, temp_created = \
                    related_model.objects.get_or_create(name=v.strip())
                dataset.__getattribute__(field.name).add(related_obj)

    dataset.audience.add(Audience.objects.get(name='Research'))

    save_if_dirty(original_state, dataset)

    return created
Пример #3
0
def process_metadata(result):
    created = False
    dataset = None

    try:
        the_id = result['dataset_id']
        dataset = DataSet.objects.get(blackrock_id=the_id)
    except DataSet.DoesNotExist:
        dataset = DataSet()
        created = True

    original_state = dict(dataset.__dict__)

    values = process_fieldnames(result)

    for field in dataset._meta.fields:
        if field.name in values.keys():
            if isinstance(field, DateField):
                value = process_date(values[field.name][0])
            else:
                value = values[field.name][0]
            dataset.__setattr__(field.name, value)

    dataset.location = process_location(values)
    if created:
        dataset.save()

    for field in dataset._meta.many_to_many:
        if field.name in values.keys():
            related_model = get_model("portal", field.name)
            for v in values[field.name]:
                if field.name == 'url':
                    v = settings.CDRS_SOLR_FILEURL + v
                related_obj, temp_created = \
                    related_model.objects.get_or_create(name=v.strip())
                dataset.__getattribute__(field.name).add(related_obj)

    dataset.audience.add(Audience.objects.get(name='Research'))

    if _is_dirty(original_state, dict(dataset.__dict__)):
        dataset.save()

    return created
Пример #4
0
def process_metadata(result):
    created = False
    dataset = None

    try:
        the_id = result['dataset_id']
        dataset = DataSet.objects.get(blackrock_id=the_id)
    except DataSet.DoesNotExist:
        dataset = DataSet()
        created = True

    original_state = dict(dataset.__dict__)

    values = process_fieldnames(result)

    for field in dataset._meta.fields:
        if field.name in values.keys():
            if isinstance(field, DateField):
                value = process_date(values[field.name][0])
            else:
                value = values[field.name][0]
            dataset.__setattr__(field.name, value)

    dataset.location = process_location(values)
    if created:
        dataset.save()

    for field in dataset._meta.many_to_many:
        if field.name in values.keys():
            related_model = get_model("portal", field.name)
            for v in values[field.name]:
                if field.name == 'url':
                    v = settings.CDRS_SOLR_FILEURL + v
                related_obj, temp_created = \
                    related_model.objects.get_or_create(name=v.strip())
                dataset.__getattribute__(field.name).add(related_obj)

    dataset.audience.add(Audience.objects.get(name='Research'))

    if _is_dirty(original_state, dict(dataset.__dict__)):
        dataset.save()

    return created