Reporting API Reference

Developer guide for the Enezaframework reporting engine. Part of the Add Report series.

Table of Contents

  1. Overview
  2. parameters.py
  3. report_base.py
  4. report_types.py
  5. generators/
  6. views.py
  7. fields.py
  8. Related Guides

Overview

This is a condensed reference for the public API of enezareporting. Each symbol links back to its topic guide for usage. This document is intentionally table-only — no diagram adds value to a flat API listing.


parameters.py

text
BaseParameter
├── DateRangeParam(name="date_range", label="", required=False, start_field="", end_field="")
├── FKFilterParam(name="", label="", required=False, model_field="", multiple=True, queryset_filter_func=None)
├── DocumentParam(name="document_id", label="", required=True, model=None, lookup_field="pk", display_field="")
├── ChoiceParam(name="", label="", required=False, choices=None, multiple=False)
└── QueryParam(name="saved_query_id", label="", required=False, saved_query_id=None, workflow_name="")

ParameterSet(*parameters)
    .get_form_class(report_model=None, initial=None) -> Form class
    .get_filters(cleaned_data) -> (Q, kw_filters)
    .get_initial() -> dict
    .get_parameter(name) -> BaseParameter | None
    .get_parameters_of_type(param_type) -> list[BaseParameter]

See Report Parameters.


report_base.py

text
BaseReportView (abstract root)
├── TabularReportView
│   ├── SummaryReportView
│   └── DetailedReportView
├── CrosstabReportView
├── TimeSeriesReportView
├── DrillDownReportView
└── DocumentReportView

See Report Types Overview and the per-type guides.


report_types.py

text
ReportType (ABC)
├── DocumentReport
├── TabularReport
│   ├── SummaryReport
│   └── DetailedReport
├── CrosstabReport
├── TimeSeriesReport
└── DrillDownReport

HierarchyLevel(
    model,
    display_field,
    parent_field="",
    value_field="pk",
    aggregation="sum",
    label="",
    columns=None,
)

These are the metadata and validation layer inherited by the unified bases.


generators/

text
generators.tabular.TabularReportGenerator
generators.tabular.ListViewReportGenerator
generators.tabular.Chart
generators.crosstab.CrosstabReportGenerator
generators.time_series.TimeSeriesReportGenerator
generators.document.DocumentReportGenerator
generators.drilldown.DrillDownReportGenerator

See Report Generators.


views.py

text
ReportEngineView          (low-level / compatibility view)
ReportView                (legacy, backward compatible)
ModalReportView           (legacy, backward compatible)
ListReportView            (legacy, backward compatible)
ReportViewBase            (legacy, backward compatible)
ReportDesignView          (designer rendering)
DocumentReportPageView    (pk-driven document report)
BaseDocumentReport        (compatibility base for document reports)

See Report Views and Document Report Page View.


fields.py

text
ComputationField
    .create(method, field, name=None, verbose_name=None, is_summable=True)

Registered names include:
    __fb__, __total__, __balance__, __percent_to_total_balance__,
    __credit__, __debit__, __credit_quantity__, __debit_quantity__,
    __total_quantity__, __fb_quantity__, __balance_quantity__

See Migrating to Unified Report Views.