Skip to main content

An app to explore your data through charts based on Highcharts.js

Project description

=============================
django_charts
=============================

.. image:: https://badge.fury.io/py/acdh-django-charts.svg
:target: https://badge.fury.io/py/acdh-django-charts

.. image:: https://travis-ci.org/acdh-oeaw/acdh-django-charts.svg?branch=master
:target: https://travis-ci.org/acdh-oeaw/acdh-django-charts

.. image:: https://codecov.io/gh/acdh-oeaw/acdh-django-charts/branch/master/graph/badge.svg
:target: https://codecov.io/gh/acdh-oeaw/acdh-django-charts

An app to explore your data through charts based on Highcharts.js

Documentation
-------------

The full documentation is at https://acdh-django-charts.readthedocs.io.

Quickstart
----------

Install django_charts::

pip install acdh-django-charts

Add it to your `INSTALLED_APPS`:

.. code-block:: python

INSTALLED_APPS = (
...
'charts',
...
)

Add django_charts's URL patterns:

.. code-block:: python

urlpatterns = [
...
url(r'^charts/', include('charts.urls', namespace='charts')),
...
]

By default the app's templates extend a base template `webpage/base.html`. To ovveride this, just define a `CHARTS_BASE_TEMPLATE` variable on your project's `settings.py` like e.g:

.. code-block:: python

CHARTS_BASE_TEMPLATE = 'base.html'

To link to the application's 'chart-selector-view' you can add something like the snippet below to your e.g. base-template:

.. code-block:: html

<a href="{% url 'charts:chart_selector' %}">Charts</a>

Configuration
----

To visualize any property of your model you have to pass in the models name (lowercase), the field-path (using django's lookup syntax `__` to follow foreign key and many2many relations) and the chart type (bar|line|pie) via keyword arguments to the `charts.views.DynChartView()`. In case those params are valid (i.d. the model and the lookup path acutally exist) the according chart should be drawn. But be aware that this only works if your project's `DEBUG` settings are set to `True`.
As **recomended** alternative you should create `ChartConfig` objects for each property/model you'd like to explore via django admin-backend.


Build and publish
-----

.. code-block:: console

python setup.py sdist bdist_wheel
twine upload dist/*



Features
--------

* Visualizes aggregated values of your models as charts (pie/bar/line) using https://www.highcharts.com/
* Charts can be configured via admin backend (see Configuration Section)

Running Tests
-------------

Does the code actually work?

::

source <YOURVIRTUALENV>/bin/activate
(myenv) $ pip install tox
(myenv) $ tox

Credits
-------

Tools used in rendering this package:

* Cookiecutter_
* `cookiecutter-djangopackage`_

.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`cookiecutter-djangopackage`: https://github.com/pydanny/cookiecutter-djangopackage




History
-------

0.4.0 (2018-07-10)
++++++++++++++++++

* refactoring of templates by introducing template tags

0.3.0 (2018-06-13)
++++++++++++++++++

* removed work in progress banner

0.3.0 (2018-06-05)
++++++++++++++++++

* In case of DEBUG=False only fieldpaths/models can be explored which are registerd in dedicated ChartConfig objects.

0.2.0 (2018-06-01)
++++++++++++++++++

* Base templates can now be configured in settings-param

0.1.0 (2018-06-01)
++++++++++++++++++

* First release on PyPI.


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

acdh-django-charts-0.4.0.tar.gz (12.1 kB view hashes)

Uploaded Source

Built Distribution

acdh_django_charts-0.4.0-py2.py3-none-any.whl (13.4 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page