ERROR [ckan.config.middleware.flask_app] Helper 'truncate' has not been defined.
Traceback (most recent call last):
File "/usr/lib/ckan/venv/src/ckan/ckan/lib/helpers.py", line 93, in __getitem__
value = super(HelperAttributeDict, self).__getitem__(key)
KeyError: 'truncate'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/ckan/venv/lib/python3.8/site-packages/flask/app.py", line 1516, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/ckan/venv/lib/python3.8/site-packages/flask/app.py", line 1502, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
File "/usr/lib/ckan/venv/src/ckan/ckan/config/middleware/../../views/dataset.py", line 381, in search
return base.render(
File "/usr/lib/ckan/venv/src/ckan/ckan/lib/base.py", line 101, in render
return flask_render_template(template_name, **extra_vars)
File "/usr/lib/ckan/venv/lib/python3.8/site-packages/flask/templating.py", line 147, in render_template
return _render(
File "/usr/lib/ckan/venv/lib/python3.8/site-packages/flask/templating.py", line 128, in _render
rv = template.render(context)
File "/usr/lib/ckan/venv/lib/python3.8/site-packages/jinja2/environment.py", line 1304, in render
self.environment.handle_exception()
File "/usr/lib/ckan/venv/lib/python3.8/site-packages/jinja2/environment.py", line 925, in handle_exception
raise rewrite_traceback_stack(source=source)
File "/usr/lib/ckan/venv/lib/python3.8/site-packages/ckanext/harvest/plugin/../templates/source/search.html", line 11, in top-level template code
{% if g.ckan_base_version.startswith('2.0') %}
File "/usr/lib/ckan/venv/src/ckan/ckan/templates/page.html", line 1, in top-level template code
{% extends "base.html" %}
File "/usr/lib/ckan/venv/lib/python3.8/site-packages/ckanext/harvest/plugin/../templates/base.html", line 1, in top-level template code
{% ckan_extends %}
File "/usr/lib/ckan/venv/src/ckan/ckan/templates/base.html", line 106, in top-level template code
{%- block page %}{% endblock -%}
File "/usr/lib/ckan/venv/src/ckan/ckan/templates/page.html", line 19, in block 'page'
{%- block content %}
File "/usr/lib/ckan/venv/src/ckan/ckan/templates/page.html", line 22, in block 'content'
{% block main_content %}
File "/usr/lib/ckan/venv/src/ckan/ckan/templates/page.html", line 74, in block 'main_content'
{% block primary %}
File "/usr/lib/ckan/venv/src/ckan/ckan/templates/page.html", line 87, in block 'primary'
{% block primary_content %}
File "/usr/lib/ckan/venv/lib/python3.8/site-packages/ckanext/harvest/plugin/../templates/source/search.html", line 52, in block 'primary_content'
{{ h.snippet('snippets/source_list.html', sources=c.page.items, show_organization=true) }}
File "/usr/lib/ckan/venv/src/ckan/ckan/lib/helpers.py", line 1874, in snippet
return base.render_snippet(template_name, **kw)
File "/usr/lib/ckan/venv/src/ckan/ckan/lib/base.py", line 67, in render_snippet
output = render(template_name, extra_vars=kw)
File "/usr/lib/ckan/venv/src/ckan/ckan/lib/base.py", line 101, in render
return flask_render_template(template_name, **extra_vars)
File "/usr/lib/ckan/venv/lib/python3.8/site-packages/flask/templating.py", line 147, in render_template
return _render(
File "/usr/lib/ckan/venv/lib/python3.8/site-packages/flask/templating.py", line 128, in _render
rv = template.render(context)
File "/usr/lib/ckan/venv/lib/python3.8/site-packages/jinja2/environment.py", line 1304, in render
self.environment.handle_exception()
File "/usr/lib/ckan/venv/lib/python3.8/site-packages/jinja2/environment.py", line 925, in handle_exception
raise rewrite_traceback_stack(source=source)
File "/usr/lib/ckan/venv/lib/python3.8/site-packages/ckanext/harvest/plugin/../templates/snippets/source_list.html", line 20, in top-level template code
{% snippet 'snippets/source_item.html', source=source, item_class=item_class, hide_resources=hide_resources, banner=banner, truncate=truncate, truncate_title=truncate_title, within_organization=within_organization %}
File "/usr/lib/ckan/venv/src/ckan/ckan/lib/jinja_extensions.py", line 269, in _call
return base.render_snippet(*args, **kwargs)
File "/usr/lib/ckan/venv/src/ckan/ckan/lib/base.py", line 67, in render_snippet
output = render(template_name, extra_vars=kw)
File "/usr/lib/ckan/venv/src/ckan/ckan/lib/base.py", line 101, in render
return flask_render_template(template_name, **extra_vars)
File "/usr/lib/ckan/venv/lib/python3.8/site-packages/flask/templating.py", line 147, in render_template
return _render(
File "/usr/lib/ckan/venv/lib/python3.8/site-packages/flask/templating.py", line 128, in _render
rv = template.render(context)
File "/usr/lib/ckan/venv/lib/python3.8/site-packages/jinja2/environment.py", line 1304, in render
self.environment.handle_exception()
File "/usr/lib/ckan/venv/lib/python3.8/site-packages/jinja2/environment.py", line 925, in handle_exception
raise rewrite_traceback_stack(source=source)
File "/usr/lib/ckan/venv/lib/python3.8/site-packages/ckanext/harvest/plugin/../templates/snippets/source_item.html", line 26, in top-level template code
{{ h.link_to(h.truncate(title, truncate_title), url) }}
File "/usr/lib/ckan/venv/lib/python3.8/site-packages/jinja2/environment.py", line 478, in getattr
return obj[attribute]
File "/usr/lib/ckan/venv/src/ckan/ckan/lib/helpers.py", line 95, in __getitem__
raise ckan.exceptions.HelperError(
ckan.exceptions.HelperError: Helper 'truncate' has not been defined.
ckanext-harvest seems to have some problem with CKAN master. Potentially related: https://github.com/ckan/ckan/pull/6299