ckanext-validation
ckanext-validation copied to clipboard
bug with `is_url` ?
CKAN errors out at line 4 of resource_schema.html
if I have uploaded a JSON file containing a schema. The error is:
File "/usr/lib/ckan/default/src/ckanext-ontario_theme/ckanext/ontario_theme/templates/internal/scheming/form_snippets/resource_schema.html", line 7, in top-level template code
{% set is_url = value and value[4:]|lower == 'http' %}
TypeError: unhashable type: 'slice'
The JSON file contains the following schema object:
{
"fields": [
{
"name": "rule",
"type": "string"
},
{
"name": "integercol",
"type": "number"
}
]
}
and this object gets assigned to the value
in line 4.
The line 4 checks if the schema is URL-based, but in this case, value
is the above object, therefore value[4:]
is invalid. Also, assuming value
= http://someaddress
, shouldn't the slice be value[:4]
?
That sounds like an error in ckanext-ontario_theme
rather than ckanext-validation
.
@ThrawnCA I tested with core CKAN and got the same error with slice.
To avoid the error I have to set something like this in resource_schema.html
:
{# % set is_url = value and value[4:]|lower == 'http' % #}
{# % set is_json = not is_url and value % #}
{% set is_url = 'http' in value %}
{% set is_json = not is_url %}