Skip to main content

Django reports integrated with highcharts.

Project description

Django Model Report
===================

django reports integrated with highcharts


Demo
====

http://django-model-report.herokuapp.com


Installation
============

* Add the ``model_report`` directory to your Python path.

* Add ``model_report`` to your ``INSTALLED_APPS`` setting.

* Create file "reports.py" within any application directory (just like admin.py).

* Edit the file "reports.py" and register your reports like this:

from app.models import Browser
from model_report.report import reports, ReportAdmin

class BrowserReport(ReportAdmin):
title = _('Browser with Inline Downloads')
model = Browser
fields = [
'name',
]
list_order_by = ('name',)
type = 'report'

reports.register('browser-report', BrowserReport)

* Activate your reports calling the autodiscover in ``urls.py`` (just like admin.py).

from model_report import report
report.autodiscover()

* Add reports urls

urlpatterns = patterns('',
...
(r'', include('model_report.urls')),
...
)


Configuration
=============

Extend your reports ``from model_report.report import ReportAdmin``

class ReportExample(ReportAdmin):
pass

* Atributes

``title``:

Title of the report.

``template_name``:

Template file name to render the report.

``exports``:

List of allowed export formats.

Example:

exports = ('excel', 'pdf')

``model``:

Django model

``fields``:

List of model fields to be listed.

``list_filter``:

List of fields to filter data.

``list_order_by``:

List of fields to order data.

``list_group_by``:

List of fields to group data.

``type``:

"report" for only report.

"chart" for report and show chart graphic results.

``group_totals``:

Dictionary with field name as key and function to calculate their values.
This row is displayed after each group as their totals.

Example:

group_totals = {
'men': sum_column,
'women': sum_column
}

``report_totals``:

Dictionary with field name as key and function to calculate their values.
This row is displayed at the end of the report as the totals of all results.

Example:

report_totals = {
'men': avg_column,
'women': avg_column
}

``override_field_values``:

Dictionary with field name as key and function to parse their original values.


Example:

override_field_values = {
'men': men_format,
'women': women_format
}

``override_field_formats``:

Dictionary with field name as key and function to parse their value after ``override_field_values``.


Example:

override_field_formats = {
'men': men_format,
'women': women_format
}

``override_field_labels``:

Dictionary with field name as key and function to parse the column label.


Example:

override_field_labels = {
'men': men_label
}

``list_serie_fields``:

List of fields to group by results in chart.

``chart_types``:

List of highchart types.

Example:

chart_types = ('pie', 'column')

``inlines``:

List of other's Report related to the main report.


Contribute
==========

Clone the repo and help to be better this app :)

Project details


Release history Release notifications

History Node

0.2.1

History Node

0.2.0

History Node

0.1.9

History Node

0.1.8

History Node

0.1.7

History Node

0.1.6

History Node

0.1.5

History Node

0.1.4

History Node

0.1.3

History Node

0.1.2

History Node

0.1.1

History Node

0.1.0

History Node

0.0.9

History Node

0.0.8

History Node

0.0.7

This version
History Node

0.0.6

History Node

0.0.5

History Node

0.0.4

History Node

0.0.3

History Node

0.0.2

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page