SYMBOL INDEX (527 symbols across 41 files) FILE: demo_proj/demo_app/apps.py class DemoAppConfig (line 4) | class DemoAppConfig(AppConfig): FILE: demo_proj/demo_app/forms.py class TotalSalesFilterForm (line 6) | class TotalSalesFilterForm(BaseReportForm, forms.Form): method get_filters (line 26) | def get_filters(self): method get_start_date (line 41) | def get_start_date(self): method get_end_date (line 44) | def get_end_date(self): FILE: demo_proj/demo_app/helpers.py function get_urls_patterns (line 55) | def get_urls_patterns(): FILE: demo_proj/demo_app/management/commands/create_entries.py function date_range (line 14) | def date_range(start_date, end_date): class Command (line 19) | class Command(BaseCommand): method handle (line 22) | def handle(self, *args, **options): FILE: demo_proj/demo_app/migrations/0001_initial.py class Migration (line 7) | class Migration(migrations.Migration): FILE: demo_proj/demo_app/migrations/0002_salestransaction_price_salestransaction_quantity.py class Migration (line 6) | class Migration(migrations.Migration): FILE: demo_proj/demo_app/migrations/0003_product_category.py class Migration (line 6) | class Migration(migrations.Migration): FILE: demo_proj/demo_app/migrations/0004_client_country_product_sku.py class Migration (line 7) | class Migration(migrations.Migration): FILE: demo_proj/demo_app/migrations/0005_product_size.py class Migration (line 6) | class Migration(migrations.Migration): FILE: demo_proj/demo_app/migrations/0006_productcategory_remove_product_category_and_more.py class Migration (line 7) | class Migration(migrations.Migration): FILE: demo_proj/demo_app/migrations/0007_monthlysalessummary.py class Migration (line 7) | class Migration(migrations.Migration): FILE: demo_proj/demo_app/models.py class Client (line 8) | class Client(models.Model): class Meta (line 12) | class Meta: method __str__ (line 16) | def __str__(self): class ProductCategory (line 20) | class ProductCategory(models.Model): method __str__ (line 23) | def __str__(self): class Product (line 27) | class Product(models.Model): class Meta (line 35) | class Meta: method __str__ (line 39) | def __str__(self): class SalesTransaction (line 43) | class SalesTransaction(models.Model): class Meta (line 57) | class Meta: method __str__ (line 61) | def __str__(self): method save (line 64) | def save( class MonthlySalesSummary (line 71) | class MonthlySalesSummary(models.Model): class Meta (line 79) | class Meta: method __str__ (line 84) | def __str__(self): FILE: demo_proj/demo_app/reports.py class ProductSales (line 14) | class ProductSales(ReportView): class TotalProductSales (line 44) | class TotalProductSales(ReportView): class TotalProductSalesByCountry (line 74) | class TotalProductSalesByCountry(ReportView): class SumValueComputationField (line 96) | class SumValueComputationField(ComputationField): class MonthlyProductSales (line 103) | class MonthlyProductSales(ReportView): class ProductSalesPerClientCrosstab (line 134) | class ProductSalesPerClientCrosstab(ReportView): class ProductSalesPerCountryCrosstab (line 158) | class ProductSalesPerCountryCrosstab(ReportView): class LastTenSales (line 181) | class LastTenSales(ListReportView): class TotalProductSalesWithCustomForm (line 200) | class TotalProductSalesWithCustomForm(TotalProductSales): class GroupByReport (line 213) | class GroupByReport(ReportView): class GroupByTraversingFieldReport (line 244) | class GroupByTraversingFieldReport(GroupByReport): class GroupByCustomQueryset (line 251) | class GroupByCustomQueryset(ReportView): method format_row (line 279) | def format_row(self, row_obj): class NoGroupByReport (line 291) | class NoGroupByReport(ReportView): class TimeSeriesReport (line 310) | class TimeSeriesReport(ReportView): class TimeSeriesReportWithSelector (line 357) | class TimeSeriesReportWithSelector(TimeSeriesReport): function get_current_year (line 377) | def get_current_year(): class TimeSeriesReportWithCustomDates (line 381) | class TimeSeriesReportWithCustomDates(TimeSeriesReport): class TimeSeriesReportWithCustomGroupByQueryset (line 394) | class TimeSeriesReportWithCustomGroupByQueryset(ReportView): class SumOfFieldValue (line 441) | class SumOfFieldValue(ComputationField): method get_time_series_field_verbose_name (line 450) | def get_time_series_field_verbose_name(cls, date_period, index, dates,... class TimeSeriesReportWithCustomDatesAndCustomTitle (line 458) | class TimeSeriesReportWithCustomDatesAndCustomTitle(TimeSeriesReportWith... class TimeSeriesWithoutGroupBy (line 485) | class TimeSeriesWithoutGroupBy(ReportView): class CrosstabReport (line 517) | class CrosstabReport(ReportView): class CrosstabWithTraversingField (line 542) | class CrosstabWithTraversingField(CrosstabReport): class CrosstabWithIds (line 548) | class CrosstabWithIds(CrosstabReport): method get_crosstab_ids (line 553) | def get_crosstab_ids(self): class CrosstabWithIdsCustomFilter (line 557) | class CrosstabWithIdsCustomFilter(CrosstabReport): class CustomCrossTabTotalField (line 572) | class CustomCrossTabTotalField(ComputationField): method get_crosstab_field_verbose_name (line 579) | def get_crosstab_field_verbose_name(cls, model, id): class CrossTabReportWithCustomVerboseName (line 587) | class CrossTabReportWithCustomVerboseName(CrosstabReport): class CustomCrossTabTotalPerSize (line 594) | class CustomCrossTabTotalPerSize(CustomCrossTabTotalField): method get_crosstab_field_verbose_name (line 596) | def get_crosstab_field_verbose_name(cls, model, id): method get_time_series_field_verbose_name (line 602) | def get_time_series_field_verbose_name(cls, date_period, index, dates,... class CrossTabReportWithCustomVerboseNameCustomFilter (line 606) | class CrossTabReportWithCustomVerboseNameCustomFilter(CrosstabWithIdsCus... class CrossTabWithTimeSeries (line 614) | class CrossTabWithTimeSeries(CrossTabReportWithCustomVerboseNameCustomFi... class ChartJSExample (line 624) | class ChartJSExample(TimeSeriesReport): class HighChartExample (line 655) | class HighChartExample(TimeSeriesReport): class ProductSalesApexChart (line 724) | class ProductSalesApexChart(ReportView): class CustomExportReport (line 769) | class CustomExportReport(GroupByReport): method export_pdf (line 775) | def export_pdf(self, report_data): method export_csv (line 781) | def export_csv(self, report_data): class ReportWithFormInitial (line 788) | class ReportWithFormInitial(ReportView): method get_initial (line 807) | def get_initial(self): class PreComputedMonthlySales (line 814) | class PreComputedMonthlySales(ReportView): class DynamicModelSalesByCountry (line 842) | class DynamicModelSalesByCountry(ReportView): FILE: demo_proj/demo_app/templatetags/slick_reporting_demo_tags.py function get_section (line 11) | def get_section(section): function get_menu (line 29) | def get_menu(context, section): function get_report_source (line 45) | def get_report_source(report): function get_report_class_label (line 53) | def get_report_class_label(report): function should_show (line 59) | def should_show(context, section): FILE: demo_proj/demo_app/tests.py class DemoSanityTests (line 14) | class DemoSanityTests(TestCase): method setUpTestData (line 16) | def setUpTestData(cls): method setUp (line 63) | def setUp(self): method test_all_pages_load (line 66) | def test_all_pages_load(self): method test_all_report_data_endpoints (line 76) | def test_all_report_data_endpoints(self): method test_precomputed_crosstab_fk_group_by_returns_data (line 87) | def test_precomputed_crosstab_fk_group_by_returns_data(self): FILE: demo_proj/demo_app/views.py class HomeView (line 6) | class HomeView(TemplateView): class Dashboard (line 10) | class Dashboard(TemplateView): FILE: demo_proj/manage.py function main (line 7) | def main(): FILE: scripts/extract_changelog.py function extract (line 10) | def extract(version: str, changelog_path: str = "CHANGELOG.md") -> str: FILE: slick_reporting/app_settings.py function get_first_of_this_year (line 9) | def get_first_of_this_year(): function get_end_of_this_year (line 14) | def get_end_of_this_year(): function get_start_date (line 19) | def get_start_date(): function get_end_date (line 24) | def get_end_date(): function get_slick_reporting_settings (line 95) | def get_slick_reporting_settings(): function get_media (line 131) | def get_media(): function get_access_function (line 135) | def get_access_function(): FILE: slick_reporting/apps.py class ReportAppConfig (line 4) | class ReportAppConfig(apps.AppConfig): method ready (line 8) | def ready(self): FILE: slick_reporting/decorators.py function report_field_register (line 1) | def report_field_register(report_field, *args, **kwargs): FILE: slick_reporting/dynamic_model.py function _make_field (line 35) | def _make_field(field_type_str, column_info, is_pk): function get_dynamic_model (line 68) | def get_dynamic_model(table_name, database="default", schema=None): FILE: slick_reporting/fields.py class ComputationField (line 12) | class ComputationField(object): method __new__ (line 62) | def __new__(cls, *args, **kwargs): method create (line 74) | def create(cls, method, field, name=None, verbose_name=None, is_summab... method __init__ (line 102) | def __init__( method _get_required_classes (line 135) | def _get_required_classes(cls): method apply_aggregation (line 139) | def apply_aggregation(self, queryset, group_by=""): method init_preparation (line 150) | def init_preparation(self, q_filters=None, kwargs_filters=None, **kwar... method prepare_custom_group_by_queryset (line 176) | def prepare_custom_group_by_queryset(self, q_filters=None, kwargs_filt... method prepare (line 186) | def prepare( method get_queryset (line 237) | def get_queryset(self): method _prepare_required_computations (line 245) | def _prepare_required_computations( method resolve (line 265) | def resolve(self, prepared_results, required_computation_results: dict... method do_resolve (line 278) | def do_resolve(self, current_obj, current_row=None): method get_dependency_value (line 283) | def get_dependency_value(self, current_obj, name): method _resolve_dependencies (line 296) | def _resolve_dependencies(self, current_obj, name=None): method extract_data (line 306) | def extract_data(self, prepared_results, current_obj): method get_full_dependency_list (line 328) | def get_full_dependency_list(cls): method get_crosstab_field_verbose_name (line 347) | def get_crosstab_field_verbose_name(cls, model, id): method get_time_series_field_verbose_name (line 359) | def get_time_series_field_verbose_name(cls, date_period, index, dates,... class FirstBalanceField (line 385) | class FirstBalanceField(ComputationField): method prepare (line 389) | def prepare( method resolve (line 407) | def resolve(self, prepared_results, required_computation_results: dict... class TotalReportField (line 416) | class TotalReportField(ComputationField): class BalanceReportField (line 425) | class BalanceReportField(ComputationField): method resolve (line 430) | def resolve(self, prepared_results, required_computation_results: dict... class PercentageToTotalBalance (line 440) | class PercentageToTotalBalance(ComputationField): method resolve (line 447) | def resolve(self, prepared_results, required_computation_results: dict... class CreditReportField (line 452) | class CreditReportField(ComputationField): method resolve (line 456) | def resolve(self, prepared_results, required_computation_results: dict... class DebitReportField (line 465) | class DebitReportField(ComputationField): method resolve (line 469) | def resolve(self, prepared_results, required_computation_results: dict... class CreditQuantityReportField (line 475) | class CreditQuantityReportField(ComputationField): method resolve (line 481) | def resolve(self, prepared_results, required_computation_results: dict... class DebitQuantityReportField (line 487) | class DebitQuantityReportField(ComputationField): method resolve (line 493) | def resolve(self, prepared_results, required_computation_results: dict... class TotalQTYReportField (line 498) | class TotalQTYReportField(ComputationField): class FirstBalanceQTYReportField (line 508) | class FirstBalanceQTYReportField(FirstBalanceField): class BalanceQTYReportField (line 518) | class BalanceQTYReportField(ComputationField): method resolve (line 525) | def resolve(self, prepared_results, required_computation_results: dict... class SlickReportField (line 534) | class SlickReportField(ComputationField): method warn (line 536) | def warn(): method create (line 544) | def create(cls, method, field, name=None, verbose_name=None, is_summab... method __new__ (line 548) | def __new__(cls, *args, **kwargs): FILE: slick_reporting/forms.py function default_formfield_callback (line 19) | def default_formfield_callback(f, **kwargs): function get_crispy_helper (line 25) | def get_crispy_helper( function get_choices_form_queryset_list (line 68) | def get_choices_form_queryset_list(qs): class OrderByForm (line 75) | class OrderByForm(forms.Form): method get_order_by (line 78) | def get_order_by(self, default_field=None): method parse_order_by_field (line 91) | def parse_order_by_field(self, order_field): class BaseReportForm (line 106) | class BaseReportForm: method get_filters (line 107) | def get_filters(self): method get_start_date (line 113) | def get_start_date(self): method get_end_date (line 116) | def get_end_date(self): method get_crosstab_compute_remainder (line 119) | def get_crosstab_compute_remainder(self): method get_crosstab_ids (line 124) | def get_crosstab_ids(self): method get_time_series_pattern (line 129) | def get_time_series_pattern(self): method get_crispy_helper (line 135) | def get_crispy_helper(self): class SlickReportForm (line 147) | class SlickReportForm(BaseReportForm): method get_start_date (line 152) | def get_start_date(self): method get_end_date (line 155) | def get_end_date(self): method get_time_series_pattern (line 158) | def get_time_series_pattern(self): method get_filters (line 161) | def get_filters(self): method crosstab_key_name (line 180) | def crosstab_key_name(self): method get_crosstab_ids (line 191) | def get_crosstab_ids(self): method get_crosstab_compute_remainder (line 204) | def get_crosstab_compute_remainder(self): method get_crispy_helper (line 207) | def get_crispy_helper(self, foreign_keys_map=None, crosstab_model=None... function _default_foreign_key_widget (line 218) | def _default_foreign_key_widget(f_field): function report_form_factory (line 225) | def report_form_factory( FILE: slick_reporting/generator.py class Chart (line 19) | class Chart: method to_dict (line 34) | def to_dict(self): class ReportGeneratorAPI (line 47) | class ReportGeneratorAPI: class ReportGenerator (line 154) | class ReportGenerator(ReportGeneratorAPI, object): method __init__ (line 163) | def __init__( method _get_fk_group_by_queryset (line 353) | def _get_fk_group_by_queryset(self, filtered_qs): method prepare_queryset (line 364) | def prepare_queryset(self, queryset): method _remove_order (line 387) | def _remove_order(self, main_queryset): method _apply_queryset_options (line 397) | def _apply_queryset_options(self, query, fields=None): method _apply_precomputed_queryset_options (line 420) | def _apply_precomputed_queryset_options(self, query): method _build_precomputed_crosstab_data (line 435) | def _build_precomputed_crosstab_data(self, queryset): method _construct_crosstab_filter (line 453) | def _construct_crosstab_filter(self, col_data, queryset_filters=None): method _prepare_report_dependencies (line 473) | def _prepare_report_dependencies(self): method get_primary_key_name (line 542) | def get_primary_key_name(self, model): method _get_record_data (line 550) | def _get_record_data(self, obj, columns): method get_report_data (line 610) | def get_report_data(self): method _default_format_row (line 624) | def _default_format_row(self, row_obj): method check_columns (line 633) | def check_columns( method _parse (line 763) | def _parse(self): method get_database_columns (line 776) | def get_database_columns(self): method get_list_display_columns (line 782) | def get_list_display_columns(self): method get_time_series_parsed_columns (line 803) | def get_time_series_parsed_columns(self): method get_time_series_field_verbose_name (line 847) | def get_time_series_field_verbose_name(self, computation_class, date_p... method get_custom_time_series_dates (line 860) | def get_custom_time_series_dates(self): method _get_time_series_dates (line 867) | def _get_time_series_dates(self, series=None, start_date=None, end_dat... method get_crosstab_parsed_columns (line 905) | def get_crosstab_parsed_columns(self): method _get_precomputed_crosstab_parsed_columns (line 955) | def _get_precomputed_crosstab_parsed_columns(self): method get_crosstab_field_verbose_name (line 977) | def get_crosstab_field_verbose_name(self, computation_class, model, id): method get_metadata (line 987) | def get_metadata(self): method get_columns_data (line 1004) | def get_columns_data(self): method get_full_response (line 1026) | def get_full_response( method get_chart_settings (line 1042) | def get_chart_settings(chart_settings=None, default_chart_title=None, ... class ListViewReportGenerator (line 1070) | class ListViewReportGenerator(ReportGenerator): method prepare_queryset (line 1071) | def prepare_queryset(self, queryset): method _apply_queryset_options (line 1074) | def _apply_queryset_options(self, query, fields=None): method _get_record_data (line 1095) | def _get_record_data(self, obj, columns): method _remove_order (line 1145) | def _remove_order(self, main_queryset): function _sanitize_crosstab_key (line 1149) | def _sanitize_crosstab_key(value): FILE: slick_reporting/helpers.py function get_calculation_annotation (line 7) | def get_calculation_annotation(calculation_field, calculation_method): function get_foreign_keys (line 18) | def get_foreign_keys(model): function get_field_from_query_text (line 40) | def get_field_from_query_text(path, model): function user_test_function (line 59) | def user_test_function(report_view): FILE: slick_reporting/registry.py class ReportFieldRegistry (line 6) | class ReportFieldRegistry(object): method __init__ (line 7) | def __init__(self): method register (line 11) | def register(self, report_field, override=False): method unregister (line 24) | def unregister(self, report_field): method get_field_by_name (line 35) | def get_field_by_name(self, name): method get_all_report_fields_names (line 43) | def get_all_report_fields_names(self): FILE: slick_reporting/static/slick_reporting/slick_reporting.chartsjs.js function is_time_series (line 11) | function is_time_series(response, chartOptions) { function is_crosstab (line 16) | function is_crosstab(response, chartOptions) { function getTimeSeriesColumnNames (line 20) | function getTimeSeriesColumnNames(response) { function createChartObject (line 24) | function createChartObject(response, chartOptions, extraOptions) { function getGroupByLabelAndSeries (line 82) | function getGroupByLabelAndSeries(response, chartOptions) { function getCrosstabColumnNames (line 104) | function getCrosstabColumnNames(response, chartOptions) { function extractDataFromResponse (line 118) | function extractDataFromResponse(response, chartOptions) { function getBackgroundColors (line 232) | function getBackgroundColors(i) { function displayChart (line 239) | function displayChart(data, $elem, chartOptions) { FILE: slick_reporting/static/slick_reporting/slick_reporting.datatable.js function constructTable (line 13) | function constructTable(css_class, cols, cols_names, add_footer, total_v... function buildAndInitializeDataTable (line 53) | function buildAndInitializeDataTable(data, $elem, extraOptions, successF... function getDatatableColumns (line 86) | function getDatatableColumns(data) { function initializeReportDatatable (line 103) | function initializeReportDatatable(tableSelector, data, extraOptions) { FILE: slick_reporting/static/slick_reporting/slick_reporting.highchart.js function dataArrayToObject (line 7) | function dataArrayToObject(data, key) { function normalStackedTooltipFormatter (line 26) | function normalStackedTooltipFormatter() { function transform_to_pie (line 39) | function transform_to_pie(chartObject_series, index, categories) { function createChartObject (line 54) | function createChartObject(response, chartOptions, extraOptions) { function get_normal_data (line 245) | function get_normal_data(response, chartOptions) { function get_time_series_data (line 273) | function get_time_series_data(response, chartOptions) { function get_crosstab_data (line 334) | function get_crosstab_data(response, chartOptions) { function is_timeseries_support (line 384) | function is_timeseries_support(response, chartOptions) { function is_crosstab_support (line 389) | function is_crosstab_support(response, chartOptions) { function displayChart (line 393) | function displayChart(data, $elem, chartOptions) { FILE: slick_reporting/static/slick_reporting/slick_reporting.js function executeFunctionByName (line 3) | function executeFunctionByName(functionName, context /*, args */) { function getObjFromArray (line 22) | function getObjFromArray(objList, obj_key, key_value, failToFirst) { function calculateTotalOnObjectArray (line 38) | function calculateTotalOnObjectArray(data, columns) { function get_xpath (line 67) | function get_xpath($element, forceTree) { FILE: slick_reporting/static/slick_reporting/slick_reporting.report_loader.js function failFunction (line 10) | function failFunction(data, $elem) { function loadComponents (line 18) | function loadComponents(data, $elem) { function displayChart (line 38) | function displayChart(data, $elem, chart_id) { function refreshReportWidget (line 54) | function refreshReportWidget($elem, extra_params) { function initialize (line 88) | function initialize() { function _get_chart_icon (line 102) | function _get_chart_icon(chart_type) { function createChartsUIfromResponse (line 111) | function createChartsUIfromResponse(data, $elem, a_class) { FILE: slick_reporting/templatetags/slick_reporting_tags.py function _resolve_static (line 13) | def _resolve_static(path): function get_widget_from_url (line 21) | def get_widget_from_url(url_name=None, url=None, **kwargs): function get_widget (line 34) | def get_widget(report, template_name="", url_name="", report_url=None, *... function add_jquery (line 62) | def add_jquery(): function get_charts_media (line 70) | def get_charts_media(chart_settings): function get_slick_reporting_media (line 85) | def get_slick_reporting_media(): function get_slick_reporting_settings (line 93) | def get_slick_reporting_settings(): FILE: slick_reporting/views.py function dictsort (line 31) | def dictsort(value, arg, desc=False): class ExportToCSV (line 39) | class ExportToCSV(object): method get_filename (line 40) | def get_filename(self): method get_response (line 43) | def get_response(self): method get_rows (line 53) | def get_rows(self): method get_columns (line 59) | def get_columns(self, extra_context=None): method __init__ (line 62) | def __init__(self, request, report_data, report_title, **kwargs): class ExportToStreamingCSV (line 69) | class ExportToStreamingCSV(ExportToCSV): method get_response (line 70) | def get_response(self): class PrintHTMLExport (line 87) | class PrintHTMLExport: method __init__ (line 90) | def __init__(self, request, report_data, report_title, **kwargs): method get_response (line 95) | def get_response(self): class ReportViewBase (line 104) | class ReportViewBase(ReportGeneratorAPI, UserPassesTestMixin, FormView): method test_func (line 142) | def test_func(self): method get_report_title (line 147) | def get_report_title(cls): method order_results (line 156) | def order_results(self, data): method get_doc_types_q_filters (line 167) | def get_doc_types_q_filters(self): method get_export_actions (line 177) | def get_export_actions(self): method get (line 209) | def get(self, request, *args, **kwargs): method export_csv (line 235) | def export_csv(self, report_data): method export_print (line 242) | def export_print(self, report_data): method get_report_model (line 251) | def get_report_model(cls): method ajax_render_to_response (line 260) | def ajax_render_to_response(self, report_data): method serialize_to_json (line 263) | def serialize_to_json(self, response_data): method get_form_class (line 280) | def get_form_class(self): method fkeys_filter_func_hook (line 301) | def fkeys_filter_func_hook(fkeys_dict): method get_form_kwargs (line 312) | def get_form_kwargs(self): method get_crosstab_ids (line 337) | def get_crosstab_ids(self): method get_group_by_custom_querysets (line 344) | def get_group_by_custom_querysets(self): method get_report_generator (line 347) | def get_report_generator(self, queryset=None, for_print=False): method format_row (line 401) | def format_row(self, row_obj): method get_columns_data (line 410) | def get_columns_data(cls, generator): method get_report_results (line 418) | def get_report_results(self, for_print=False): method get_metadata (line 439) | def get_metadata(cls, generator): method get_chart_settings (line 446) | def get_chart_settings(self, generator=None): method get_queryset (line 457) | def get_queryset(cls): method filter_results (line 462) | def filter_results(self, data, for_print=False): method get_report_slug (line 473) | def get_report_slug(cls): method get_initial (line 476) | def get_initial(self): method get_form_crispy_helper (line 486) | def get_form_crispy_helper(self): method get_context_data (line 495) | def get_context_data(self, **kwargs): method form_invalid (line 506) | def form_invalid(self, form): class ReportView (line 512) | class ReportView(ReportViewBase): method __init_subclass__ (line 513) | def __init_subclass__(cls) -> None: class SlickReportingListViewMixin (line 531) | class SlickReportingListViewMixin(ReportViewBase): method get_queryset (line 535) | def get_queryset(self): method get_form_filters (line 541) | def get_form_filters(self, form): method get_form_crispy_helper (line 567) | def get_form_crispy_helper(self): method get_report_generator (line 570) | def get_report_generator(self, queryset=None, for_print=False): method get_form_class (line 588) | def get_form_class(self): method get_report_results (line 614) | def get_report_results(self, for_print=False): class SlickReportingListView (line 633) | class SlickReportingListView(SlickReportingListViewMixin, ReportViewBase): method __init_subclass__ (line 634) | def __init_subclass__(cls) -> None: class ListReportView (line 644) | class ListReportView(SlickReportingListViewMixin): class SlickReportViewBase (line 648) | class SlickReportViewBase(ReportViewBase): method __init_subclass__ (line 653) | def __init_subclass__(cls) -> None: class SlickReportView (line 664) | class SlickReportView(ReportView): method __init_subclass__ (line 665) | def __init_subclass__(cls) -> None: FILE: tests/models.py class Product (line 8) | class Product(models.Model): class Meta (line 21) | class Meta: class ProductCustomID (line 26) | class ProductCustomID(models.Model): class Meta (line 40) | class Meta: class Agent (line 45) | class Agent(models.Model): class Contact (line 49) | class Contact(models.Model): class Client (line 57) | class Client(models.Model): class SexChoices (line 58) | class SexChoices(models.TextChoices): class Meta (line 71) | class Meta: class SimpleSales (line 76) | class SimpleSales(models.Model): method save (line 95) | def save( class Meta (line 101) | class Meta: class SimpleSales2 (line 107) | class SimpleSales2(models.Model): method save (line 126) | def save( class Meta (line 132) | class Meta: class SalesProductWithCustomID (line 138) | class SalesProductWithCustomID(models.Model): method save (line 157) | def save( class Meta (line 163) | class Meta: class SalesWithFlag (line 169) | class SalesWithFlag(models.Model): method save (line 182) | def save( class Meta (line 188) | class Meta: class UserJoined (line 194) | class UserJoined(models.Model): class TaxCode (line 199) | class TaxCode(models.Model): class ComplexSales (line 204) | class ComplexSales(models.Model): method save (line 224) | def save( class Meta (line 230) | class Meta: class Order (line 282) | class Order(models.Model): class OrderLine (line 287) | class OrderLine(models.Model): class Architect (line 295) | class Architect(models.Model): class Initiative (line 309) | class Initiative(models.Model): FILE: tests/report_generators.py class GenericGenerator (line 22) | class GenericGenerator(ReportGenerator): class GeneratorWithAttrAsColumn (line 33) | class GeneratorWithAttrAsColumn(GenericGenerator): method get_data (line 38) | def get_data(self, obj): class CrosstabOnClient (line 44) | class CrosstabOnClient(GenericGenerator): class CrosstabTimeSeries (line 52) | class CrosstabTimeSeries(GenericGenerator): class CrosstabOnField (line 67) | class CrosstabOnField(ReportGenerator): class CrosstabCustomQueryset (line 79) | class CrosstabCustomQueryset(ReportGenerator): class CrosstabOnTraversingField (line 96) | class CrosstabOnTraversingField(ReportGenerator): class ClientTotalBalance (line 109) | class ClientTotalBalance(ReportGenerator): class TotalBalanceWithQueryset (line 121) | class TotalBalanceWithQueryset(ReportGenerator): class ClientTotalBalance2 (line 129) | class ClientTotalBalance2(ReportGenerator): class GroupByCharField (line 136) | class GroupByCharField(ReportGenerator): class GroupByCharFieldPlusTimeSeries (line 143) | class GroupByCharFieldPlusTimeSeries(ReportGenerator): class ClientTotalBalancesOrdered (line 153) | class ClientTotalBalancesOrdered(ClientTotalBalance): class ClientTotalBalancesOrderedDESC (line 158) | class ClientTotalBalancesOrderedDESC(ClientTotalBalance): class ProductTotalSales (line 163) | class ProductTotalSales(ReportGenerator): method get_object_sku (line 176) | def get_object_sku(self, obj: dict, row: dict) -> any: method average_value (line 186) | def average_value(self, obj, data): class ProductTotalSalesProductWithCustomID (line 192) | class ProductTotalSalesProductWithCustomID(ReportGenerator): class ProductTotalSalesWithPercentage (line 199) | class ProductTotalSalesWithPercentage(ReportGenerator): class ClientList (line 212) | class ClientList(ReportGenerator): class ProductClientSales (line 219) | class ProductClientSales(ReportGenerator): method get_data (line 230) | def get_data(self, obj): class ProductSalesMonthlySeries (line 234) | class ProductSalesMonthlySeries(ReportGenerator): class TimeSeriesCustomDates (line 270) | class TimeSeriesCustomDates(ReportGenerator): class TimeSeriesWithOutGroupBy (line 285) | class TimeSeriesWithOutGroupBy(ReportGenerator): class ClientReportMixin (line 295) | class ClientReportMixin: class ClientSalesMonthlySeries (line 300) | class ClientSalesMonthlySeries(ReportGenerator): class CountField (line 310) | class CountField(ComputationField): class TestCountField (line 317) | class TestCountField(ReportGenerator): class ClientDetailedStatement (line 328) | class ClientDetailedStatement(ReportGenerator): class ClientDetailedStatement2 (line 335) | class ClientDetailedStatement2(ReportGenerator): class ProductClientSalesMatrix (line 367) | class ProductClientSalesMatrix(ReportGenerator): class ProductClientSalesMatrixToFieldSet (line 378) | class ProductClientSalesMatrixToFieldSet(ReportGenerator): class ProductClientSalesMatrix2 (line 389) | class ProductClientSalesMatrix2(ReportGenerator): class ProductClientSalesMatrixwSimpleSales2 (line 400) | class ProductClientSalesMatrixwSimpleSales2(ReportGenerator): class GeneratorClassWithAttrsAs (line 411) | class GeneratorClassWithAttrsAs(ReportGenerator): class ClientTotalBalancesWithShowEmptyFalse (line 415) | class ClientTotalBalancesWithShowEmptyFalse(ClientTotalBalance): FILE: tests/test_dynamic_model.py class DynamicModelTestBase (line 32) | class DynamicModelTestBase(TestCase): method setUpClass (line 34) | def setUpClass(cls): method tearDownClass (line 49) | def tearDownClass(cls): class TestGetDynamicModel (line 65) | class TestGetDynamicModel(DynamicModelTestBase): method test_returns_model_class (line 66) | def test_returns_model_class(self): method test_model_meta (line 70) | def test_model_meta(self): method test_model_fields (line 75) | def test_model_fields(self): method test_pk_field (line 86) | def test_pk_field(self): method test_cache_returns_same_model (line 92) | def test_cache_returns_same_model(self): method test_nonexistent_table_raises (line 97) | def test_nonexistent_table_raises(self): class TestDynamicModelQuerySet (line 103) | class TestDynamicModelQuerySet(DynamicModelTestBase): method test_objects_all (line 104) | def test_objects_all(self): method test_filter (line 109) | def test_filter(self): method test_values (line 114) | def test_values(self): method test_aggregate (line 122) | def test_aggregate(self): method test_annotate (line 127) | def test_annotate(self): class TestReportGeneratorWithDynamicModel (line 138) | class TestReportGeneratorWithDynamicModel(DynamicModelTestBase): method test_group_by_report (line 139) | def test_group_by_report(self): method test_time_series_report (line 159) | def test_time_series_report(self): method test_table_name_convenience_param (line 176) | def test_table_name_convenience_param(self): method test_no_group_by_report (line 191) | def test_no_group_by_report(self): class TestReportViewTableNameImportSafety (line 207) | class TestReportViewTableNameImportSafety(TestCase): method test_class_definition_does_not_hit_db (line 210) | def test_class_definition_does_not_hit_db(self): FILE: tests/test_generator.py class CrosstabTests (line 26) | class CrosstabTests(BaseTestData, TestCase): method test_matrix_column_included (line 27) | def test_matrix_column_included(self): method test_matrix_column_position (line 36) | def test_matrix_column_position(self): method test_get_crosstab_columns (line 50) | def test_get_crosstab_columns(self): method test_get_crosstab_parsed_columns (line 62) | def test_get_crosstab_parsed_columns(self): method test_crosstab_on_field (line 72) | def test_crosstab_on_field(self): method test_crosstab_ids_queryset (line 81) | def test_crosstab_ids_queryset(self): method test_crosstab_on_traversing_field (line 90) | def test_crosstab_on_traversing_field(self): method test_crosstab_time_series (line 99) | def test_crosstab_time_series(self): class GeneratorReportStructureTest (line 126) | class GeneratorReportStructureTest(BaseTestData, TestCase): method setUpTestData (line 128) | def setUpTestData(cls): method test_time_series_columns_inclusion (line 138) | def test_time_series_columns_inclusion(self): method test_time_series_patterns (line 151) | def test_time_series_patterns(self): method test_time_series_custom_pattern (line 197) | def test_time_series_custom_pattern(self): method test_time_series_columns_placeholder (line 207) | def test_time_series_columns_placeholder(self): method test_time_series_and_cros_tab (line 220) | def test_time_series_and_cros_tab(self): method test_attr_as_column (line 223) | def test_attr_as_column(self): method test_improper_group_by (line 229) | def test_improper_group_by(self): method test_missing_report_model (line 235) | def test_missing_report_model(self): method test_missing_date_field (line 241) | def test_missing_date_field(self): method test_wrong_date_field (line 247) | def test_wrong_date_field(self): method test_unknown_column (line 253) | def test_unknown_column(self): method test_gather_dependencies_for_time_series (line 264) | def test_gather_dependencies_for_time_series(self): method test_group_by_traverse (line 276) | def test_group_by_traverse(self): method test_group_by_and_foreign_key_field (line 296) | def test_group_by_and_foreign_key_field(self): method test_custom_group_by (line 332) | def test_custom_group_by(self): method test_custom_group_by_with_index (line 355) | def test_custom_group_by_with_index(self): method test_traversing_group_by_and_foreign_key_field (line 376) | def test_traversing_group_by_and_foreign_key_field(self): method test_traversing_group_by_sanity (line 399) | def test_traversing_group_by_sanity(self): method test_db_field_column_verbose_name (line 412) | def test_db_field_column_verbose_name(self): method test_group_by_char_field (line 417) | def test_group_by_char_field(self): class TestReportFields (line 423) | class TestReportFields(BaseTestData, TestCase): method test_get_full_dependency_list (line 424) | def test_get_full_dependency_list(self): method test_computation_field_count (line 430) | def test_computation_field_count(self): class TestHelpers (line 438) | class TestHelpers(TestCase): method test_get_model_for_keys (line 439) | def test_get_model_for_keys(self): class TestListViewGenerator (line 444) | class TestListViewGenerator(BaseTestData, TestCase): method test_traversing_field_in_column (line 445) | def test_traversing_field_in_column(self): FILE: tests/test_pivot_generator.py class PrecomputedCrosstabTestBase (line 30) | class PrecomputedCrosstabTestBase(TestCase): method setUpClass (line 32) | def setUpClass(cls): method tearDownClass (line 47) | def tearDownClass(cls): class TestPrecomputedCrosstabBasic (line 63) | class TestPrecomputedCrosstabBasic(PrecomputedCrosstabTestBase): method test_date_crosstab (line 64) | def test_date_crosstab(self): method test_missing_period_defaults_to_zero (line 88) | def test_missing_period_defaults_to_zero(self): method test_entity_crosstab (line 106) | def test_entity_crosstab(self): method test_multiple_crosstab_columns (line 131) | def test_multiple_crosstab_columns(self): class TestPrecomputedCrosstabMetadata (line 153) | class TestPrecomputedCrosstabMetadata(PrecomputedCrosstabTestBase): method test_crosstab_metadata_populated (line 154) | def test_crosstab_metadata_populated(self): method test_column_computation_field_attribute (line 175) | def test_column_computation_field_attribute(self): class TestPrecomputedCrosstabWithTableName (line 195) | class TestPrecomputedCrosstabWithTableName(PrecomputedCrosstabTestBase): method test_table_name_convenience (line 196) | def test_table_name_convenience(self): class TestPrecomputedCrosstabDateFiltering (line 212) | class TestPrecomputedCrosstabDateFiltering(PrecomputedCrosstabTestBase): method test_date_filter_limits_crosstab_values (line 213) | def test_date_filter_limits_crosstab_values(self): class TestPrecomputedCrosstabWithSpaces (line 249) | class TestPrecomputedCrosstabWithSpaces(TestCase): method setUpClass (line 251) | def setUpClass(cls): method tearDownClass (line 265) | def tearDownClass(cls): method test_crosstab_values_with_spaces (line 280) | def test_crosstab_values_with_spaces(self): method test_crosstab_values_with_special_chars (line 297) | def test_crosstab_values_with_special_chars(self): method test_verbose_name_preserves_original (line 313) | def test_verbose_name_preserves_original(self): class TestPrecomputedCrosstabWithFKGroupBy (line 328) | class TestPrecomputedCrosstabWithFKGroupBy(TestCase): method setUpTestData (line 340) | def setUpTestData(cls): method test_rows_populated_with_fk_group_by (line 360) | def test_rows_populated_with_fk_group_by(self): FILE: tests/tests.py class BaseTestData (line 44) | class BaseTestData: method setUpTestData (line 48) | def setUpTestData(cls): class ReportTest (line 314) | class ReportTest(BaseTestData, TestCase): method test_client_balance (line 315) | def test_client_balance(self): method test_compute_from_queryset (line 321) | def test_compute_from_queryset(self): method test_product_total_sales (line 326) | def test_product_total_sales(self): method test_product_total_sales_product_custom_id (line 332) | def test_product_total_sales_product_custom_id(self): method test_product_total_sales_with_percentage (line 342) | def test_product_total_sales_with_percentage(self): method test_product_total_sales_with_changed_dated (line 351) | def test_product_total_sales_with_changed_dated(self): method test_client_client_sales_monthly (line 356) | def test_client_client_sales_monthly(self): method test_productclientsalesmatrix (line 378) | def test_productclientsalesmatrix(self): method test_productclientsalesmatrix_no_remainder (line 385) | def test_productclientsalesmatrix_no_remainder(self): method test_show_empty_records (line 394) | def test_show_empty_records(self): method test_filters (line 402) | def test_filters(self): method test_view_filter_to_field_set (line 411) | def test_view_filter_to_field_set(self): method test_filter_as_int_n_list (line 436) | def test_filter_as_int_n_list(self): method test_timeseries_without_group (line 445) | def test_timeseries_without_group(self): method test_many_to_many_group_by (line 450) | def test_many_to_many_group_by(self): class TestView (line 470) | class TestView(BaseTestData, TestCase): method test_view (line 471) | def test_view(self): method test_qs_only (line 489) | def test_qs_only(self): method test_view_filter (line 507) | def test_view_filter(self): method test_view_filter_to_field_set (line 530) | def test_view_filter_to_field_set(self): method test_ajax (line 552) | def test_ajax(self): method test_crosstab_report_view (line 567) | def test_crosstab_report_view(self): method test_crosstab_report_view_clumns_on_fly (line 589) | def test_crosstab_report_view_clumns_on_fly(self): method test_crosstab_report_view_to_field_set (line 607) | def test_crosstab_report_view_to_field_set(self): method test_crosstab_report_view_clumns_on_fly_to_field_set (line 629) | def test_crosstab_report_view_clumns_on_fly_to_field_set(self): method test_chart_settings (line 647) | def test_chart_settings(self): method test_error_on_missing_date_field (line 662) | def test_error_on_missing_date_field(self): class TestReportFieldRegistry (line 670) | class TestReportFieldRegistry(TestCase): method test_unregister (line 671) | def test_unregister(self): method test_registering_new (line 678) | def test_registering_new(self): method test_already_registered (line 689) | def test_already_registered(self): method test_unregister_a_non_existent (line 699) | def test_unregister_a_non_existent(self): method test_get_non_existent_field (line 706) | def test_get_non_existent_field(self): method test_creating_a_report_field_on_the_fly (line 713) | def test_creating_a_report_field_on_the_fly(self): method test_creating_a_report_field_on_the_fly_wo_name (line 719) | def test_creating_a_report_field_on_the_fly_wo_name(self): class TestGroupByDate (line 726) | class TestGroupByDate(TestCase): method setUpTestData (line 728) | def setUpTestData(cls): method test_joined_per_day (line 735) | def test_joined_per_day(self): class TestGroupByFlag (line 753) | class TestGroupByFlag(TestCase): method setUpTestData (line 757) | def setUpTestData(cls): method test_group_by_flag (line 859) | def test_group_by_flag(self): method test_group_by_flag_time_series (line 865) | def test_group_by_flag_time_series(self): FILE: tests/views.py class MonthlyProductSales (line 8) | class MonthlyProductSales(ReportView): class MonthlyProductSalesToFIeldSet (line 17) | class MonthlyProductSalesToFIeldSet(ReportView): class ProductClientSalesMatrix (line 26) | class ProductClientSalesMatrix(ReportView): class ProductClientSalesMatrixToFieldSet (line 46) | class ProductClientSalesMatrixToFieldSet(ReportView): class CrossTabColumnOnFly (line 66) | class CrossTabColumnOnFly(ReportView): class CrossTabColumnOnFlyToFieldSet (line 90) | class CrossTabColumnOnFlyToFieldSet(ReportView): class MonthlyProductSalesWQS (line 114) | class MonthlyProductSalesWQS(ReportView): class TaxSales (line 123) | class TaxSales(ReportView): class MonthlyProductSalesToFIeldSet (line 143) | class MonthlyProductSalesToFIeldSet(ReportView): class TaxSales (line 152) | class TaxSales(ReportView):