Skip to content
Snippets Groups Projects
Commit 0476f0bf authored by anonymous's avatar anonymous
Browse files

Merge branch 'ODPSH-27_spatial_uri'

parents 8bab861b d2e5d014
No related branches found
No related tags found
Loading
No preview for this file type
...@@ -87,7 +87,7 @@ msgstr "Beschreibung eingeben" ...@@ -87,7 +87,7 @@ msgstr "Beschreibung eingeben"
msgid "Enter tags" msgid "Enter tags"
msgstr "Stichwörter eingeben" msgstr "Stichwörter eingeben"
msgid "Enter spatial extension" msgid "Enter spatial uri"
msgstr "Orte eingeben" msgstr "Orte eingeben"
msgid "Enter data" msgid "Enter data"
...@@ -159,9 +159,15 @@ msgstr "Letzte Änderung" ...@@ -159,9 +159,15 @@ msgstr "Letzte Änderung"
msgid "Files" msgid "Files"
msgstr "Dateien" msgstr "Dateien"
msgid "Spatial extension" msgid "Spatial uri"
msgstr "Raumbezug" msgstr "Raumbezug"
msgid "Spatial uri: The specified URI is not known"
msgstr "Der räumliche Bezug is ungültig"
msgid "Spatial uri: Fehlender Wert"
msgstr "Bitte geben Sie einen räumlichen Bezug an"
msgid "Beginn des Zeitraumes: Fehlender Wert" msgid "Beginn des Zeitraumes: Fehlender Wert"
msgstr "Bitte wählen Sie einen Beginn des Zeitraumes aus" msgstr "Bitte wählen Sie einen Beginn des Zeitraumes aus"
...@@ -189,9 +195,6 @@ msgstr "Bitte geben Sie einen Titel ein" ...@@ -189,9 +195,6 @@ msgstr "Bitte geben Sie einen Titel ein"
msgid "odsh_publish_date_error_label" msgid "odsh_publish_date_error_label"
msgstr "Bitte wählen Sie ein Veröffentlichungsdatum" msgstr "Bitte wählen Sie ein Veröffentlichungsdatum"
msgid "odsh_spatial_extension_error_label"
msgstr "Bitte geben sie einen räumlichen Bezug an"
msgid "Tag string: Fehlender Wert" msgid "Tag string: Fehlender Wert"
msgstr "Bitte wählen Sie geeignete Schlagwörter" msgstr "Bitte wählen Sie geeignete Schlagwörter"
......
...@@ -8,6 +8,9 @@ from ckanext.odsh.lib.uploader import ODSHResourceUpload ...@@ -8,6 +8,9 @@ from ckanext.odsh.lib.uploader import ODSHResourceUpload
import ckan.lib.helpers as helpers import ckan.lib.helpers as helpers
import helpers as odsh_helpers import helpers as odsh_helpers
from routes.mapper import SubMapper from routes.mapper import SubMapper
from pylons import config
import urllib2
import csv
import logging import logging
...@@ -52,6 +55,7 @@ def odsh_convert_groups_string(value,context): ...@@ -52,6 +55,7 @@ def odsh_convert_groups_string(value,context):
def odsh_now(): def odsh_now():
return helpers.render_datetime(datetime.datetime.now(),"%Y-%m-%d") return helpers.render_datetime(datetime.datetime.now(),"%Y-%m-%d")
def odsh_group_id_selected(selected, group_id): def odsh_group_id_selected(selected, group_id):
if type(selected) is not list: if type(selected) is not list:
selected=[selected] selected=[selected]
...@@ -62,6 +66,40 @@ def odsh_group_id_selected(selected, group_id): ...@@ -62,6 +66,40 @@ def odsh_group_id_selected(selected, group_id):
return False return False
def known_spatial_uri(key, data, errors, context):
mapping_file = config.get('ckanext.odsh.spatial.mapping')
try:
mapping_file = urllib2.urlopen(mapping_file)
except Exception:
raise Exception("Could not load spatial mapping file!")
not_found = True
spatial_text = str()
spatial = str()
cr = csv.reader(mapping_file, delimiter="\t")
for row in cr:
if row[0] == data[key]:
not_found = False
spatial_text = row[1]
loaded = json.loads(row[2])
spatial = json.dumps(loaded['geometry'])
print spatial
break
if not_found:
raise toolkit.Invalid("The specified URI is not known")
# Get the current extras index
current_indexes = [k[1] for k in data.keys()
if len(k) > 1 and k[0] == 'extras']
new_index = max(current_indexes) + 1 if current_indexes else 0
data[('extras', new_index, 'key')] = 'spatial_text'
data[('extras', new_index, 'value')] = spatial_text
data[('extras', new_index+1, 'key')] = 'spatial'
data[('extras', new_index+1, 'value')] = spatial
class OdshIcapPlugin(plugins.SingletonPlugin): class OdshIcapPlugin(plugins.SingletonPlugin):
plugins.implements(plugins.IUploader, inherit=True) plugins.implements(plugins.IUploader, inherit=True)
...@@ -165,19 +203,22 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm ...@@ -165,19 +203,22 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm
return ['title','notes'] return ['title','notes']
def _extraFields(self): def _extraFields(self):
##return ['publish_date','access_constraints','temporal_start','temporal_end','spatial_extension'] return ['publish_date', 'temporal_start', 'temporal_end', 'spatial_uri']
return ['publish_date','temporal_start','temporal_end','spatial_extension']
def _extraFieldsOptional(self): def _extraFieldsOptional(self):
return ['access_constraints'] return ['access_constraints']
def _update_schema(self,schema): def _update_schema(self,schema):
for field in self._extraFields(): for field in self._extraFields():
if field == 'spatial_uri':
schema.update({field: [ schema.update({field: [
toolkit.get_converter('not_empty'), toolkit.get_converter('not_empty'),
toolkit.get_validator('ignore_missing'), toolkit.get_validator('ignore_missing'),
toolkit.get_converter('known_spatial_uri'),
toolkit.get_converter('convert_to_extras')]}) toolkit.get_converter('convert_to_extras')]})
for field in self._extraFieldsOptional(): else:
schema.update({field: [ schema.update({field: [
toolkit.get_converter('not_empty'),
toolkit.get_validator('ignore_missing'), toolkit.get_validator('ignore_missing'),
toolkit.get_converter('convert_to_extras')]}) toolkit.get_converter('convert_to_extras')]})
for field in self._fields(): for field in self._fields():
...@@ -220,5 +261,6 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm ...@@ -220,5 +261,6 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm
return [] return []
def get_validators(self): def get_validators(self):
return { 'odsh_convert_groups_string': odsh_convert_groups_string} return { 'odsh_convert_groups_string': odsh_convert_groups_string,
'known_spatial_uri': known_spatial_uri}
...@@ -35,8 +35,8 @@ Example: ...@@ -35,8 +35,8 @@ Example:
{% block spatial %} {% block spatial %}
<div class="spatial-detail info-detail"> <div class="spatial-detail info-detail">
<div>{{ _('Spatial extension') }}:</div> <div>{{ _('Spatial uri') }}:</div>
{%set ext=pkg.spatial_extension if pkg.spatial_extension else '-'%} {%set ext=pkg.spatial_uri if pkg.spatial_uri else '-'%}
<p>{{ ext }}</p> <p>{{ ext }}</p>
</div> </div>
{% endblock %} {% endblock %}
......
...@@ -155,12 +155,12 @@ is_required=true,placeholder=_('Enter title')) }} ...@@ -155,12 +155,12 @@ is_required=true,placeholder=_('Enter title')) }}
</div> </div>
{% endblock %} {% endblock %}
<!-- field spatial_extension --> <!-- field spatial_uri -->
{% set error_string = _('odsh_spatial_extension_error_label') if errors.spatial_extension %} {% set error_string = _('Spatial uri' + ': '+errors.spatial_uri[0]) if errors.spatial_uri%}
{{ form.input('spatial_extension', id='field-spatial-extension', label=_('Spatial extension'), {{ form.input('spatial_uri', id='field-spatial-uri', label=_('Spatial uri'),
value=data.spatial_extension, value=data.spatial_uri,
error=error_string, classes=['control-full'],type='text',is_required=true, error=error_string, classes=['control-full'],type='text',is_required=true,
placeholder=_('Enter spatial extension')) }} placeholder=_('Enter spatial uri')) }}
<!-- field private --> <!-- field private -->
<div class="control-group"> <div class="control-group">
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment