A CKAN extension for a dataset gallery view.
Adds a gallery view for resources on a CKAN instance. Two plugins are
included in this extension: gallery
and gallery_image
.
Based on blueimp Gallery.
Path variables used below:
$INSTALL_FOLDER
(i.e. where CKAN is installed), e.g.
/usr/lib/ckan/default
$CONFIG_FILE
, e.g. /etc/ckan/default/development.ini
src
folder:cd $INSTALL_FOLDER/src
git clone https://github.com/NaturalHistoryMuseum/ckanext-gallery.git
. $INSTALL_FOLDER/bin/activate
cd $INSTALL_FOLDER/src/ckanext-gallery
pip install -r requirements.txt
cd $INSTALL_FOLDER/src/ckanext-gallery
python setup.py develop
$CONFIG_FILE
:ckan.plugins = ... gallery
There’s only one option that can be specified in the .ini
file:
Name | Description | Default |
---|---|---|
ckanext.gallery.records_per_page |
Number of images to display on a page | 32 |
To use as a view, the ‘Gallery’ type should be available after installing the plugin.
The IGalleryImage
interface allows plugins to override settings.
from ckan.plugins import SingletonPlugin, implements
from ckanext.gallery.plugins.interfaces import IGalleryImage
class YourPlugin(SingletonPlugin):
implements(IGalleryImage)
def image_info(self):
'''
Return info for this plugin. If resource type is set,
only datasets of that type will be available.
'''
return {u'title': u'Text',
u'resource_type': [u'csv', u'tsv'],
u'field_type': [u'text']}
def get_images(self, field_value, record, data_dict):
'''
Process images from a single record to return custom metadata.
The field_value depends on the image field you choose.
'''
images = [{
u'href': field_value[u'url'],
u'thumbnail': field_value[u'url'].replace(u'preview', u'thumbnail'),
u'record_id': record[u'_id']
} for img in field_value]
return image
{% snippet 'gallery/snippets/gallery.html', images=g.images, resource_id=res.id %}
Test coverage is currently extremely limited.
To run the tests in this extension, there is a Docker compose configuration available in this repository to make it easy.
To run the tests against ckan 2.9.x on Python3:
docker-compose build
docker-compose run ckan
The ckan image uses the Dockerfile in the docker/
folder which is
based on openknowledge/ckan-dev:2.9
.