A Django Admin add-on which adds functionality to export data in customized forms of output.
Project description
# django-reports-admin
A Django Admin add-on which adds functionality to export data in customized forms of output,
## Requirements
Django Reports Admin requires Django 1.10 or later, and is written for Python 3.5 or later.
## Installation
pip install django-reports-admin
Then, amend your Django `settings.py` file:
INSTALLED_APPS = (
...
'reports',
...
)
Although enabled by default, you'll want to ensure
`django.contrib.contenttypes`` is within `INSTALLED_APPS`.
## Usage
Creating reports requires subclassing the `ModelReport` class and identifying a
report. This can be done with a few lines of code if you simply want to extract
the admin list view for verbatim. For example:
# This file can be named anything, but it lives well within the admin.py or
# models.py as it'll ensure your register() command is run.
# yourapp/reports.py -- This file can be named anything
from reports.base import ModelReport
class MyReport(ModelReport)
name = "Report - My Report"
Then, register the `ModelReport` against a model:
# yourapp/admin.py
from .reports import MyReport
from .models import MyModel
reports.register(MyModel, MyReport)
Upon registration, you'll see a new action with the Django Admin for that Model,
with whatever name you've provided in the `name` attribute.
For advanced report modification, subclass the following functions within your
`ModelReport` class:
`get_field_lookups` returns a list of column name-value/callback tuples. This
function is a great way to modify the columns of the report, and the exact
output of each field. It is useful if you wish to create a calculated field, or
format a date field.
`get_row_data` returns a dictionary of the data to be entered for each row.
Generally you should not need to modify this as `get_field_lookups` will be
sufficient.
`generate_output` can be modified to adjust the type of output. By default, a
CSV file is generated.
## Usage In Shell And Tests
It may be useful for you to test a report via code, either as a test or a quick
shell script. This is done without much stress:
# Assuming a defined ModelReport
from reports.base import ModelReport
from .models import MyModel
class MyReport(ModelReport):
queryset = MyModel.objects.all()
# Instantiate the report, and run it through various means
report = MyReport()
# Create a SavedReport instance
report.run_report()
# Raw output of the report (as CSV, by default)
report.generate_output()
# Output list of OrderedDicts
report.collect_data()
## Testing
Tests are run using `pytest`, and the test suite can be executed using the
MakeFile
make test
# 1.0.0
* Initial release
A Django Admin add-on which adds functionality to export data in customized forms of output,
## Requirements
Django Reports Admin requires Django 1.10 or later, and is written for Python 3.5 or later.
## Installation
pip install django-reports-admin
Then, amend your Django `settings.py` file:
INSTALLED_APPS = (
...
'reports',
...
)
Although enabled by default, you'll want to ensure
`django.contrib.contenttypes`` is within `INSTALLED_APPS`.
## Usage
Creating reports requires subclassing the `ModelReport` class and identifying a
report. This can be done with a few lines of code if you simply want to extract
the admin list view for verbatim. For example:
# This file can be named anything, but it lives well within the admin.py or
# models.py as it'll ensure your register() command is run.
# yourapp/reports.py -- This file can be named anything
from reports.base import ModelReport
class MyReport(ModelReport)
name = "Report - My Report"
Then, register the `ModelReport` against a model:
# yourapp/admin.py
from .reports import MyReport
from .models import MyModel
reports.register(MyModel, MyReport)
Upon registration, you'll see a new action with the Django Admin for that Model,
with whatever name you've provided in the `name` attribute.
For advanced report modification, subclass the following functions within your
`ModelReport` class:
`get_field_lookups` returns a list of column name-value/callback tuples. This
function is a great way to modify the columns of the report, and the exact
output of each field. It is useful if you wish to create a calculated field, or
format a date field.
`get_row_data` returns a dictionary of the data to be entered for each row.
Generally you should not need to modify this as `get_field_lookups` will be
sufficient.
`generate_output` can be modified to adjust the type of output. By default, a
CSV file is generated.
## Usage In Shell And Tests
It may be useful for you to test a report via code, either as a test or a quick
shell script. This is done without much stress:
# Assuming a defined ModelReport
from reports.base import ModelReport
from .models import MyModel
class MyReport(ModelReport):
queryset = MyModel.objects.all()
# Instantiate the report, and run it through various means
report = MyReport()
# Create a SavedReport instance
report.run_report()
# Raw output of the report (as CSV, by default)
report.generate_output()
# Output list of OrderedDicts
report.collect_data()
## Testing
Tests are run using `pytest`, and the test suite can be executed using the
MakeFile
make test
# 1.0.0
* Initial release
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
django-reports-admin-1.0.3.tar.gz
(12.0 kB
view hashes)
Close
Hashes for django-reports-admin-1.0.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | a66cd5c1fc5ef85de197b9f19a540d6fe3fc0ff6e7573622ac004f5eea7a55da |
|
MD5 | b19906c6ebffe4277388bae2fa64fc84 |
|
BLAKE2b-256 | 62cb22bced51113bb020734dde1a5f1967733cfa60d6cf8350aef75fcd5dcb9b |