Install via pip:
pip install -e git+https://github.com/DataShades/ckanext-dataset-series.git#egg=ckanext-dataset-series
pip install -r requirements.txt
Enable the plugin:
ckan.plugins = dataset_series
Requires ckanext-scheming to be installed and configured.
Define series schema (for ordered series) using ckanext-scheming:
Series dataset schema (dataset_series type):
scheming_version: 2
dataset_type: dataset_series
dataset_fields:
# Standard dataset fields...
# Series fields
- field_name: series_order_field
preset: ds_series_order
- field_name: series_order_type
preset: ds_series_order_type
Member dataset schema (dataset type):
scheming_version: 2
dataset_type: dataset
dataset_fields:
# Standard dataset fields...
# Series membership field
- field_name: in_series
preset: ds_in_series
Usage:
Create series dataset:
- Type: dataset_series
- Define series_order_field and series_order_type for ordered series
- Or leave unordered for simple collections
Assign datasets to series:
- Set in_series field via API or UI form
- Datasets can belong to multiple series
API responses include series_navigation:
For member datasets:
{
"name": "test-dataset-in-series",
"type": "dataset",
"series_navigation": [{
"id": "...",
"name": "test-dataset-series",
"title": "Test Dataset series",
"next": {...}, # For ordered series
"previous": {...} # For ordered series
}]
}
For series datasets:
{
"name": "test-dataset-series",
"type": "dataset_series",
"series_navigation": {
"count": 4,
"first": {...}, # For ordered series
"last": {...} # For ordered series
}
}
UI navigation snippet:
Add to package/read.html template:
{% ckan_extends %}
{% block package_description %}
{% snippet "package/snippets/series_navigation.html", package=pkg %}
{{ super() }}
{% endblock %}
Snippet shows previous/next navigation links for first series.
Customize snippet for multiple series navigation.
Use cases:
- Budget data: monthly/yearly releases
- Geographic data: split by country/region
- Large datasets: chunked into smaller files
- Time series: sequential data releases
- Grid data: geospatial tile distribution
Available presets (ckanext-scheming):
- ds_series_order: for series_order_field
- ds_series_order_type: for series_order_type
- ds_in_series: for in_series field
TODO:
- Series page showing navigation of member datasets
Requirements:
- CKAN >= 2.10
- ckanext-scheming (required)
- Python >= 3.9
WARNING: Work in progress - may change at any point. Use with caution.