This extension allows users to report issues with datasets in a CKAN instance. It helps users to contribute in maintaining the data portal, and allows administrators to quickly discover problems, tracks them inside the portal and fix them
The extension works with the latest CKAN version, 2.9+.
For those of you not already familiar with CKAN, it is an open-source tool for creating data websites. It allows you to publish, share, manage and visualize data. It comes with a wide set of extensions that you can use to add additional features to your existing data portal, and ckanext-issues is just one of more than 200 available extensions.
Installation
To install the plugin, enter your virtualenv and install from pip or source:
pip install ckanext-isssues
Or
pip install -e git+http://github.com/keitaroinc/ckanext-issues
Create the necessary tables:
ckan -c path-to/ckan.ini issuesdb
This will also register a plugin entry point, so you now should be able to add the following to your CKAN .ini file:
ckan.plugins = issues
After you clear your cache and restart the web server, the Issues extension should be available.
Upgrade from older versions
When upgrading ckanext-issues from older code versions, you should run the issues upgrade command, in case there are any model migrations (e.g. 11th Jan 2016):
ckan -c path-to/ckan.ini issuesupdate
What it does
Once installed and enabled, the issues extension will make available a per- dataset issue tracker. The issue tracker user interface can be found at:
/dataset/{dataset-name-or-id}/issues
You can add an issue at:
/dataset/{dataset-name-or-id}/issues/new
Issues API
The issues extension also exposes its functionality as part of the standard CKAN Action API: Specifically:
/api/3/action/issue_show
/api/3/action/issue_create
/api/3/action/issue_update
/api/3/action/issue_delete
/api/3/action/issue_search
/api/3/action/issue_count
/api/3/action/issue_comment_create
/api/3/action/issue_report
/api/3/action/issue_report_clear
/api/3/action/issue_comment_report
/api/3/action/issue_comment_report_clear
Configuration
To switch-on notifications, you should set the following option in your configuration, and all users in the group will get the email.
ckanext.issues.send_email_notifications = true
If you set max_strikes then users can ‘report’ a comment as spam/abuse. If the number of users reporting a particular comment hits the max_strikes number then it is hidden, pending moderation.
ckanext.issues.max_strikes = 2
Activation
By default, issues are enabled for all datasets. If you wish to restrict issues to specific datasets or organizations, you can use these config options:
ckanext.issues.enabled_for_datasets = mydataset1 mydataset2 ...
ckanext.issues.enabled_for_organizations = department-of-transport health-regulator
Alternatively, you can switch issues on/off for particular datasets by using an extra field:
'issues_enabled': True
and you can set the default for all the other datasets (without that extra field):
ckanext.issues.enabled_without_extra = false
For the extra field to work you must not set enabled_per_dataset
or enabled_for_organizations
options.
Testing with Postgres
To run full production tests on postgres run. These are the tests that Git actions will run
pytest --ckan-ini=test.ini ckanext/issues/tests
Final thoughts
If you followed the steps above, the ckanext-issues extension is now working on your data portal and you can start tracking issues reported by users. If you have any questions about the extension or need help installing it, contact us, we’d be glad to help you out.