A CKAN extension for a dataset gallery view.
Project description
ckanext-gallery
A CKAN extension for a dataset gallery view.
Overview
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.
Installation
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
- Clone the repository into the
src
folder:
cd $INSTALL_FOLDER/src
git clone https://github.com/NaturalHistoryMuseum/ckanext-gallery.git
- Activate the virtual env:
. $INSTALL_FOLDER/bin/activate
- Install the requirements from requirements.txt:
cd $INSTALL_FOLDER/src/ckanext-gallery
pip install -r requirements.txt
- Run setup.py:
cd $INSTALL_FOLDER/src/ckanext-gallery
python setup.py develop
- Add 'gallery' to the list of plugins in your
$CONFIG_FILE
:
ckan.plugins = ... gallery
Configuration
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 |
Usage
To use as a view, the 'Gallery' type should be available after installing the plugin.
Interfaces
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
Templates
Gallery block snippet
{% snippet 'gallery/snippets/gallery.html', images=g.images, resource_id=res.id %}
Testing
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:
- Build the required images
docker-compose build
- Then run the tests. The root of the repository is mounted into the ckan container as a volume by the Docker compose configuration, so you should only need to rebuild the ckan image if you change the extension's dependencies.
docker-compose run ckan
The ckan image uses the Dockerfile in the docker/
folder which is based on openknowledge/ckan-dev:2.9
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for ckanext_gallery-2.1.0-py3.10.egg
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8c1daf2430d8660ba342cfe5de499e60c906cba5f73db3fb217bd42ebec5aabb |
|
MD5 | c6ccc83904fc066cf43d52d855c49855 |
|
BLAKE2b-256 | 3bc2ef5e5d6d4cde2d7ed511ae6d86bf4cd6596175922343a35e19cac4cb19db |
Hashes for ckanext_gallery-2.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84f40b80d1ae26e252522ab399e274b4e1b6846a624f7f2979c77bc5191652bf |
|
MD5 | 05c4ad955840ad4732a62fbc6dd03af6 |
|
BLAKE2b-256 | 078e7efa281f8f5909f2cb2e5395e0891b28adbe78ac2218175aaecc3de4d9c5 |