Skip to content
Snippets Groups Projects
Commit d8d36fee authored by anonymous's avatar anonymous
Browse files
parents 2fee91df 031668b3
No related branches found
No related tags found
No related merge requests found
...@@ -174,15 +174,17 @@ class StatistikamtNordHarvester(ODSHBaseHarvester): ...@@ -174,15 +174,17 @@ class StatistikamtNordHarvester(ODSHBaseHarvester):
@staticmethod @staticmethod
def add_extras(package_dict, values): def add_extras(package_dict, values):
# issued sollte noch geliefert werden! # issued sollte noch geliefert werden!
package_dict['extras'].append({ #package_dict['extras'].append({
'key': 'issued', 'value': datetime.datetime.now().isoformat()}) # 'key': 'issued', 'value': datetime.datetime.now().isoformat()})
try: try:
if values['ZeitraumVon'] != "": if values['ZeitraumVon'] != "":
package_dict['extras'].append({ package_dict['extras'].append({
'key': 'temporal_start', 'value': values['ZeitraumVon']}) 'key': 'temporal_start', 'value': datetime.datetime.strptime(values['ZeitraumVon'], '%Y-%m-%d')
.isoformat()})
if values['ZeitraumBis'] != "": if values['ZeitraumBis'] != "":
package_dict['extras'].append({ package_dict['extras'].append({
'key': 'temporal_end', 'value': values['ZeitraumBis']}) 'key': 'temporal_end', 'value': datetime.datetime.strptime(values['ZeitraumBis'], '%Y-%m-%d')
.isoformat()})
except KeyError as kerr: except KeyError as kerr:
log.debug("Date not available: " + str(kerr)) log.debug("Date not available: " + str(kerr))
package_dict['extras'].append({ package_dict['extras'].append({
......
...@@ -109,7 +109,7 @@ def odsh_render_datetime(datetime_, date_format='{0.day:02d}.{0.month:02d}.{0.ye ...@@ -109,7 +109,7 @@ def odsh_render_datetime(datetime_, date_format='{0.day:02d}.{0.month:02d}.{0.ye
if not datetime_: if not datetime_:
return '' return ''
try: try:
DATETIME_FORMAT = '%Y-%m-%d' DATETIME_FORMAT = '%Y-%m-%dT%H:%M:%S'
dt = datetime.datetime.strptime( dt = datetime.datetime.strptime(
datetime_, DATETIME_FORMAT) datetime_, DATETIME_FORMAT)
return dt.strftime('%d.%m.%Y') return dt.strftime('%d.%m.%Y')
......
...@@ -77,7 +77,7 @@ def odsh_group_id_selected(selected, group_id): ...@@ -77,7 +77,7 @@ def odsh_group_id_selected(selected, group_id):
def known_spatial_uri(key, data, errors, context): def known_spatial_uri(key, data, errors, context):
value = _extract_value(key, data, 'spatial_uri') value = _extract_value(data, 'spatial_uri')
if not value: if not value:
raise toolkit.Invalid('spatial_uri:odsh_spatial_uri_error_label') raise toolkit.Invalid('spatial_uri:odsh_spatial_uri_error_label')
...@@ -115,7 +115,7 @@ def known_spatial_uri(key, data, errors, context): ...@@ -115,7 +115,7 @@ def known_spatial_uri(key, data, errors, context):
data[('extras', new_index+1, 'value')] = spatial data[('extras', new_index+1, 'value')] = spatial
def _extract_value(key, data, field): def _extract_value(data, field):
key = None key = None
for k in data.keys(): for k in data.keys():
if data[k] == field: if data[k] == field:
...@@ -123,12 +123,20 @@ def _extract_value(key, data, field): ...@@ -123,12 +123,20 @@ def _extract_value(key, data, field):
break break
if key is None: if key is None:
return None return None
return data[(key[0], key[1], 'value')] return data[(key[0], key[1], 'value')]
def _set_value(data, field, value):
key = None
for k in data.keys():
if data[k] == field:
key = k
break
if key is None:
return None
data[(key[0], key[1], 'value')] = value
def odsh_validate_extra_date(key, field, data, errors, context): def odsh_validate_extra_date(key, field, data, errors, context):
value = _extract_value(key, data, field) value = _extract_value(data, field)
if not value: if not value:
# Statistikamt Nord does not always provide temporal_start/end, # Statistikamt Nord does not always provide temporal_start/end,
...@@ -137,10 +145,10 @@ def odsh_validate_extra_date(key, field, data, errors, context): ...@@ -137,10 +145,10 @@ def odsh_validate_extra_date(key, field, data, errors, context):
raise toolkit.Invalid(field+':odsh_'+field+'_error_label') raise toolkit.Invalid(field+':odsh_'+field+'_error_label')
else: else:
try: try:
# date.split('T')[0] will yield "2012-01-01" dt=parse(value, dayfirst=True)
# no matter if the date is like "2012-01-01" or "2012-01-01T00:00:00" _set_value(data, field, dt.isoformat())
datetime.datetime.strptime( # datetime.datetime.strptime(
value.split('T')[0], '%Y-%m-%d').isoformat() # value.split('T')[0], '%Y-%m-%d').isoformat()
except ValueError: except ValueError:
raise toolkit.Invalid(field+':odsh_'+field+'_not_date_error_label') raise toolkit.Invalid(field+':odsh_'+field+'_not_date_error_label')
...@@ -168,7 +176,6 @@ def odsh_tag_string_convert(key, data, errors, context): ...@@ -168,7 +176,6 @@ def odsh_tag_string_convert(key, data, errors, context):
'''Takes a list of tags that is a comma-separated string (in data[key]) '''Takes a list of tags that is a comma-separated string (in data[key])
and parses tag names. These are added to the data dict, enumerated. They and parses tag names. These are added to the data dict, enumerated. They
are also validated.''' are also validated.'''
if isinstance(data[key], basestring): if isinstance(data[key], basestring):
tags = [tag.strip() tags = [tag.strip()
for tag in data[key].split(',') for tag in data[key].split(',')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment