Skip to content

Commit

Permalink
Export values for lookupfields
Browse files Browse the repository at this point in the history
  • Loading branch information
Julia Altenbuchner committed Jan 5, 2018
1 parent 27a6026 commit 52902a6
Showing 1 changed file with 14 additions and 4 deletions.
18 changes: 14 additions & 4 deletions geokey_export/utils.py
Expand Up @@ -2,6 +2,8 @@

from django.contrib.gis.geos import GEOSGeometry

from geokey.categories.models import Field, LookupField, MultipleLookupField

from .base import comment_keys, keys_obs


Expand Down Expand Up @@ -134,16 +136,24 @@ def create_observation_row(data, keys):
elif key == 'creator':
csv_row.append(str(data['meta']['creator']['display_name']))
elif key == 'creator_id':
csv_row .append(str(data['meta']['creator']['id']))
csv_row.append(str(data['meta']['creator']['id']))
elif key == 'created_at':
csv_row.append(str(data['meta']['created_at']))
elif key == 'id':
csv_row.append(str(data['id']))
else:
try:
csv_row.append(data['properties'][key].encode('utf-8'))
except AttributeError:
csv_row.append(str(data['properties'][key]))
field = Field.objects.get(key=key, category_id=data.get('meta').get('category').get('id'))
value = data['properties'][key]
if value is not None:
if isinstance(field, LookupField):
value = field.lookupvalues.get(pk=value).name
elif isinstance(field, MultipleLookupField):
values = field.lookupvalues.filter(
pk__in=value
)
value = ','.join([v.name for v in values])
csv_row.append(value.encode('utf-8'))
except:
csv_row.append('')
return csv_row

0 comments on commit 52902a6

Please sign in to comment.