This CKAN extension adds support for generation and display of thumbnail
images. The helper function thumbnail_url can be called from a template, as in this example:
{% block thumbnail %}
{% set thumbnail = h.thumbnail_url(package.id) %}
{% if thumbnail %}
<a href="{{ h.url_for(controller='package', action='read', id=package.name) }}">
<img class="dataset-list-thumbnail" src="{{ thumbnail }}">
</a>
{% endif %}
{% endblock %}
- If a resource exists with the name
thumbnail.png, this will be used. - If no resource exists with this name and the logged-in user has sufficient access, the thumbnail will be generated from the first matching JPEG or PNG resource.
- If no thumbnail exists at this point, a placeholder image will be used.
- CKAN 2.5.2
- Pillow 3.2.0 (with PngImagePlugin and JpegImagePlugin)
To install ckanext-datasetthumbnail:
Activate your CKAN virtual environment, for example:
. /usr/lib/ckan/default/bin/activate
Install the ckanext-datasetthumbnail Python package into your virtual environment:
pip install ckanext-datasetthumbnail
Add
datasetthumbnailto theckan.pluginssetting in your CKAN config file (by default the config file is located at/etc/ckan/default/production.ini).Restart CKAN. For example if you've deployed CKAN with Apache on Ubuntu:
sudo service apache2 reload
# Show thumbnails # (optional, default: False). ckan.datasetthumbnail.show_thumbnail = True # Autogenerate thumbnails # (optional, default: False). ckan.datasetthumbnail.auto_generate = True # Generated thumbnail width # (optional, default: 140). ckan.datasetthumbnail.thumbnail_width = 140 # Generated thumbnail height # (optional, default: int(width * 1.415) ckan.datasetthumbnail.thumbnail_height = 140
To install ckanext-datasetthumbnail for development, activate your CKAN virtualenv and do:
git clone https://github.com/aptivate/ckanext-datasetthumbnail.git cd ckanext-datasetthumbnail python setup.py develop pip install -r dev-requirements.txt
To run the tests, do:
nosetests --nologcapture --with-pylons=test.ini
To run the tests and produce a coverage report, first make sure you have
coverage installed in your virtualenv (pip install coverage) then run:
nosetests --nologcapture --with-pylons=test.ini --with-coverage --cover-package=ckanext.datasetthumbnail --cover-inclusive --cover-erase --cover-tests
ckanext-datasetthumbnail should be availabe on PyPI as https://pypi.python.org/pypi/ckanext-datasetthumbnail. If that link doesn't work, then you can register the project on PyPI for the first time by following these steps:
Create a source distribution of the project:
python setup.py sdist
Register the project:
python setup.py register
Upload the source distribution to PyPI:
python setup.py sdist upload
Tag the first release of the project on GitHub with the version number from the
setup.pyfile. For example if the version number insetup.pyis 0.0.1 then do:git tag 0.0.1 git push --tags
ckanext-datasetthumbnail is availabe on PyPI as https://pypi.python.org/pypi/ckanext-datasetthumbnail. To publish a new version to PyPI follow these steps:
Update the version number in the
setup.pyfile. See PEP 440 for how to choose version numbers.Create a source distribution of the new version:
python setup.py sdist
Upload the source distribution to PyPI:
python setup.py sdist upload
Tag the new release of the project on GitHub with the version number from the
setup.pyfile. For example if the version number insetup.pyis 0.0.2 then do:git tag 0.0.2 git push --tags
Copyright (c) 2016 MapAction. Developed by Aptivate.
Development of v1 of this plugin was funded by ECHO.
