Skip to content
This repository has been archived by the owner on Oct 18, 2023. It is now read-only.

GSA/ckanext-metrics_dashboard

Repository files navigation

ckanext-metrics_dashboard

GitHub Actions PyPI version

A CKAN extension to display metrics about harvest sources.

Features

  • ${CKAN_URL}/report/metrics_dashboard

    • Displays a summary report of number of datasets and harvest sources for each organization
  • ${CKAN_URL}/report/metrics_dashboard/{org}

    • Displays a detailed report of each harvest source in an organization, where org is the ID of your organization
  • CSV Export: A comprehensive table of all harvest sources

  • JSON Export: CSV raw data plus a second key table_data_by_org that includes the same data grouped by organization

This extension is compatible with these versions of CKAN.

CKAN version Compatibility
<=2.8 ???
2.9 yes (with ckanext-datagovtheme==0.1.*)
2.10 yes (with ckanext-datagovtheme>=0.2.1)

Usage

Requirements

These extensions are required for metrics_dashboard:

Development

Requirements

  • GNU Make
  • Docker Compose

Setup

Build the docker containers. You'll want to do this anytime the dependencies change (requirements.txt, dev-requirements.txt).

$ make build

Start the containers.

$ make up

CKAN will start at localhost:5000.

Start the containers, but don't start ckan. More debugging instructions here

$ make debug

Open a shell to run commands in the container.

$ docker-compose exec app bash

If you're unfamiliar with docker-compose, see our cheatsheet and the official docs.

Clean the containers and remove the data.

$ make clean

For additional make targets, see the help.

$ make help

Testing

They follow the guidelines for testing CKAN extensions.

To run the extension tests:

$ make test

Lint your code.

$ make lint

Debugging

We have not determined a good way for most IDE native debugging, however you can use the built in Python pdb debugger. Simply run make debug, which will run docker with an interactive shell. Add import pdb; pdb.set_trace() anywhere you want to start debugging, and if the code is triggered you should see a command prompt waiting in the shell. Use a pdb cheat sheet when starting to learn like this.

When you edit/add/remove code, the server is smart enough to restart. If you are editing logic that is not part of the webserver (ckan command, etc) then you should be able to run the command after edits and get the same debugger prompt.

  1. Launch the containers with make debug
  2. Start the CKAN process by running ./start_ckan_development.sh
  3. Add import ibdb; ipdb.set_trace() at the point you wish to debug.
  4. Invoke that code to hit that breakpoint.