def update_or_create(provider_data):
    provider = PreprintProvider.load(provider_data['_id'])
    if provider:
        for key, val in provider_data.iteritems():
            setattr(provider, key, val)
        changed_fields = provider.save()
        if changed_fields:
            print('Updated {}: {}'.format(provider.name, changed_fields))
        return provider, False
    else:
        new_provider = PreprintProvider(**provider_data)
        new_provider.save()
        provider = PreprintProvider.load(new_provider._id)
        print('Added new preprint provider: {}'.format(provider._id))
        return new_provider, True
예제 #2
0
def update_or_create(provider_data):
    provider = PreprintProvider.load(provider_data['_id'])
    if provider:
        for key, val in provider_data.iteritems():
            setattr(provider, key, val)
        changed_fields = provider.save()
        if changed_fields:
            print('Updated {}: {}'.format(provider.name, changed_fields))
        return provider, False
    else:
        new_provider = PreprintProvider(**provider_data)
        new_provider.save()
        provider = PreprintProvider.load(new_provider._id)
        print('Added new preprint provider: {}'.format(provider._id))
        return new_provider, True
def update_or_create(provider_data):
    provider = PreprintProvider.load(provider_data['_id'])
    if provider:
        provider_data['subjects_acceptable'] = map(
            lambda rule: (map(get_subject_id, rule[0]), rule[1]),
            provider_data['subjects_acceptable']
        )
        provider_data['licenses_acceptable'] = [get_license(name) for name in provider_data['licenses_acceptable']]
        for key, val in provider_data.iteritems():
            setattr(provider, key, val)
        changed_fields = provider.save()
        if changed_fields:
            print('Updated {}: {}'.format(provider.name, changed_fields))
        return provider, False
    else:
        new_provider = PreprintProvider(**provider_data)
        new_provider.save()
        provider = PreprintProvider.load(new_provider._id)
        print('Added new preprint provider: {}'.format(provider._id))
        return new_provider, True
예제 #4
0
def update_or_create(provider_data):
    provider = PreprintProvider.load(provider_data['_id'])
    if provider:
        provider_data['subjects_acceptable'] = map(
            lambda rule: (map(get_subject_id, rule[0]), rule[1]),
            provider_data['subjects_acceptable'])
        provider_data['licenses_acceptable'] = [
            get_license(name) for name in provider_data['licenses_acceptable']
        ]
        for key, val in provider_data.iteritems():
            setattr(provider, key, val)
        changed_fields = provider.save()
        if changed_fields:
            print('Updated {}: {}'.format(provider.name, changed_fields))
        return provider, False
    else:
        new_provider = PreprintProvider(**provider_data)
        new_provider.save()
        provider = PreprintProvider.load(new_provider._id)
        print('Added new preprint provider: {}'.format(provider._id))
        return new_provider, True