django-advanced-report-builder 0.4.3__tar.gz → 0.5.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of django-advanced-report-builder might be problematic. Click here for more details.

Files changed (160) hide show
  1. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/PKG-INFO +1 -1
  2. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/data_merge/utils.py +3 -2
  3. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/filter_query.py +12 -7
  4. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/utils.py +12 -0
  5. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/views/bar_charts.py +12 -8
  6. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/views/charts_base.py +18 -11
  7. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/views/datatables/datatables.py +3 -3
  8. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/views/datatables/modal.py +5 -3
  9. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/views/funnel_charts.py +5 -3
  10. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/views/kanban.py +5 -3
  11. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/views/line_charts.py +4 -4
  12. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/views/modals_base.py +19 -15
  13. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/views/pie_charts.py +4 -4
  14. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/views/single_values.py +7 -6
  15. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/django_advanced_report_builder.egg-info/PKG-INFO +1 -1
  16. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/setup.py +1 -1
  17. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/LICENSE +0 -0
  18. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/MANIFEST.in +0 -0
  19. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/README.md +0 -0
  20. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/__init__.py +0 -0
  21. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/admin.py +0 -0
  22. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/apps.py +0 -0
  23. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/columns.py +0 -0
  24. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/customise.py +0 -0
  25. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/data_merge/__init__.py +0 -0
  26. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/data_merge/widget.py +0 -0
  27. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/duplicate.py +0 -0
  28. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/exceptions.py +0 -0
  29. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/field_types.py +0 -0
  30. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/generate_series.py +0 -0
  31. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/globals.py +0 -0
  32. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/includes.py +0 -0
  33. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/migrations/0001_initial.py +0 -0
  34. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/migrations/0002_auto_20220209_1657.py +0 -0
  35. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/migrations/0003_auto_20220215_1219.py +0 -0
  36. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/migrations/0004_customreport.py +0 -0
  37. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/migrations/0005_auto_20220303_0958.py +0 -0
  38. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/migrations/0006_auto_20220310_1147.py +0 -0
  39. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/migrations/0007_auto_20220322_1939.py +0 -0
  40. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/migrations/0008_auto_20220404_1144.py +0 -0
  41. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/migrations/0009_auto_20230428_1554.py +0 -0
  42. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/migrations/0010_auto_20230428_2033.py +0 -0
  43. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/migrations/0011_auto_20230620_1449.py +0 -0
  44. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/migrations/0012_auto_20230718_1642.py +0 -0
  45. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/migrations/__init__.py +0 -0
  46. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/models.py +0 -0
  47. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/report_builder.py +0 -0
  48. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/chart-js/js/chart.esm.js +0 -0
  49. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/chart-js/js/chart.js +0 -0
  50. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/chart-js/js/chart.min.js +0 -0
  51. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/chart-js/js/chartjs-adapter-moment.min.js +0 -0
  52. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/chart-js/js/chartjs-plugin-datalabels.min.js +0 -0
  53. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/chart-js/js/chunks/helpers.segment.js +0 -0
  54. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/chart-js/js/helpers.esm.js +0 -0
  55. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/d3/js/d3.js +0 -0
  56. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/d3/js/d3.min.js +0 -0
  57. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/d3-funnel/js/d3-funnel.js +0 -0
  58. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/d3-funnel/js/d3-funnel.min.js +0 -0
  59. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/dashboard/js/dashboard.js +0 -0
  60. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/dot/js/.gitignore +0 -0
  61. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/dot/js/.travis.yml +0 -0
  62. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/dot/js/LICENSE-DOT.txt +0 -0
  63. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/dot/js/README.md +0 -0
  64. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/dot/js/bin/dot-packer +0 -0
  65. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/dot/js/bower.json +0 -0
  66. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/dot/js/doT.js +0 -0
  67. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/dot/js/doT.min.js +0 -0
  68. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/dot/js/doU.js +0 -0
  69. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/dot/js/index.js +0 -0
  70. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/dot/js/package.json +0 -0
  71. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/jquery_extendext/js/jQuery.extendext.js +0 -0
  72. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/jquery_extendext/js/jQuery.extendext.min.js +0 -0
  73. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/css/query-builder.dark.css +0 -0
  74. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/css/query-builder.dark.min.css +0 -0
  75. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/css/query-builder.default.css +0 -0
  76. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/css/query-builder.default.min.css +0 -0
  77. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.ar.js +0 -0
  78. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.az.js +0 -0
  79. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.bg.js +0 -0
  80. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.cs.js +0 -0
  81. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.da.js +0 -0
  82. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.de.js +0 -0
  83. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.el.js +0 -0
  84. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.en.js +0 -0
  85. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.es.js +0 -0
  86. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.fa-IR.js +0 -0
  87. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.fr.js +0 -0
  88. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.he.js +0 -0
  89. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.it.js +0 -0
  90. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.nl.js +0 -0
  91. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.no.js +0 -0
  92. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.pl.js +0 -0
  93. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.pt-BR.js +0 -0
  94. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.pt-PT.js +0 -0
  95. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.ro.js +0 -0
  96. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.ru.js +0 -0
  97. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.sq.js +0 -0
  98. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.tr.js +0 -0
  99. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.ua.js +0 -0
  100. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.zh-CN.js +0 -0
  101. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/js/plugins/currency/plugin.js +0 -0
  102. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/js/query-builder.js +0 -0
  103. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/js/query-builder.min.js +0 -0
  104. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/js/query-builder.standalone.js +0 -0
  105. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/js/query-builder.standalone.min.js +0 -0
  106. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/dark.scss +0 -0
  107. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/default.scss +0 -0
  108. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/_bt-checkbox.scss +0 -0
  109. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/_bt-tooltip-errors.scss +0 -0
  110. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/_filter-description.scss +0 -0
  111. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/_invert.scss +0 -0
  112. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/_sortable.scss +0 -0
  113. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/bt-tooltip-errors.scss +0 -0
  114. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/filter-description.scss +0 -0
  115. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/invert.scss +0 -0
  116. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/sortable.scss +0 -0
  117. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/templates/advanced_report_builder/charts/bar/middle.html +0 -0
  118. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/templates/advanced_report_builder/charts/funnel/middle.html +0 -0
  119. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/templates/advanced_report_builder/charts/funnel/report.html +0 -0
  120. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/templates/advanced_report_builder/charts/line/middle.html +0 -0
  121. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/templates/advanced_report_builder/charts/modal.html +0 -0
  122. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/templates/advanced_report_builder/charts/modal_field.html +0 -0
  123. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/templates/advanced_report_builder/charts/pie/middle.html +0 -0
  124. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/templates/advanced_report_builder/charts/report.html +0 -0
  125. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/templates/advanced_report_builder/data_merge/data_merge.html +0 -0
  126. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/templates/advanced_report_builder/datatables/fields/modal.html +0 -0
  127. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/templates/advanced_report_builder/datatables/fields/single_query_builder.html +0 -0
  128. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/templates/advanced_report_builder/datatables/modal.html +0 -0
  129. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/templates/advanced_report_builder/datatables/onclick_menu.html +0 -0
  130. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/templates/advanced_report_builder/datatables/query_modal.html +0 -0
  131. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/templates/advanced_report_builder/datatables/report.html +0 -0
  132. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/templates/advanced_report_builder/datatables/select_pivot.html +0 -0
  133. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/templates/advanced_report_builder/kanban/description_modal.html +0 -0
  134. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/templates/advanced_report_builder/kanban/middle.html +0 -0
  135. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/templates/advanced_report_builder/kanban/modal.html +0 -0
  136. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/templates/advanced_report_builder/kanban/report.html +0 -0
  137. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/templates/advanced_report_builder/query_builder.html +0 -0
  138. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/templates/advanced_report_builder/select_column.html +0 -0
  139. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/templates/advanced_report_builder/single_values/middle.html +0 -0
  140. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/templates/advanced_report_builder/single_values/modal.html +0 -0
  141. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/templates/advanced_report_builder/single_values/report.html +0 -0
  142. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/toggle.py +0 -0
  143. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/urls.py +0 -0
  144. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/variable_date.py +0 -0
  145. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/views/__init__.py +0 -0
  146. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/views/custom.py +0 -0
  147. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/views/dashboard.py +0 -0
  148. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/views/datatables/__init__.py +0 -0
  149. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/views/datatables/utils.py +0 -0
  150. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/views/report.py +0 -0
  151. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/views/report_utils_mixin.py +0 -0
  152. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/views/reports.py +0 -0
  153. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/views/targets/__init__.py +0 -0
  154. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/views/targets/utils.py +0 -0
  155. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/advanced_report_builder/views/targets/views.py +0 -0
  156. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/django_advanced_report_builder.egg-info/SOURCES.txt +0 -0
  157. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/django_advanced_report_builder.egg-info/dependency_links.txt +0 -0
  158. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/django_advanced_report_builder.egg-info/requires.txt +0 -0
  159. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/django_advanced_report_builder.egg-info/top_level.txt +0 -0
  160. {django-advanced-report-builder-0.4.3 → django-advanced-report-builder-0.5.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: django-advanced-report-builder
3
- Version: 0.4.3
3
+ Version: 0.5.0
4
4
  Summary: Django app that allows you to build reports from modals
5
5
  Home-page: https://github.com/django-advance-utils/django-advanced-report-builder
6
6
  Author: Thomas Turner
@@ -2,7 +2,7 @@ import re
2
2
 
3
3
  from django.apps import apps
4
4
 
5
- from advanced_report_builder.utils import get_field_details
5
+ from advanced_report_builder.utils import get_field_details, get_report_builder_class
6
6
 
7
7
 
8
8
  def get_menu_fields(base_model, report_builder_class,
@@ -26,7 +26,8 @@ def get_menu_fields(base_model, report_builder_class,
26
26
 
27
27
  new_model = apps.get_model(app_label, model)
28
28
  if new_model != previous_base_model:
29
- new_report_builder_class = getattr(new_model, report_builder_fields_str, None)
29
+ new_report_builder_class = get_report_builder_class(model=new_model,
30
+ class_name=report_builder_fields_str)
30
31
  title = new_report_builder_class.title
31
32
  if menus is not None:
32
33
  menu = []
@@ -6,6 +6,7 @@ from django.db.models import Q
6
6
  from django.shortcuts import get_object_or_404
7
7
 
8
8
  from advanced_report_builder.models import ReportQuery
9
+ from advanced_report_builder.utils import get_report_builder_class
9
10
  from advanced_report_builder.variable_date import VariableDate
10
11
 
11
12
 
@@ -255,12 +256,14 @@ class FilterQueryMixin:
255
256
  if include is not None:
256
257
  app_label, model, report_builder_fields_str = include['model'].split('.')
257
258
  new_model = apps.get_model(app_label, model)
258
- new_report_builder_fields = getattr(new_model, report_builder_fields_str, None)
259
+
260
+ new_report_builder_class = get_report_builder_class(model=new_model,
261
+ class_name=report_builder_fields_str)
259
262
 
260
263
  if new_model != previous_base_model:
261
264
  result = self._get_report_builder_class(base_model=new_model,
262
265
  field_str=new_field_str,
263
- report_builder_class=new_report_builder_fields,
266
+ report_builder_class=new_report_builder_class,
264
267
  previous_base_model=base_model)
265
268
  if result:
266
269
  return result
@@ -269,8 +272,10 @@ class FilterQueryMixin:
269
272
  if include is not None:
270
273
  app_label, model, report_builder_fields_str = include['model'].split('.')
271
274
  new_model = apps.get_model(app_label, model)
272
- new_report_builder_fields = getattr(new_model, report_builder_fields_str, None)
273
- return new_report_builder_fields
275
+ new_report_builder_class = get_report_builder_class(model=new_model,
276
+ class_name=report_builder_fields_str)
277
+
278
+ return new_report_builder_class
274
279
  return None
275
280
 
276
281
  def _get_pivot_details(self, base_model, pivot_str, report_builder_class, previous_base_model=None, include_str=''):
@@ -294,12 +299,12 @@ class FilterQueryMixin:
294
299
  if include is not None:
295
300
  app_label, model, report_builder_fields_str = include['model'].split('.')
296
301
  new_model = apps.get_model(app_label, model)
297
- new_report_builder_fields = getattr(new_model, report_builder_fields_str, None)
298
-
302
+ new_report_builder_class = get_report_builder_class(model=new_model,
303
+ class_name=report_builder_fields_str)
299
304
  if new_model != previous_base_model:
300
305
  result = self._get_pivot_details(base_model=new_model,
301
306
  pivot_str=new_pivot_str,
302
- report_builder_class=new_report_builder_fields,
307
+ report_builder_class=new_report_builder_class,
303
308
  previous_base_model=base_model,
304
309
  include_str=include_str)
305
310
  if result:
@@ -117,3 +117,15 @@ def decode_attribute(data_attr):
117
117
  data_attr = data_attr.replace('@', '-')
118
118
  _data = base64.urlsafe_b64decode(data_attr)
119
119
  return _data.decode('utf-8', 'ignore')
120
+
121
+
122
+ def get_report_builder_class(model, report_type=None, class_name=None):
123
+ if class_name is None:
124
+ class_name = report_type.report_builder_class_name
125
+
126
+ report_builder_class = getattr(model, class_name, None)
127
+ if report_builder_class is not None:
128
+ report_builder_class = report_builder_class()
129
+ return report_builder_class
130
+
131
+
@@ -29,7 +29,8 @@ from advanced_report_builder.globals import DEFAULT_DATE_FORMAT, \
29
29
  GENERATE_SERIES_INTERVALS
30
30
  from advanced_report_builder.models import BarChartReport, ReportType
31
31
  from advanced_report_builder.toggle import RBToggle
32
- from advanced_report_builder.utils import split_attr, encode_attribute, decode_attribute, get_field_details
32
+ from advanced_report_builder.utils import split_attr, encode_attribute, decode_attribute, get_field_details, \
33
+ get_report_builder_class
33
34
  from advanced_report_builder.views.charts_base import ChartBaseView, ChartBaseFieldForm
34
35
  from advanced_report_builder.views.datatables.modal import TableFieldModal, TableFieldForm
35
36
  from advanced_report_builder.views.datatables.utils import TableUtilsMixin
@@ -96,8 +97,10 @@ class BarChartView(ChartBaseView):
96
97
 
97
98
  if start_field_name is None or end_field_name is None:
98
99
  return
99
- report_builder_class = getattr(base_model,
100
- self.chart_report.report_type.report_builder_class_name, None)
100
+
101
+ report_builder_class = get_report_builder_class(model=base_model,
102
+ report_type=self.chart_report.report_type)
103
+
101
104
  start_django_field, start_col_type_override, _, _ = get_field_details(base_model=base_model,
102
105
  field=start_field_name,
103
106
  report_builder_class=report_builder_class,
@@ -302,10 +305,12 @@ class BarChartFieldForm(ChartBaseFieldForm):
302
305
 
303
306
  self.fields['multiple_columns'] = BooleanField(required=False, widget=RBToggle())
304
307
 
305
- report_builder_fields = getattr(base_model, report_type.report_builder_class_name, None)
308
+ report_builder_class = get_report_builder_class(model=base_model,
309
+ report_type=report_type)
310
+
306
311
  fields = []
307
312
  self._get_query_builder_foreign_key_fields(base_model=base_model,
308
- report_builder_fields=report_builder_fields,
313
+ report_builder_class=report_builder_class,
309
314
  fields=fields)
310
315
 
311
316
  self.fields['multiple_column_field'] = ChoiceField(choices=fields, required=False)
@@ -458,9 +463,8 @@ class BarChartShowBreakdownModal(TableUtilsMixin, Modal):
458
463
  self.kwargs['enable_links'] = self.slug['enable_links'] == 'True'
459
464
  base_model = bar_chart_report.get_base_modal()
460
465
  chart_fields = bar_chart_report.fields
461
-
462
- report_builder_class = getattr(base_model,
463
- bar_chart_report.report_type.report_builder_class_name, None)
466
+ report_builder_class = get_report_builder_class(model=base_model,
467
+ report_type=bar_chart_report.report_type)
464
468
  table = self.add_table(base_model=base_model)
465
469
 
466
470
  table_fields = bar_chart_report.breakdown_fields
@@ -20,7 +20,7 @@ from advanced_report_builder.exceptions import ReportError
20
20
  from advanced_report_builder.globals import NUMBER_FIELDS, ANNOTATION_VALUE_FUNCTIONS, ANNOTATION_VALUE_YEAR, \
21
21
  ANNOTATION_VALUE_QUARTER, ANNOTATION_VALUE_WEEK, ANNOTATION_VALUE_DAY, ANNOTATION_VALUE_MONTH
22
22
  from advanced_report_builder.models import ReportType
23
- from advanced_report_builder.utils import split_slug, get_field_details, split_attr
23
+ from advanced_report_builder.utils import split_slug, get_field_details, split_attr, get_report_builder_class
24
24
  from advanced_report_builder.variable_date import VariableDate
25
25
  from advanced_report_builder.views.report import ReportBase
26
26
  from advanced_report_builder.views.report_utils_mixin import ReportUtilsMixin
@@ -131,8 +131,9 @@ class ChartBaseView(ReportBase, ReportUtilsMixin, TemplateView):
131
131
  field_name = self.chart_report.date_field
132
132
  if field_name is None:
133
133
  return
134
- report_builder_class = getattr(base_model,
135
- self.chart_report.report_type.report_builder_class_name, None)
134
+ report_builder_class = get_report_builder_class(model=base_model,
135
+ report_type=self.chart_report.report_type)
136
+
136
137
  django_field, col_type_override, _, _ = get_field_details(base_model=base_model,
137
138
  field=field_name,
138
139
  report_builder_class=report_builder_class,
@@ -181,8 +182,8 @@ class ChartBaseView(ReportBase, ReportUtilsMixin, TemplateView):
181
182
  return fields
182
183
  chart_fields = self.chart_report.fields
183
184
 
184
- report_builder_class = getattr(base_model,
185
- self.chart_report.report_type.report_builder_class_name, None)
185
+ report_builder_class = get_report_builder_class(model=base_model,
186
+ report_type=self.chart_report.report_type)
186
187
 
187
188
  for index, table_field in enumerate(chart_fields, 1):
188
189
  field = table_field['field']
@@ -359,24 +360,30 @@ class ChartBaseFieldForm(CrispyForm):
359
360
 
360
361
  report_type = get_object_or_404(ReportType, pk=self.slug['report_type_id'])
361
362
  base_model = report_type.content_type.model_class()
362
- report_builder_class = getattr(base_model,
363
- report_type.report_builder_class_name, None)
363
+
364
+ report_builder_class = get_report_builder_class(model=base_model,
365
+ report_type=report_type)
366
+
364
367
  self.django_field, self.col_type_override, _, _ = get_field_details(base_model=base_model,
365
368
  field=data['field'],
366
369
  report_builder_class=report_builder_class)
367
370
 
368
371
  return report_type, base_model
369
372
 
370
- def _get_query_builder_foreign_key_fields(self, base_model, report_builder_fields, fields,
373
+ def _get_query_builder_foreign_key_fields(self, base_model, report_builder_class, fields,
371
374
  prefix='', title_prefix='', previous_base_model=None):
372
- for include_field, include in report_builder_fields.includes.items():
375
+ for include_field, include in report_builder_class.includes.items():
373
376
  app_label, model, report_builder_fields_str = include['model'].split('.')
374
377
  new_model = apps.get_model(app_label, model)
375
378
  if new_model != previous_base_model:
376
- new_report_builder_fields = getattr(new_model, report_builder_fields_str, None)
379
+ new_report_builder_class = get_report_builder_class(model=new_model,
380
+ class_name=report_builder_fields_str)
381
+ if new_report_builder_class is not None:
382
+ new_report_builder_class = new_report_builder_class()
383
+
377
384
  fields.append((prefix + include_field, title_prefix + include['title']))
378
385
  self._get_query_builder_foreign_key_fields(base_model=new_model,
379
- report_builder_fields=new_report_builder_fields,
386
+ report_builder_class=new_report_builder_class,
380
387
  fields=fields,
381
388
  prefix=f"{prefix}{include_field}__",
382
389
  title_prefix=f"{title_prefix}{include['title']} --> ",
@@ -5,7 +5,7 @@ from django_menus.menu import MenuItem
5
5
 
6
6
  from advanced_report_builder.columns import ArrowColumn
7
7
  from advanced_report_builder.exceptions import ReportError
8
- from advanced_report_builder.utils import get_field_details, make_slug_str
8
+ from advanced_report_builder.utils import get_field_details, make_slug_str, get_report_builder_class
9
9
  from advanced_report_builder.utils import split_slug
10
10
  from advanced_report_builder.views.datatables.utils import TableUtilsMixin
11
11
  from advanced_report_builder.views.report import ReportBase
@@ -48,8 +48,8 @@ class TableView(ReportBase, TableUtilsMixin, DatatableView):
48
48
  table_fields = self.table_report.table_fields
49
49
  pivot_fields = self.table_report.pivot_fields
50
50
  fields_used = set()
51
- report_builder_class = getattr(base_model,
52
- self.table_report.report_type.report_builder_class_name, None)
51
+ report_builder_class = get_report_builder_class(model=base_model,
52
+ report_type=self.table_report.report_type)
53
53
  self.process_query_results(report_builder_class=report_builder_class,
54
54
  table=table,
55
55
  base_model=base_model,
@@ -21,7 +21,8 @@ from advanced_report_builder.globals import DATE_FIELDS, NUMBER_FIELDS, ANNOTATI
21
21
  DATE_FORMAT_TYPES, CURRENCY_COLUMNS, LINK_COLUMNS
22
22
  from advanced_report_builder.models import TableReport, ReportQuery, ReportType
23
23
  from advanced_report_builder.toggle import RBToggle
24
- from advanced_report_builder.utils import split_attr, get_field_details, encode_attribute, decode_attribute
24
+ from advanced_report_builder.utils import split_attr, get_field_details, encode_attribute, decode_attribute, \
25
+ get_report_builder_class
25
26
  from advanced_report_builder.views.charts_base import ChartBaseFieldForm
26
27
  from advanced_report_builder.views.modals_base import QueryBuilderModalBaseMixin, QueryBuilderModalBase
27
28
 
@@ -302,10 +303,11 @@ class TableFieldForm(ChartBaseFieldForm):
302
303
 
303
304
  self.fields['multiple_columns'] = BooleanField(required=False, widget=RBToggle())
304
305
 
305
- report_builder_fields = getattr(base_model, report_type.report_builder_class_name, None)
306
+ report_builder_class = get_report_builder_class(model=base_model,
307
+ report_type=report_type)
306
308
  fields = []
307
309
  self._get_query_builder_foreign_key_fields(base_model=base_model,
308
- report_builder_fields=report_builder_fields,
310
+ report_builder_class=report_builder_class,
309
311
  fields=fields)
310
312
 
311
313
  self.fields['multiple_column_field'] = ChoiceField(choices=fields, required=False)
@@ -14,7 +14,7 @@ from django_modals.widgets.select2 import Select2Multiple
14
14
 
15
15
  from advanced_report_builder.models import FunnelChartReport
16
16
  from advanced_report_builder.toggle import RBToggle
17
- from advanced_report_builder.utils import split_attr, encode_attribute, decode_attribute
17
+ from advanced_report_builder.utils import split_attr, encode_attribute, decode_attribute, get_report_builder_class
18
18
  from advanced_report_builder.views.charts_base import ChartBaseView, ChartBaseFieldForm
19
19
  from advanced_report_builder.views.modals_base import QueryBuilderModalBaseMixin, QueryBuilderModalBase
20
20
 
@@ -110,10 +110,12 @@ class FunnelChartFieldForm(ChartBaseFieldForm):
110
110
 
111
111
  self.fields['multiple_columns'] = BooleanField(required=False, widget=RBToggle())
112
112
 
113
- report_builder_fields = getattr(base_model, report_type.report_builder_class_name, None)
113
+ report_builder_class = get_report_builder_class(model=base_model,
114
+ report_type=report_type)
115
+
114
116
  fields = []
115
117
  self._get_query_builder_foreign_key_fields(base_model=base_model,
116
- report_builder_fields=report_builder_fields,
118
+ report_builder_class=report_builder_class,
117
119
  fields=fields)
118
120
 
119
121
  self.fields['multiple_column_field'] = ChoiceField(choices=fields, required=False)
@@ -30,7 +30,7 @@ from advanced_report_builder.globals import DATE_FORMAT_TYPES_DJANGO_FORMAT, DAT
30
30
  DATE_FORMAT_TYPE_SHORT_WORDS_MM_YY
31
31
  from advanced_report_builder.models import KanbanReport, KanbanReportLane, ReportType, KanbanReportDescription
32
32
  from advanced_report_builder.toggle import RBToggle
33
- from advanced_report_builder.utils import crispy_modal_link_args, get_field_details
33
+ from advanced_report_builder.utils import crispy_modal_link_args, get_field_details, get_report_builder_class
34
34
  from advanced_report_builder.variable_date import VariableDate
35
35
  from advanced_report_builder.views.charts_base import ChartJSTable
36
36
  from advanced_report_builder.views.modals_base import QueryBuilderModalBase
@@ -116,7 +116,8 @@ class KanbanView(ReportBase, FilterQueryMixin, TemplateView):
116
116
 
117
117
  table = self.chart_js_table(model=base_model)
118
118
 
119
- report_builder_class = getattr(base_model, kanban_report_lane.report_type.report_builder_class_name, None)
119
+ report_builder_class = get_report_builder_class(model=base_model,
120
+ report_type=kanban_report_lane.report_type)
120
121
  table_indexes = []
121
122
 
122
123
  if kanban_report_lane.heading_field is not None:
@@ -222,7 +223,8 @@ class KanbanView(ReportBase, FilterQueryMixin, TemplateView):
222
223
 
223
224
  for kanban_report_lane in kanban_report_lanes:
224
225
  base_model = kanban_report_lane.get_base_modal()
225
- report_builder_class = getattr(base_model, kanban_report_lane.report_type.report_builder_class_name, None)
226
+ report_builder_class = get_report_builder_class(model=base_model,
227
+ report_type=kanban_report_lane.report_type)
226
228
  if kanban_report_lane.multiple_type == KanbanReportLane.MULTIPLE_TYPE_NA:
227
229
  self.get_lane(base_model=base_model,
228
230
  kanban_report_lane=kanban_report_lane,
@@ -20,7 +20,7 @@ from advanced_report_builder.globals import ANNOTATION_VALUE_YEAR, \
20
20
  ANNOTATION_VALUE_QUARTER, ANNOTATION_VALUE_MONTH, ANNOTATION_VALUE_WEEK, ANNOTATION_VALUE_DAY
21
21
  from advanced_report_builder.models import LineChartReport, ReportType
22
22
  from advanced_report_builder.toggle import RBToggle
23
- from advanced_report_builder.utils import split_attr, encode_attribute, decode_attribute
23
+ from advanced_report_builder.utils import split_attr, encode_attribute, decode_attribute, get_report_builder_class
24
24
  from advanced_report_builder.views.charts_base import ChartBaseView, ChartJSTable, ChartBaseFieldForm
25
25
  from advanced_report_builder.views.modals_base import QueryBuilderModalBaseMixin, QueryBuilderModalBase
26
26
 
@@ -212,11 +212,11 @@ class LineChartFieldForm(ChartBaseFieldForm):
212
212
  self.fields['filter'].initial = decode_attribute(data_attr['filter'])
213
213
 
214
214
  self.fields['multiple_columns'] = BooleanField(required=False, widget=RBToggle())
215
-
216
- report_builder_fields = getattr(base_model, report_type.report_builder_class_name, None)
215
+ report_builder_class = get_report_builder_class(model=base_model,
216
+ report_type=report_type)
217
217
  fields = []
218
218
  self._get_query_builder_foreign_key_fields(base_model=base_model,
219
- report_builder_fields=report_builder_fields,
219
+ report_builder_class=report_builder_class,
220
220
  fields=fields)
221
221
 
222
222
  self.fields['multiple_column_field'] = ChoiceField(choices=fields, required=False)
@@ -15,7 +15,7 @@ from django_modals.widgets.select2 import Select2
15
15
  from advanced_report_builder.field_types import FieldTypes
16
16
  from advanced_report_builder.globals import DATE_FIELDS, NUMBER_FIELDS, LINK_COLUMNS, COLOUR_COLUMNS
17
17
  from advanced_report_builder.models import ReportQuery, ReportType
18
- from advanced_report_builder.utils import get_field_details
18
+ from advanced_report_builder.utils import get_field_details, get_report_builder_class
19
19
 
20
20
 
21
21
  class QueryBuilderModelForm(ModelCrispyForm):
@@ -32,7 +32,8 @@ class QueryBuilderModalBaseMixin:
32
32
 
33
33
  report_type = get_object_or_404(ReportType, pk=report_type_id)
34
34
  base_model = report_type.content_type.model_class()
35
- report_builder_class = getattr(base_model, report_type.report_builder_class_name, None)
35
+ report_builder_class = get_report_builder_class(model=base_model,
36
+ report_type=report_type)
36
37
  return report_builder_class, base_model
37
38
 
38
39
  def get_query_builder_report_type_field(self, report_type_id):
@@ -68,7 +69,8 @@ class QueryBuilderModalBaseMixin:
68
69
  for include_field, include in report_builder_class.includes.items():
69
70
  app_label, model, report_builder_fields_str = include['model'].split('.')
70
71
  new_model = apps.get_model(app_label, model)
71
- new_report_builder_fields = getattr(new_model, report_builder_fields_str, None)
72
+ new_report_builder_class = get_report_builder_class(model=new_model,
73
+ class_name=report_builder_fields_str)
72
74
 
73
75
  if new_model != previous_base_model:
74
76
  _foreign_key = getattr(base_model, include_field, None)
@@ -89,7 +91,7 @@ class QueryBuilderModalBaseMixin:
89
91
 
90
92
  self._get_query_builder_fields(base_model=new_model,
91
93
  query_builder_filters=query_builder_filters,
92
- report_builder_class=new_report_builder_fields,
94
+ report_builder_class=new_report_builder_class,
93
95
  prefix=f"{prefix}{include_field}__",
94
96
  title_prefix=f"{include['title']} --> ",
95
97
  previous_base_model=base_model)
@@ -157,10 +159,10 @@ class QueryBuilderModalBase(QueryBuilderModalBaseMixin, ModelFormModal):
157
159
  tables.append({'name': title,
158
160
  'colour': colour})
159
161
 
162
+ report_builder_class_fields = report_builder_class.fields
163
+
160
164
  if extra_fields:
161
- report_builder_class_fields = report_builder_class.fields + extra_fields
162
- else:
163
- report_builder_class_fields = report_builder_class.fields
165
+ report_builder_class_fields += extra_fields
164
166
 
165
167
  for report_builder_field in report_builder_class_fields:
166
168
 
@@ -206,7 +208,8 @@ class QueryBuilderModalBase(QueryBuilderModalBaseMixin, ModelFormModal):
206
208
 
207
209
  new_model = apps.get_model(app_label, model)
208
210
  if new_model != previous_base_model:
209
- new_report_builder_class = getattr(new_model, report_builder_fields_str, None)
211
+ new_report_builder_class = get_report_builder_class(model=new_model,
212
+ class_name=report_builder_fields_str)
210
213
  self._get_fields(base_model=new_model,
211
214
  fields=fields,
212
215
  report_builder_class=new_report_builder_class,
@@ -328,37 +331,38 @@ class QueryBuilderModalBase(QueryBuilderModalBaseMixin, ModelFormModal):
328
331
  if selected_field_id:
329
332
  form.fields[field_name].initial = selected_field_id
330
333
  base_model = report_type.content_type.model_class()
331
- report_builder_fields = getattr(base_model, report_type.report_builder_class_name, None)
334
+ report_builder_class = get_report_builder_class(model=base_model,
335
+ report_type=report_type)
332
336
  if field_type == 'date':
333
337
  self._get_date_fields(base_model=base_model,
334
338
  fields=_fields,
335
- report_builder_class=report_builder_fields,
339
+ report_builder_class=report_builder_class,
336
340
  selected_field_id=selected_field_id)
337
341
  elif field_type == 'link':
338
342
  self._get_column_link_fields(base_model=base_model,
339
343
  fields=_fields,
340
- report_builder_class=report_builder_fields,
344
+ report_builder_class=report_builder_class,
341
345
  selected_field_id=selected_field_id)
342
346
  elif field_type == 'number':
343
347
  self._get_number_fields(base_model=base_model,
344
348
  fields=_fields,
345
- report_builder_class=report_builder_fields,
349
+ report_builder_class=report_builder_class,
346
350
  selected_field_id=selected_field_id)
347
351
  elif field_type == 'colour':
348
352
  self._get_colour_fields(base_model=base_model,
349
353
  fields=_fields,
350
- report_builder_class=report_builder_fields,
354
+ report_builder_class=report_builder_class,
351
355
  selected_field_id=selected_field_id)
352
356
  elif field_type == 'all':
353
357
  self._get_fields(base_model=base_model,
354
358
  fields=_fields,
355
- report_builder_class=report_builder_fields,
359
+ report_builder_class=report_builder_class,
356
360
  selected_field_id=selected_field_id,
357
361
  for_select2=True)
358
362
  elif field_type == 'order':
359
363
  self._get_fields(base_model=base_model,
360
364
  fields=_fields,
361
- report_builder_class=report_builder_fields,
365
+ report_builder_class=report_builder_class,
362
366
  selected_field_id=selected_field_id,
363
367
  for_select2=True,
364
368
  show_order_by_fields=True)
@@ -14,7 +14,7 @@ from django_modals.widgets.select2 import Select2Multiple
14
14
 
15
15
  from advanced_report_builder.models import PieChartReport
16
16
  from advanced_report_builder.toggle import RBToggle
17
- from advanced_report_builder.utils import split_attr, encode_attribute, decode_attribute
17
+ from advanced_report_builder.utils import split_attr, encode_attribute, decode_attribute, get_report_builder_class
18
18
  from advanced_report_builder.views.charts_base import ChartBaseView, ChartBaseFieldForm
19
19
  from advanced_report_builder.views.modals_base import QueryBuilderModalBaseMixin, QueryBuilderModalBase
20
20
 
@@ -109,11 +109,11 @@ class PieChartFieldForm(ChartBaseFieldForm):
109
109
  self.fields['filter'].initial = decode_attribute(data_attr['filter'])
110
110
 
111
111
  self.fields['multiple_columns'] = BooleanField(required=False, widget=RBToggle())
112
-
113
- report_builder_fields = getattr(base_model, report_type.report_builder_class_name, None)
112
+ report_builder_class = get_report_builder_class(model=base_model,
113
+ report_type=report_type)
114
114
  fields = []
115
115
  self._get_query_builder_foreign_key_fields(base_model=base_model,
116
- report_builder_fields=report_builder_fields,
116
+ report_builder_class=report_builder_class,
117
117
  fields=fields)
118
118
 
119
119
  self.fields['multiple_column_field'] = ChoiceField(choices=fields, required=False)
@@ -12,7 +12,6 @@ from django_modals.fields import FieldEx
12
12
  from django_modals.helper import show_modal
13
13
  from django_modals.modals import Modal
14
14
  from django_modals.processes import PROCESS_EDIT_DELETE, PERMISSION_OFF
15
- from django_modals.widgets.colour_picker import ColourPickerWidget
16
15
  from django_modals.widgets.select2 import Select2Multiple
17
16
  from django_modals.widgets.widgets import Toggle
18
17
 
@@ -21,7 +20,7 @@ from advanced_report_builder.exceptions import ReportError
21
20
  from advanced_report_builder.globals import NUMBER_FIELDS, ANNOTATION_CHOICE_SUM, \
22
21
  ANNOTATION_CHOICE_AVERAGE_SUM_FROM_COUNT
23
22
  from advanced_report_builder.models import SingleValueReport, ReportType
24
- from advanced_report_builder.utils import get_field_details
23
+ from advanced_report_builder.utils import get_field_details, get_report_builder_class
25
24
  from advanced_report_builder.variable_date import VariableDate
26
25
  from advanced_report_builder.views.charts_base import ChartBaseView
27
26
  from advanced_report_builder.views.datatables.modal import TableFieldModal, TableFieldForm
@@ -42,7 +41,8 @@ class SingleValueView(ChartBaseView):
42
41
  def _process_aggregations(self, fields, aggregations_type=ANNOTATION_CHOICE_SUM, divider=None):
43
42
  field = self.chart_report.field
44
43
  base_model = self.chart_report.get_base_modal()
45
- report_builder_class = getattr(base_model, self.chart_report.report_type.report_builder_class_name, None)
44
+ report_builder_class = get_report_builder_class(model=base_model,
45
+ report_type=self.chart_report.report_type)
46
46
 
47
47
  django_field, col_type_override, _, _ = get_field_details(base_model=base_model,
48
48
  field=field,
@@ -140,7 +140,8 @@ class SingleValueView(ChartBaseView):
140
140
  denominator_field = self.chart_report.field
141
141
  numerator_field = self.chart_report.numerator
142
142
  base_model = self.chart_report.get_base_modal()
143
- report_builder_class = getattr(base_model, self.chart_report.report_type.report_builder_class_name, None)
143
+ report_builder_class = get_report_builder_class(model=base_model,
144
+ report_type=self.chart_report.report_type)
144
145
 
145
146
  deno_django_field, denominator_col_type_override, _, _ = get_field_details(
146
147
  base_model=base_model,
@@ -430,8 +431,8 @@ class SingleValueShowBreakdownModal(TableUtilsMixin, Modal):
430
431
  table = self.add_table(base_model=base_model)
431
432
  table.extra_filters = self.extra_filters
432
433
  table_fields = single_value_report.breakdown_fields
433
- report_builder_class = getattr(base_model,
434
- self.table_report.report_type.report_builder_class_name, None)
434
+ report_builder_class = get_report_builder_class(model=base_model,
435
+ report_type=self.table_report.report_type)
435
436
  fields_used = set()
436
437
  self.process_query_results(report_builder_class=report_builder_class,
437
438
  table=table,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: django-advanced-report-builder
3
- Version: 0.4.3
3
+ Version: 0.5.0
4
4
  Summary: Django app that allows you to build reports from modals
5
5
  Home-page: https://github.com/django-advance-utils/django-advanced-report-builder
6
6
  Author: Thomas Turner
@@ -5,7 +5,7 @@ with open("README.md", "r") as fh:
5
5
 
6
6
  setuptools.setup(
7
7
  name="django-advanced-report-builder",
8
- version="0.4.3",
8
+ version="0.5.0",
9
9
  author="Thomas Turner",
10
10
  description="Django app that allows you to build reports from modals",
11
11
  long_description=long_description,