def project_via_fieldbook_id(fieldbook_id, project_id): '''Lookup using the internal fieldbook id and the user project_id.''' lookup = { 'extra_data__dictionary__id': fieldbook_id, 'extra_data__dictionary__project_id': project_id } return instance_for_model('infrastructure.Project', lookup)
def funders_from_related_values(value): for item in value: if item and 'sources_of_funding_name' in item: lookup = { 'name': item['sources_of_funding_name'] } yield instance_for_model('facts.Organization', lookup, create=True) return None
def initiative_type_object(x): if x: return instance_for_model( 'infrastructure.InitiativeType', transform_initiative_type_data(x), create=True ) return None
def extra_project_data(x, create=True): values_obj = { k: x.get(k, None) for k in ('id', 'project_id', 'points') if x.get(k, None) } data_obj = { 'url': x.get('record_url'), 'dictionary': values_obj, 'label': "Fieldbook data for '{}'".format(values_obj.get('project_id')) } return instance_for_model('facts.Data', data_obj, create=True)
def _process_one2one_object(self, obj, key, data): '''For one2one objects, we expect the key to be a model_label, e.g. app.ModelName''' if isinstance(data, dict): data[obj._meta.model_name] = obj try: instance = instance_for_model(key, data, create=True) if self.verbosity > 2: self.stdout.write("Created {}".format(str(instance))) except IntegrityError as e: self.stderr.write(repr(e)) self.stderr.write(repr(data)) except Exception as e: self.stderr.write(repr(e)) self.stderr.write(repr(data)) raise e else: raise CommandError("Attempted to process a one2one with non-dict data")
def funders_from_related_values(value): for item in value: if item and 'sources_of_funding_name' in item: lookup = {'name': item['sources_of_funding_name']} yield instance_for_model('facts.Organization', lookup, create=True) return None
def initiative_type_object(x): if x: return instance_for_model('infrastructure.InitiativeType', transform_initiative_type_data(x), create=True) return None