def datajson_create(context, data_dict): model = context['model'] new_package = create_data_dict(data_dict) owner_org = model.Group.get(new_package['owner_org']) group_name = new_package.pop('owner_name', None) new_package['name'] = _slugify(new_package['title'])[:80] existing_package = model.Package.get(new_package['name']) if existing_package: new_package[ 'name'] = new_package['name'] + '-' + new_package['id'].lower() if not owner_org: p.toolkit.get_action('organization_create')(context, { 'name': new_package['owner_org'], 'title': group_name, 'extras': [{ 'key': 'organization_type', 'value': "Federal Government" }] }) context['schema'] = schema.default_create_package_schema() context['schema']['id'] = [p.toolkit.get_validator('not_empty')] context['return_id_only'] = True return p.toolkit.get_action('package_create')(context, new_package)
def doi_create(context, data_dict): model = context['model'] new_package = data_dict source_hash = hashlib.sha1(json.dumps(data_dict, sort_keys=True)).hexdigest() new_package["extras"].append({"key": "source_hash", "value": source_hash}) new_package["extras"].append({"key": "metadata-source", "value": "doi"}) new_package["extras"].append({ "key": "source_doi_import_identifier", "value": True }) owner_org = model.Group.get( ORG_MAPPING.get(new_package['organization']['name'])) if not owner_org: print str( datetime.datetime.now()) + ' Fail to import doi id ' + new_package[ 'id'] + '. Organization ' + new_package['organization'][ 'name'] + ' does not exist.' return new_package['owner_org'] = owner_org.name group_name = new_package.pop('owner_name', None) new_package['name'] = _slugify(new_package['title'])[:80] existing_package = model.Package.get(new_package['name']) if existing_package: new_package['name'] = new_package['name'] + '-' + str(int(time.time())) resources = [] for resource in new_package['resources']: resource.pop('resource_group_id', None) resource.pop('revision_id', None) resource.pop('id', None) resources.append(resource) new_package['resources'] = resources obj = HarvestObject(guid=uuid.uuid4().hex, job=context['harvest_job'], content=context['harvestobj']) obj.save() new_package["extras"].append({"key": "harvest_object_id", "value": obj.id}) context['schema'] = schema.default_create_package_schema() context['schema']['id'] = [p.toolkit.get_validator('not_empty')] context['return_id_only'] = True p.toolkit.get_action('package_create')(context, new_package) print str( datetime.datetime.now()) + ' Imported doi id ' + new_package['id']
def datajson_create(context, data_dict): model = context['model'] new_package = create_data_dict(data_dict) owner_org = model.Group.get(new_package['owner_org']) group_name = new_package.pop('owner_name', None) new_package['name'] = _slugify(new_package['title'])[:80] existing_package = model.Package.get(new_package['name']) if existing_package: new_package['name'] = new_package['name'] + '-' + new_package['id'].lower() if not owner_org: p.toolkit.get_action('organization_create')( context, {'name': new_package['owner_org'], 'title': group_name, 'extras': [{'key': 'organization_type', 'value': "Federal Government"}]}) context['schema'] = schema.default_create_package_schema() context['schema']['id'] = [p.toolkit.get_validator('not_empty')] context['return_id_only'] = True return p.toolkit.get_action('package_create')(context, new_package)
def doi_create(context, data_dict): model = context['model'] new_package = data_dict source_hash = hashlib.sha1(json.dumps(data_dict, sort_keys=True)).hexdigest() new_package["extras"].append({"key": "source_hash", "value": source_hash}) new_package["extras"].append({"key": "metadata-source", "value": "doi"}) new_package["extras"].append({"key": "source_doi_import_identifier", "value": True}) owner_org = model.Group.get(ORG_MAPPING.get(new_package['organization']['name'])) if not owner_org: print str(datetime.datetime.now()) + ' Fail to import doi id ' + new_package['id'] + '. Organization ' + new_package['organization']['name'] + ' does not exist.' return new_package['owner_org'] = owner_org.name group_name = new_package.pop('owner_name', None) new_package['name'] = _slugify(new_package['title'])[:80] existing_package = model.Package.get(new_package['name']) if existing_package: new_package['name'] = new_package['name'] + '-' + str(int(time.time())) resources = [] for resource in new_package['resources']: resource.pop('resource_group_id', None) resource.pop('revision_id', None) resource.pop('id', None) resources.append(resource) new_package['resources'] = resources obj = HarvestObject( guid=uuid.uuid4().hex, job=context['harvest_job'], content=context['harvestobj']) obj.save() new_package["extras"].append({"key": "harvest_object_id", "value": obj.id}) context['schema'] = schema.default_create_package_schema() context['schema']['id'] = [p.toolkit.get_validator('not_empty')] context['return_id_only'] = True p.toolkit.get_action('package_create')(context, new_package) print str(datetime.datetime.now()) + ' Imported doi id ' + new_package['id']