/ckanext-gbif

A CKAN extension that that connects with the GBIF API.

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

ckanext-gbif

Tests Coveralls CKAN Python Docs

A CKAN extension that that connects with the GBIF API.

Overview

This extension retrieves additional data (e.g. DQIs) from the GBIF API for a record with an associated GBIF ID.

This extension also provides some templates for displaying these data.

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

Installing from PyPI

pip install ckanext-gbif

Installing from source

  1. Clone the repository into the src folder:

    cd $INSTALL_FOLDER/src
    git clone https://github.com/NaturalHistoryMuseum/ckanext-gbif.git
  2. Activate the virtual env:

    . $INSTALL_FOLDER/bin/activate
  3. Install via pip:

    pip install $INSTALL_FOLDER/src/ckanext-gbif

Installing in editable mode

Installing from a pyproject.toml in editable mode (i.e. pip install -e) requires setuptools>=64; however, CKAN 2.9 requires setuptools==44.1.0. See our CKAN fork for a version of v2.9 that uses an updated setuptools if this functionality is something you need.

Post-install setup

  1. Add 'gbif' to the list of plugins in your $CONFIG_FILE:

    ckan.plugins = ... gbif
  2. Install lessc globally:

    npm install -g "less@~4.1"

Configuration

These are the options that can be specified in your .ini config file.

Template variables [REQUIRED]

Name Description
ckanext.gbif.organisation_key For linking to the dataset publisher (i.e. https://gbif.org/publisher/ORG_KEY)
ckanext.gbif.dataset_key For linking to the dataset itself (i.e. https://gbif.org/dataset/DATA_KEY)

Usage

Actions

gbif_record_show

Get the associated GBIF data for a record.

from ckan.plugins import toolkit

gbif_record = toolkit.get_action(u'gbif_record_show')(context, {
    u'occurrence_id': record_gbif_occurrence_id
    })

Templates

The templates inherit from record/specimen.html and record/dwc.html and will insert a link to the GBIF view in the content_primary_nav block.

Testing

There is a Docker compose configuration available in this repository to make it easier to run tests. The ckan image uses the Dockerfile in the docker/ folder.

To run the tests against ckan 2.9.x on Python3:

  1. Build the required images:

    docker compose build
  2. 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