Skip to main content

A CKAN extension that provides a user interface to download resources with ckanpackager.

Project description

ckanext-ckanpackager

Tests Coveralls CKAN Python

A CKAN extension that provides a user interface to download resources with ckanpackager.

Overview

This extension will not work without ckanpackager.

Ckanpackager is a stand-alone service that can be instructed to fetch data on a CKAN site using the datastore API, pack the data in a ZIP file and email the link to a given address. See the ckanpackager github page for more information.

The extension provides an HTML snippet that can be used to replace the Download button on resources. The new button will:

  • Provide an overlay explaining the link will be sent later on;
  • Provide a form for users to enter the destination email address;
  • On resource pages, the button will ensure that currently applied filters and searches are forwarded on to the ckanpackager service.

This extension uses a database table in the CKAN database to store stats about packaging events.

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
  1. Clone the repository into the src folder:
cd $INSTALL_FOLDER/src
git clone https://github.com/NaturalHistoryMuseum/ckanext-ckanpackager.git
  1. Activate the virtual env:
. $INSTALL_FOLDER/bin/activate
  1. Install the requirements from requirements.txt:
cd $INSTALL_FOLDER/src/ckanext-ckanpackager
pip install -r requirements.txt
  1. Run setup.py:
cd $INSTALL_FOLDER/src/ckanext-ckanpackager
python setup.py develop
  1. Add 'ckanpackager' to the list of plugins in your $CONFIG_FILE:
ckan.plugins = ... ckanpackager

Configuration

There are two options that must be specified in your .ini config file.

[REQUIRED]

Name Description Options
ckanpackager.url URL to the ckanpackager endpoint
ckanpackager.secret Shared secret with the ckanpackager instance

Further Steps

  1. Initialise the database table:
ckan -c $CONFIG_FILE ckanpackager initdb

Usage

Actions

packager_stats

Provides statistical information about the download requests made to the packager. All of the items in the data_dict are optional.

from ckan.plugins import toolkit

data_dict = {
                'resource_id': RESOURCE_ID,
                'offset': 0,
                'limit': 100,
                'email': REQUESTER_EMAIL
            }

toolkit.get_action('packager_stats')(
    context,
    data_dict
)

Commands

initdb

Initialises the ckanpackager database tables.

ckan -c $CONFIG_FILE ckanpackager initdb

Templates

Add the following snippet to templates where you want the button to appear:

{% snippet 'ckanpackager/snippets/package_resource.html',
   res=res, pkg=pkg, bt_class="fas fa-download", bt_text=_('Download')
%}

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:

  1. Build the required images
docker-compose build
  1. 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-py2.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ckanext-ckanpackager-2.1.3.tar.gz (25.0 kB view details)

Uploaded Source

Built Distributions

ckanext_ckanpackager-2.1.3-py3.10.egg (19.5 kB view details)

Uploaded Source

ckanext_ckanpackager-2.1.3-py3-none-any.whl (21.8 kB view details)

Uploaded Python 3

File details

Details for the file ckanext-ckanpackager-2.1.3.tar.gz.

File metadata

  • Download URL: ckanext-ckanpackager-2.1.3.tar.gz
  • Upload date:
  • Size: 25.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.8

File hashes

Hashes for ckanext-ckanpackager-2.1.3.tar.gz
Algorithm Hash digest
SHA256 f6dfeab83a76eb4201056f7df9166537d6605c884c13301698d63466d4d493a1
MD5 c033f2dfa25d572f7ff6165d085d84e1
BLAKE2b-256 f63d9bc1dfaf7d188fce24f5c092d07dba45608be8aa2a88e3caaae5e1b6471f

See more details on using hashes here.

File details

Details for the file ckanext_ckanpackager-2.1.3-py3.10.egg.

File metadata

File hashes

Hashes for ckanext_ckanpackager-2.1.3-py3.10.egg
Algorithm Hash digest
SHA256 4fd2e8cf77594e7936cda7e50172500306b44afdac865367f648066ce5930159
MD5 0b6034d2036f657a4a0e5ec40bf752b1
BLAKE2b-256 480d72b2e6f95b9986af99c7d0f1f0e74a3df2202a0ec6f7e14c63adc5fd86bb

See more details on using hashes here.

File details

Details for the file ckanext_ckanpackager-2.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for ckanext_ckanpackager-2.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 987bb36077941df8c14c4e640f21e0dfc6f7ed9f5c13187d126704b2a26726a2
MD5 89f765aeb5fd8e89840875eb01c09ab6
BLAKE2b-256 4aa6d563f679d0b5c927f3e3be09bef945d4bb44d20b0d7867582afc90cda362

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page