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 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 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)
Exemple #7
0
 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