A CKAN extension that that connects with the GBIF API.
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.
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
pip install ckanext-gbif
-
Clone the repository into the
src
folder:cd $INSTALL_FOLDER/src git clone https://github.com/NaturalHistoryMuseum/ckanext-gbif.git
-
Activate the virtual env:
. $INSTALL_FOLDER/bin/activate
-
Install via pip:
pip install $INSTALL_FOLDER/src/ckanext-gbif
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.
-
Add 'gbif' to the list of plugins in your
$CONFIG_FILE
:ckan.plugins = ... gbif
-
Install
lessc
globally:npm install -g "less@~4.1"
These are the options that can be specified in your .ini config file.
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) |
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
})
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.
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:
-
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