Skip to content
Snippets Groups Projects
Commit 7ad7263d authored by anonymous's avatar anonymous
Browse files

first draft with issued

parent bbb42062
Branches
Tags
No related merge requests found
......@@ -108,3 +108,20 @@ def odsh_upload_known_formats():
def odsh_encodeurl(url):
return urllib.quote(url, safe='')
def odsh_extract_error(key, errors):
if not errors or not ('extras' in errors):
return None
ext = errors['extras']
for item in ext:
if 'key' in item:
for error in item['key']:
if error.startswith(key):
return error.replace(key+':','')
def odsh_extract_value_from_extras(extras, key):
if not extras:
return None
for item in extras:
if 'key' in item and item['key'].lower() == key:
return item['value']
\ No newline at end of file
No preview for this file type
......@@ -198,6 +198,10 @@ msgstr "Bitte geben Sie einen Titel ein"
msgid "odsh_issued_error_label"
msgstr "Bitte wählen Sie ein Veröffentlichungsdatum"
msgid "odsh_issued_not_date_error_label"
msgstr "Bitte wählen Sie ein korrektes Veröffentlichungsdatum"
msgid "Tag string: Fehlender Wert"
msgstr "Bitte wählen Sie geeignete Schlagwörter"
......
......@@ -87,8 +87,6 @@ def known_spatial_uri(key, data, errors, context):
spatial = str()
cr = csv.reader(mapping_file, delimiter="\t")
for row in cr:
print(data[key])
print(row[0])
if row[0] == data[key]:
not_found = False
spatial_text = row[1]
......@@ -109,6 +107,30 @@ def known_spatial_uri(key, data, errors, context):
data[('extras', new_index+1, 'key')] = 'spatial'
data[('extras', new_index+1, 'value')] = spatial
def _extract_value(key,data,field):
key = None
for k in data.keys():
if data[k] == field:
key = k
break
if key is None:
return None
return data[(key[0],key[1],'value')]
def odsh_validate_issued(key, data, errors, context):
value = _extract_value(key,data,'issued')
if not value:
raise toolkit.Invalid('issued:odsh_issued_error_label')
try:
datetime.datetime.strptime(value, '%Y-%m-%d')
except ValueError:
raise toolkit.Invalid('issued:odsh_issued_not_date_error_label')
def odsh_tag_name_validator(value, context):
tagname_match = re.compile('[\w \-.\:\(\)]*$', re.UNICODE)
......@@ -180,7 +202,9 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm
'odsh_get_spatial_text': odsh_helpers.odsh_get_spatial_text,
'odsh_render_datetime': odsh_helpers.odsh_render_datetime,
'odsh_upload_known_formats': odsh_helpers.odsh_upload_known_formats,
'odsh_encodeurl': odsh_helpers.odsh_encodeurl
'odsh_encodeurl': odsh_helpers.odsh_encodeurl,
'odsh_extract_error': odsh_helpers.odsh_extract_error,
'odsh_extract_value_from_extras': odsh_helpers.odsh_extract_value_from_extras
}
def before_map(self, map):
......@@ -251,7 +275,7 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm
return ['title', 'notes']
def _extraFields(self):
return ['issued', 'temporal_start', 'temporal_end', 'spatial_uri', 'licenseAttributionByText']
return ['temporal_start', 'temporal_end', 'spatial_uri', 'licenseAttributionByText']
def _update_schema(self, schema):
for field in self._extraFields():
......@@ -284,6 +308,11 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm
'format': [toolkit.get_converter('not_empty')]
})
schema['extras'].update({
'key': [toolkit.get_converter('odsh_validate_issued')]
})
def create_package_schema(self):
schema = super(OdshPlugin, self).create_package_schema()
self._update_schema(schema)
......@@ -315,6 +344,7 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm
def get_validators(self):
return {'odsh_convert_groups_string': odsh_convert_groups_string,
'known_spatial_uri': known_spatial_uri,
'odsh_validate_issued': odsh_validate_issued,
'odsh_tag_name_validator': odsh_tag_name_validator}
def extend_search_convert_local_to_utc_timestamp(self, str_timestamp):
......@@ -378,8 +408,6 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm
fq = '{fq} ({start_query} OR {end_query} {enclosing_query})'.format(
fq=fq, start_query=start_query, end_query=end_query, enclosing_query=enclosing_query)
print(fq)
# return modified facet queries
search_params['fq'] = fq
......
......@@ -60,8 +60,8 @@ Example:
{% block last_change %}
<div class="last-change-detail info-detail">
{%set issued=h.odsh_render_datetime(pkg.issued) if pkg.issued else
h.odsh_render_datetime(pkg.metadata_created)%}
{% set value = h.odsh_extract_value_from_extras(pkg.extras,'issued')%}
{% set issued = h.odsh_render_datetime(value) if value else h.odsh_render_datetime(pkg.metadata_created)%}
<div>{{ _('issued') }}:</div>
{{issued}}
</div>
......
......@@ -95,11 +95,28 @@ is_required=true,placeholder=_('Enter title')) }}
</div>
<!-- field issued -->
{% set issued_value=data.issued if data.issued else h.odsh_now() %}
{% set error_string = _('odsh_issued_error_label') if errors.issued %}
{% set issued_label='Veröffentlichungsdatum'%}
{{ form.input('issued', id='field-issued', label=issued_label, value=issued_value,
error=error_string, classes=['control-full'], type='date', is_required=true) }}
{% set field='issued' %}
{% set value = h.odsh_extract_value_from_extras(data.extras,field)%}
{% set value_extras = value if value else h.odsh_now() %}
{% set index = 4 %}
<div class="control-group control-full">
<label class="control-label" for="field-{{field}}">Veröffentlichungsdatum: <span title="Dieses Feld ist erforderlich" class="control-required">*</span> </label>
<div class="controls">
<div class="row-fluid">
<div class="span6">
<input id="field-{{field}}-key" type="hidden" name="extras__{{index}}__key" value="{{field}}" />
<input id="field-{{field}}-value" type="text" name="extras__{{index}}__value" value="{{value_extras}}" />
</div>
<div class="span6 inline-error">
{% if h.odsh_extract_error(field, errors) %}
{{_(h.odsh_extract_error(field, errors))}}
{% endif %}
</div>
</div>
</div>
</div>
<!-- field tags -->
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment