django-advanced-report-builder 0.9.3__tar.gz → 0.9.5__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 (184) hide show
  1. {django-advanced-report-builder-0.9.3/django_advanced_report_builder.egg-info → django_advanced_report_builder-0.9.5}/PKG-INFO +17 -2
  2. django_advanced_report_builder-0.9.5/advanced_report_builder/.ruff_cache/.gitignore +2 -0
  3. django_advanced_report_builder-0.9.5/advanced_report_builder/.ruff_cache/0.11.9/16555798982502606642 +0 -0
  4. django_advanced_report_builder-0.9.5/advanced_report_builder/.ruff_cache/CACHEDIR.TAG +1 -0
  5. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/admin.py +12 -11
  6. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/column_types.py +2 -2
  7. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/columns.py +13 -15
  8. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/data_merge/utils.py +2 -5
  9. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/duplicate.py +6 -5
  10. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/field_types.py +2 -6
  11. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/field_utils.py +4 -13
  12. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/filter_query.py +6 -12
  13. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/globals.py +3 -4
  14. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/models.py +10 -12
  15. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/signals.py +1 -1
  16. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/urls.py +14 -14
  17. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/variable_date.py +2 -3
  18. django_advanced_report_builder-0.9.5/advanced_report_builder/views/.DS_Store +0 -0
  19. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/views/bar_charts.py +16 -16
  20. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/views/charts_base.py +7 -7
  21. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/views/custom.py +2 -3
  22. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/views/dashboard.py +4 -4
  23. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/views/datatables/datatables.py +3 -7
  24. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/views/datatables/modal.py +79 -76
  25. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/views/datatables/utils.py +69 -60
  26. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/views/funnel_charts.py +6 -6
  27. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/views/helpers.py +1 -1
  28. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/views/kanban.py +39 -38
  29. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/views/line_charts.py +12 -12
  30. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/views/modals_base.py +1 -5
  31. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/views/pie_charts.py +6 -6
  32. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/views/query_modal/mixin.py +2 -2
  33. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/views/query_modal/modal.py +5 -8
  34. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/views/report_utils_mixin.py +33 -28
  35. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/views/reports.py +4 -5
  36. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/views/single_values.py +15 -16
  37. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/views/targets/views.py +1 -1
  38. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5/django_advanced_report_builder.egg-info}/PKG-INFO +17 -2
  39. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/django_advanced_report_builder.egg-info/SOURCES.txt +3 -0
  40. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/setup.py +1 -1
  41. django-advanced-report-builder-0.9.3/advanced_report_builder/views/.DS_Store +0 -0
  42. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/LICENSE +0 -0
  43. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/MANIFEST.in +0 -0
  44. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/README.md +0 -0
  45. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/.DS_Store +0 -0
  46. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/__init__.py +0 -0
  47. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/apps.py +0 -0
  48. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/customise.py +0 -0
  49. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/data_merge/__init__.py +0 -0
  50. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/data_merge/widget.py +0 -0
  51. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/exceptions.py +0 -0
  52. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/generate_series.py +0 -0
  53. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/includes.py +0 -0
  54. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/migrations/0001_initial.py +0 -0
  55. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/migrations/0002_auto_20220209_1657.py +0 -0
  56. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/migrations/0003_auto_20220215_1219.py +0 -0
  57. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/migrations/0004_customreport.py +0 -0
  58. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/migrations/0005_auto_20220303_0958.py +0 -0
  59. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/migrations/0006_auto_20220310_1147.py +0 -0
  60. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/migrations/0007_auto_20220322_1939.py +0 -0
  61. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/migrations/0008_auto_20220404_1144.py +0 -0
  62. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/migrations/0009_auto_20230428_1554.py +0 -0
  63. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/migrations/0010_auto_20230428_2033.py +0 -0
  64. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/migrations/0011_auto_20230620_1449.py +0 -0
  65. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/migrations/0012_auto_20230718_1642.py +0 -0
  66. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/migrations/0013_reportqueryorder.py +0 -0
  67. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/migrations/0014_auto_20240706_2207.py +0 -0
  68. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/migrations/0015_report_user_created_report_user_updated.py +0 -0
  69. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/migrations/__init__.py +0 -0
  70. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/report_builder.py +0 -0
  71. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/.DS_Store +0 -0
  72. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/.DS_Store +0 -0
  73. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/chart-js/js/chart.esm.js +0 -0
  74. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/chart-js/js/chart.js +0 -0
  75. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/chart-js/js/chart.min.js +0 -0
  76. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/chart-js/js/chartjs-adapter-moment.min.js +0 -0
  77. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/chart-js/js/chartjs-plugin-datalabels.min.js +0 -0
  78. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/chart-js/js/chunks/helpers.segment.js +0 -0
  79. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/chart-js/js/helpers.esm.js +0 -0
  80. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/d3/js/d3.js +0 -0
  81. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/d3/js/d3.min.js +0 -0
  82. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/d3-funnel/js/d3-funnel.js +0 -0
  83. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/d3-funnel/js/d3-funnel.min.js +0 -0
  84. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/dashboard/js/dashboard.js +0 -0
  85. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/dot/js/.gitignore +0 -0
  86. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/dot/js/.travis.yml +0 -0
  87. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/dot/js/LICENSE-DOT.txt +0 -0
  88. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/dot/js/README.md +0 -0
  89. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/dot/js/bin/dot-packer +0 -0
  90. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/dot/js/bower.json +0 -0
  91. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/dot/js/doT.js +0 -0
  92. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/dot/js/doT.min.js +0 -0
  93. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/dot/js/doU.js +0 -0
  94. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/dot/js/index.js +0 -0
  95. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/dot/js/package.json +0 -0
  96. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/fullcalendar/.DS_Store +0 -0
  97. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/jquery_extendext/js/jQuery.extendext.js +0 -0
  98. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/jquery_extendext/js/jQuery.extendext.min.js +0 -0
  99. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/.DS_Store +0 -0
  100. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/css/.DS_Store +0 -0
  101. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/css/query-builder.dark.css +0 -0
  102. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/css/query-builder.dark.min.css +0 -0
  103. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/css/query-builder.default.css +0 -0
  104. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/css/query-builder.default.min.css +0 -0
  105. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.ar.js +0 -0
  106. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.az.js +0 -0
  107. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.bg.js +0 -0
  108. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.cs.js +0 -0
  109. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.da.js +0 -0
  110. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.de.js +0 -0
  111. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.el.js +0 -0
  112. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.en.js +0 -0
  113. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.es.js +0 -0
  114. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.fa-IR.js +0 -0
  115. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.fr.js +0 -0
  116. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.he.js +0 -0
  117. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.it.js +0 -0
  118. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.nl.js +0 -0
  119. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.no.js +0 -0
  120. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.pl.js +0 -0
  121. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.pt-BR.js +0 -0
  122. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.pt-PT.js +0 -0
  123. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.ro.js +0 -0
  124. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.ru.js +0 -0
  125. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.sq.js +0 -0
  126. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.tr.js +0 -0
  127. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.ua.js +0 -0
  128. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.zh-CN.js +0 -0
  129. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/js/.DS_Store +0 -0
  130. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/js/plugins/.DS_Store +0 -0
  131. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/js/plugins/currency/plugin.js +0 -0
  132. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/js/query-builder.js +0 -0
  133. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/js/query-builder.min.js +0 -0
  134. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/js/query-builder.standalone.js +0 -0
  135. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/js/query-builder.standalone.min.js +0 -0
  136. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/.DS_Store +0 -0
  137. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/dark.scss +0 -0
  138. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/default.scss +0 -0
  139. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/_bt-checkbox.scss +0 -0
  140. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/_bt-tooltip-errors.scss +0 -0
  141. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/_filter-description.scss +0 -0
  142. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/_invert.scss +0 -0
  143. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/_sortable.scss +0 -0
  144. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/bt-tooltip-errors.scss +0 -0
  145. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/filter-description.scss +0 -0
  146. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/invert.scss +0 -0
  147. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/sortable.scss +0 -0
  148. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/templates/advanced_report_builder/charts/bar/middle.html +0 -0
  149. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/templates/advanced_report_builder/charts/funnel/middle.html +0 -0
  150. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/templates/advanced_report_builder/charts/funnel/report.html +0 -0
  151. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/templates/advanced_report_builder/charts/line/middle.html +0 -0
  152. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/templates/advanced_report_builder/charts/modal.html +0 -0
  153. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/templates/advanced_report_builder/charts/modal_field.html +0 -0
  154. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/templates/advanced_report_builder/charts/pie/middle.html +0 -0
  155. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/templates/advanced_report_builder/charts/report.html +0 -0
  156. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/templates/advanced_report_builder/data_merge/data_merge.html +0 -0
  157. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/templates/advanced_report_builder/datatables/fields/modal.html +0 -0
  158. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/templates/advanced_report_builder/datatables/fields/single_query_builder.html +0 -0
  159. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/templates/advanced_report_builder/datatables/modal.html +0 -0
  160. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/templates/advanced_report_builder/datatables/onclick_menu.html +0 -0
  161. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/templates/advanced_report_builder/datatables/report.html +0 -0
  162. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/templates/advanced_report_builder/datatables/select_pivot.html +0 -0
  163. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/templates/advanced_report_builder/kanban/description_modal.html +0 -0
  164. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/templates/advanced_report_builder/kanban/middle.html +0 -0
  165. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/templates/advanced_report_builder/kanban/modal.html +0 -0
  166. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/templates/advanced_report_builder/kanban/report.html +0 -0
  167. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/templates/advanced_report_builder/query_builder.html +0 -0
  168. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/templates/advanced_report_builder/query_modal.html +0 -0
  169. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/templates/advanced_report_builder/select_column.html +0 -0
  170. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/templates/advanced_report_builder/single_values/middle.html +0 -0
  171. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/templates/advanced_report_builder/single_values/modal.html +0 -0
  172. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/templates/advanced_report_builder/single_values/report.html +0 -0
  173. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/toggle.py +0 -0
  174. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/utils.py +0 -0
  175. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/views/__init__.py +0 -0
  176. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/views/datatables/__init__.py +0 -0
  177. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/views/query_modal/__init__.py +0 -0
  178. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/views/report.py +0 -0
  179. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/views/targets/__init__.py +0 -0
  180. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/advanced_report_builder/views/targets/utils.py +0 -0
  181. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/django_advanced_report_builder.egg-info/dependency_links.txt +0 -0
  182. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/django_advanced_report_builder.egg-info/requires.txt +0 -0
  183. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/django_advanced_report_builder.egg-info/top_level.txt +0 -0
  184. {django-advanced-report-builder-0.9.3 → django_advanced_report_builder-0.9.5}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: django-advanced-report-builder
3
- Version: 0.9.3
3
+ Version: 0.9.5
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
@@ -10,6 +10,21 @@ Classifier: Operating System :: OS Independent
10
10
  Requires-Python: >=3.6
11
11
  Description-Content-Type: text/markdown
12
12
  License-File: LICENSE
13
+ Requires-Dist: Django>=3.2
14
+ Requires-Dist: django-filtered-datatables>=0.0.21
15
+ Requires-Dist: django-ajax-helpers>=0.0.20
16
+ Requires-Dist: django-nested-modals>=0.0.21
17
+ Requires-Dist: time-stamped-model>=0.2.3
18
+ Requires-Dist: date-offset>=0.0.2
19
+ Dynamic: author
20
+ Dynamic: classifier
21
+ Dynamic: description
22
+ Dynamic: description-content-type
23
+ Dynamic: home-page
24
+ Dynamic: license-file
25
+ Dynamic: requires-dist
26
+ Dynamic: requires-python
27
+ Dynamic: summary
13
28
 
14
29
  [![PyPI version](https://badge.fury.io/py/django-advanced-report-builder.svg)](https://badge.fury.io/py/django-advanced-report-builder)
15
30
 
@@ -0,0 +1,2 @@
1
+ # Automatically created by ruff.
2
+ *
@@ -0,0 +1 @@
1
+ Signature: 8a477f597d28d172789f06886806bc55
@@ -1,22 +1,23 @@
1
1
  from django.contrib import admin
2
+
2
3
  from advanced_report_builder.models import (
3
- Report,
4
- ReportType,
5
- TableReport,
6
- ReportQuery,
7
- SingleValueReport,
4
+ BarChartReport,
5
+ CustomReport,
8
6
  Dashboard,
9
7
  DashboardReport,
10
- BarChartReport,
11
- LineChartReport,
12
- PieChartReport,
13
8
  FunnelChartReport,
14
- ReportTag,
15
9
  KanbanReport,
10
+ KanbanReportDescription,
16
11
  KanbanReportLane,
12
+ LineChartReport,
13
+ PieChartReport,
14
+ Report,
15
+ ReportQuery,
16
+ ReportTag,
17
+ ReportType,
18
+ SingleValueReport,
19
+ TableReport,
17
20
  Target,
18
- CustomReport,
19
- KanbanReportDescription,
20
21
  )
21
22
 
22
23
 
@@ -1,12 +1,12 @@
1
1
  from django.db import models
2
- from django_datatables.columns import CurrencyColumn, CurrencyPenceColumn, ColumnLink
2
+ from django_datatables.columns import ColumnLink, CurrencyColumn, CurrencyPenceColumn
3
3
 
4
4
  from advanced_report_builder.columns import (
5
5
  ColourColumn,
6
- ReverseForeignKeyStrColumn,
7
6
  ReverseForeignKeyBoolColumn,
8
7
  ReverseForeignKeyChoiceColumn,
9
8
  ReverseForeignKeyDateColumn,
9
+ ReverseForeignKeyStrColumn,
10
10
  )
11
11
 
12
12
  NUMBER_FIELDS = (
@@ -1,31 +1,29 @@
1
1
  from django.contrib.humanize.templatetags.humanize import intcomma
2
- from django.contrib.postgres.aggregates import StringAgg, BoolOr, BoolAnd, ArrayAgg
3
- from django.db.models import Count, BooleanField, Min, Max
2
+ from django.contrib.postgres.aggregates import ArrayAgg, BoolAnd, BoolOr, StringAgg
3
+ from django.db.models import BooleanField, Count, Max, Min
4
4
  from django.db.models.functions import Cast
5
5
  from django_datatables.columns import (
6
6
  ColumnBase,
7
- CurrencyPenceColumn,
8
- CurrencyColumn,
9
- NoHeadingColumn,
10
7
  ColumnLink,
8
+ CurrencyColumn,
9
+ CurrencyPenceColumn,
11
10
  ManyToManyColumn,
11
+ NoHeadingColumn,
12
12
  )
13
- from django_datatables.helpers import get_url, DUMMY_ID, render_replace
13
+ from django_datatables.helpers import DUMMY_ID, get_url, render_replace
14
14
  from django_datatables.model_def import DatatableModel
15
15
 
16
16
  from advanced_report_builder.globals import (
17
- REVERSE_FOREIGN_KEY_DELIMITER_COMMA,
18
- REVERSE_FOREIGN_KEY_DELIMITER_VALUES,
19
17
  DATE_FORMAT_TYPE_DD_MM_YY_SLASH,
20
18
  DATE_FORMAT_TYPES_DJANGO_FORMAT,
19
+ REVERSE_FOREIGN_KEY_ANNOTATION_BOOLEAN_AND,
20
+ REVERSE_FOREIGN_KEY_ANNOTATION_BOOLEAN_ARRAY,
21
+ REVERSE_FOREIGN_KEY_ANNOTATION_BOOLEAN_XOR,
21
22
  REVERSE_FOREIGN_KEY_ANNOTATION_DATE_ARRAY,
22
23
  REVERSE_FOREIGN_KEY_ANNOTATION_DATE_MAX,
23
24
  REVERSE_FOREIGN_KEY_ANNOTATION_DATE_MIN,
24
- )
25
- from advanced_report_builder.globals import (
26
- REVERSE_FOREIGN_KEY_ANNOTATION_BOOLEAN_XOR,
27
- REVERSE_FOREIGN_KEY_ANNOTATION_BOOLEAN_AND,
28
- REVERSE_FOREIGN_KEY_ANNOTATION_BOOLEAN_ARRAY,
25
+ REVERSE_FOREIGN_KEY_DELIMITER_COMMA,
26
+ REVERSE_FOREIGN_KEY_DELIMITER_VALUES,
29
27
  )
30
28
 
31
29
 
@@ -70,7 +68,7 @@ class ReportBuilderNumberColumn(ColumnBase):
70
68
  class ReportBuilderCurrencyPenceColumn(CurrencyPenceColumn):
71
69
  def row_result(self, data, _page_data):
72
70
  try:
73
- return intcomma('{:.2f}'.format(data[self.field] / 100.0))
71
+ return intcomma(f'{data[self.field] / 100.0:.2f}')
74
72
  except (KeyError, TypeError):
75
73
  return '0.00'
76
74
 
@@ -78,7 +76,7 @@ class ReportBuilderCurrencyPenceColumn(CurrencyPenceColumn):
78
76
  class ReportBuilderCurrencyColumn(CurrencyColumn):
79
77
  def row_result(self, data, _page_data):
80
78
  try:
81
- return intcomma('{:.2f}'.format(data[self.field]))
79
+ return intcomma(f'{data[self.field]:.2f}')
82
80
  except (KeyError, TypeError):
83
81
  return '0.00'
84
82
 
@@ -44,10 +44,7 @@ class DataMergeUtils(ReportBuilderFieldUtils):
44
44
  title = include.get('title')
45
45
  if title is None or title == '':
46
46
  title = new_report_builder_class.title
47
- if menus is not None:
48
- menu = []
49
- else:
50
- menu = None
47
+ menu = [] if menus is not None else None
51
48
  self.get_menu_fields(
52
49
  base_model=new_model,
53
50
  report_builder_class=new_report_builder_class,
@@ -101,7 +98,7 @@ class DataMergeUtils(ReportBuilderFieldUtils):
101
98
  report_builder_class=report_builder_class,
102
99
  table=table,
103
100
  )
104
- if django_field is not None or isinstance(col_type_override.field, (list, tuple)):
101
+ if django_field is not None or isinstance(col_type_override.field, list | tuple):
105
102
  if field not in columns and f'.{field}' not in columns:
106
103
  columns.add('.' + field)
107
104
 
@@ -1,16 +1,17 @@
1
1
  from copy import deepcopy
2
2
 
3
+ from django.shortcuts import get_object_or_404
4
+
3
5
  from advanced_report_builder.models import (
4
- TableReport,
5
- SingleValueReport,
6
6
  BarChartReport,
7
- PieChartReport,
7
+ CustomReport,
8
8
  FunnelChartReport,
9
9
  KanbanReport,
10
10
  LineChartReport,
11
- CustomReport,
11
+ PieChartReport,
12
+ SingleValueReport,
13
+ TableReport,
12
14
  )
13
- from django.shortcuts import get_object_or_404
14
15
 
15
16
 
16
17
  class DuplicateReport:
@@ -76,7 +76,7 @@ class FieldTypes:
76
76
  'operators': self.get_operator(self.FIELD_TYPE_MULTIPLE_CHOICE),
77
77
  }
78
78
  )
79
- elif isinstance(django_field, (models.CharField, models.TextField, models.EmailField)):
79
+ elif isinstance(django_field, models.CharField | models.TextField | models.EmailField):
80
80
  query_builder_filters.append(
81
81
  {
82
82
  'id': column_id,
@@ -89,11 +89,7 @@ class FieldTypes:
89
89
  )
90
90
  elif isinstance(
91
91
  django_field,
92
- (
93
- models.IntegerField,
94
- models.PositiveSmallIntegerField,
95
- models.PositiveIntegerField,
96
- ),
92
+ models.IntegerField | models.PositiveSmallIntegerField | models.PositiveIntegerField,
97
93
  ):
98
94
  if django_field.choices is None:
99
95
  query_builder_filter = {
@@ -1,12 +1,12 @@
1
+ from django.apps import apps
1
2
  from django_datatables.columns import ColumnNameError
2
3
  from django_datatables.datatables import ColumnInitialisor
3
- from django.apps import apps
4
4
 
5
5
  from advanced_report_builder.column_types import (
6
- NUMBER_FIELDS,
7
- LINK_COLUMNS,
8
6
  COLOUR_COLUMNS,
9
7
  DATE_FIELDS,
8
+ LINK_COLUMNS,
9
+ NUMBER_FIELDS,
10
10
  )
11
11
  from advanced_report_builder.exceptions import ReportError
12
12
  from advanced_report_builder.utils import get_report_builder_class
@@ -111,16 +111,7 @@ class ReportBuilderFieldUtils:
111
111
  selected_field_id=selected_field_value,
112
112
  for_select2=for_select2,
113
113
  )
114
- elif field_type == 'order':
115
- self._get_fields(
116
- base_model=base_model,
117
- fields=fields_values,
118
- report_builder_class=report_builder_class,
119
- selected_field_id=selected_field_value,
120
- for_select2=for_select2,
121
- show_order_by_fields=True,
122
- )
123
- elif field_type == 'django_order':
114
+ elif field_type == 'order' or field_type == 'django_order':
124
115
  self._get_fields(
125
116
  base_model=base_model,
126
117
  fields=fields_values,
@@ -79,10 +79,7 @@ class FilterQueryMixin:
79
79
  :param display_condition:
80
80
  :return:
81
81
  """
82
- if display_condition == 'AND':
83
- reduce_by = operator.and_
84
- else:
85
- reduce_by = operator.or_
82
+ reduce_by = operator.and_ if display_condition == 'AND' else operator.or_
86
83
 
87
84
  return reduce_by
88
85
 
@@ -179,7 +176,7 @@ class FilterQueryMixin:
179
176
  elif display_operator in ['not_equal', 'not_in']:
180
177
  query_list.append(~((Q((field + '__gte', value[0]))) & (Q((field + '__lte', value[1])))))
181
178
  else:
182
- query_list.append(((Q((field + '__gte', value[0]))) & (Q((field + '__lte', value[1])))))
179
+ query_list.append((Q((field + '__gte', value[0]))) & (Q((field + '__lte', value[1]))))
183
180
 
184
181
  @staticmethod
185
182
  def get_variable_year(value, query_list, display_operator, field, query_string):
@@ -229,7 +226,7 @@ class FilterQueryMixin:
229
226
  )
230
227
  else:
231
228
  query_list.append(
232
- ((Q((field + '__month__gt', start_month))) & (Q((field + '__month__lte', end_month))))
229
+ (Q((field + '__month__gt', start_month))) & (Q((field + '__month__lte', end_month)))
233
230
  )
234
231
  else:
235
232
  start_month = self.get_financial_month() - 1
@@ -246,11 +243,11 @@ class FilterQueryMixin:
246
243
  )
247
244
  else:
248
245
  query_list.append(
249
- (
246
+
250
247
  (Q((field + '__month', months[0])))
251
248
  | (Q((field + '__month', months[1])))
252
249
  | (Q((field + '__month', months[2])))
253
- )
250
+
254
251
  )
255
252
 
256
253
  def get_logged_in_user(self, value, query_list, display_operator, field, query_string):
@@ -352,10 +349,7 @@ class FilterQueryMixin:
352
349
  ):
353
350
  if pivot_str in report_builder_class.pivot_fields:
354
351
  pivot_data = report_builder_class.pivot_fields[pivot_str]
355
- if include_str == '':
356
- full_field_id = pivot_data['field']
357
- else:
358
- full_field_id = '__'.join((include_str, pivot_data['field']))
352
+ full_field_id = pivot_data['field'] if include_str == '' else '__'.join((include_str, pivot_data['field']))
359
353
 
360
354
  return {'id': full_field_id, 'details': pivot_data}
361
355
 
@@ -1,13 +1,12 @@
1
- from django.db.models import Sum, Max, Min, Count, Avg
1
+ from django.db.models import Avg, Count, Max, Min, Sum
2
2
  from django.db.models.functions import (
3
+ TruncDay,
3
4
  TruncMonth,
4
5
  TruncQuarter,
5
- TruncYear,
6
6
  TruncWeek,
7
- TruncDay,
7
+ TruncYear,
8
8
  )
9
9
 
10
-
11
10
  REVERSE_FOREIGN_KEY_DELIMITER_COMMA = 1
12
11
  REVERSE_FOREIGN_KEY_DELIMITER_SEMICOLON = 2
13
12
  REVERSE_FOREIGN_KEY_DELIMITER_PIPE = 3
@@ -1,22 +1,21 @@
1
+ from django.conf import settings
1
2
  from django.contrib.contenttypes.models import ContentType
2
3
  from django.db import models
3
4
  from django.utils.dates import MONTHS
4
- from django_datatables.columns import DatatableColumn, NoHeadingColumn, ManyToManyColumn
5
+ from django_datatables.columns import DatatableColumn, ManyToManyColumn, NoHeadingColumn
5
6
  from django_datatables.model_def import DatatableModel
6
7
  from django_modals.model_fields.colour import ColourField
7
8
  from time_stamped_model.models import TimeStampedModel
8
9
 
9
- from django.conf import settings
10
-
11
10
  from advanced_report_builder.globals import (
12
- DISPLAY_OPTION_CHOICES,
13
- DISPLAY_OPTION_2_PER_ROW,
14
- DISPLAY_OPTION_NONE,
15
- DISPLAY_OPTION_CLASSES,
11
+ ANNOTATION_CHART_SCALE,
12
+ ANNOTATION_CHOICE_COUNT,
16
13
  ANNOTATION_VALUE_CHOICES,
17
14
  ANNOTATIONS_CHOICES,
18
- ANNOTATION_CHOICE_COUNT,
19
- ANNOTATION_CHART_SCALE,
15
+ DISPLAY_OPTION_2_PER_ROW,
16
+ DISPLAY_OPTION_CHOICES,
17
+ DISPLAY_OPTION_CLASSES,
18
+ DISPLAY_OPTION_NONE,
20
19
  )
21
20
  from advanced_report_builder.signals import model_report_save
22
21
 
@@ -138,14 +137,14 @@ class Report(TimeStampedModel):
138
137
  on_delete=models.SET_NULL,
139
138
  null=True,
140
139
  blank=True,
141
- related_name='report_user_created_set'
140
+ related_name='report_user_created_set',
142
141
  )
143
142
  user_updated = models.ForeignKey(
144
143
  settings.AUTH_USER_MODEL,
145
144
  on_delete=models.SET_NULL,
146
145
  null=True,
147
146
  blank=True,
148
- related_name='report_user_updated_set'
147
+ related_name='report_user_updated_set',
149
148
  )
150
149
 
151
150
  def __str__(self):
@@ -161,7 +160,6 @@ class Report(TimeStampedModel):
161
160
  return self.name
162
161
 
163
162
  def save(self, *args, **kwargs):
164
-
165
163
  current_user = getattr(self, '_current_user', None)
166
164
  if current_user is not None and current_user.is_authenticated:
167
165
  self.user_updated = current_user
@@ -1,3 +1,3 @@
1
1
  from django.dispatch import Signal
2
2
 
3
- model_report_save = Signal()
3
+ model_report_save = Signal()
@@ -1,45 +1,45 @@
1
1
  from django.urls import path
2
2
 
3
3
  from advanced_report_builder.views.bar_charts import (
4
- BarChartModal,
4
+ BarChartBreakdownFieldModal,
5
5
  BarChartFieldModal,
6
+ BarChartModal,
6
7
  BarChartShowBreakdownModal,
7
- BarChartBreakdownFieldModal,
8
8
  )
9
9
  from advanced_report_builder.views.custom import CustomModal
10
10
  from advanced_report_builder.views.dashboard import (
11
- DashboardReportModal,
12
- DashboardModal,
13
11
  DashboardAddReportModal,
12
+ DashboardModal,
13
+ DashboardReportModal,
14
14
  )
15
15
  from advanced_report_builder.views.datatables.modal import (
16
- TableModal,
17
16
  TableFieldModal,
17
+ TableModal,
18
18
  TablePivotModal,
19
19
  )
20
- from advanced_report_builder.views.query_modal.modal import QueryModal, QueryOrderModal
21
20
  from advanced_report_builder.views.funnel_charts import (
22
- FunnelChartModal,
23
21
  FunnelChartFieldModal,
22
+ FunnelChartModal,
24
23
  )
25
24
  from advanced_report_builder.views.kanban import (
26
- KanbanModal,
27
- KanbanLaneModal,
28
- KanbanLaneDuplicateModal,
29
- KanbanDescriptionModal,
30
25
  KanbanDescriptionDuplicateModal,
26
+ KanbanDescriptionModal,
27
+ KanbanLaneDuplicateModal,
28
+ KanbanLaneModal,
29
+ KanbanModal,
31
30
  )
32
31
  from advanced_report_builder.views.line_charts import (
33
- LineChartModal,
34
32
  LineChartFieldModal,
33
+ LineChartModal,
35
34
  )
36
- from advanced_report_builder.views.pie_charts import PieChartModal, PieChartFieldModal
35
+ from advanced_report_builder.views.pie_charts import PieChartFieldModal, PieChartModal
36
+ from advanced_report_builder.views.query_modal.modal import QueryModal, QueryOrderModal
37
37
  from advanced_report_builder.views.reports import DuplicateReportModal
38
38
  from advanced_report_builder.views.single_values import (
39
+ QueryNumeratorModal,
39
40
  SingleValueModal,
40
41
  SingleValueShowBreakdownModal,
41
42
  SingleValueTableFieldModal,
42
- QueryNumeratorModal,
43
43
  )
44
44
  from advanced_report_builder.views.targets.views import TargetModal
45
45
 
@@ -1,6 +1,6 @@
1
1
  import calendar
2
- from datetime import datetime, date, timedelta
3
2
  from calendar import monthrange
3
+ from datetime import date, datetime, timedelta
4
4
 
5
5
  from date_offset.date_offset import DateOffset
6
6
 
@@ -72,7 +72,6 @@ class VariableDate:
72
72
  (RANGE_TYPE_4_WEEKS_AGO, '4 weeks ago'),
73
73
  (RANGE_TYPE_3_WEEKS_AGO, '3 weeks ago'),
74
74
  (RANGE_TYPE_2_WEEKS_AGO, '2 weeks ago'),
75
-
76
75
  (RANGE_TYPE_LAST_WEEK, 'Last week'),
77
76
  (RANGE_TYPE_YESTERDAY, 'Yesterday'),
78
77
  (RANGE_TYPE_TODAY, 'Today'),
@@ -297,7 +296,7 @@ class VariableDate:
297
296
  end_date = date_offset.get_offset('36m', today)
298
297
  number_of_days = (end_date - start_date).days
299
298
  else:
300
- assert False, 'unknown date value'
299
+ raise AssertionError('unknown date value')
301
300
 
302
301
  start_date_and_time = datetime.combine(start_date, datetime.min.time())
303
302
  end_date_and_time = datetime.combine(end_date, datetime.max.time())
@@ -9,7 +9,7 @@ from crispy_forms.layout import Div
9
9
  from date_offset.monthdelta import MonthDelta
10
10
  from django.core.exceptions import FieldDoesNotExist
11
11
  from django.db.models import Q
12
- from django.forms import CharField, ChoiceField, BooleanField
12
+ from django.forms import BooleanField, CharField, ChoiceField
13
13
  from django.shortcuts import get_object_or_404
14
14
  from django.urls import reverse
15
15
  from django_datatables.datatables import DatatableTable
@@ -17,42 +17,42 @@ from django_menus.menu import MenuItem
17
17
  from django_modals.fields import FieldEx
18
18
  from django_modals.form_helpers import HorizontalNoEnterHelper
19
19
  from django_modals.modals import FormModal, Modal
20
- from django_modals.processes import PROCESS_EDIT_DELETE, PERMISSION_OFF
20
+ from django_modals.processes import PERMISSION_OFF, PROCESS_EDIT_DELETE
21
21
  from django_modals.widgets.colour_picker import ColourPickerWidget
22
- from django_modals.widgets.select2 import Select2Multiple, Select2
22
+ from django_modals.widgets.select2 import Select2, Select2Multiple
23
23
  from django_modals.widgets.widgets import Toggle
24
24
 
25
25
  from advanced_report_builder.column_types import NUMBER_FIELDS
26
26
  from advanced_report_builder.exceptions import ReportError
27
27
  from advanced_report_builder.generate_series import GenerateSeries
28
28
  from advanced_report_builder.globals import (
29
- DEFAULT_DATE_FORMAT,
30
- DATE_FORMAT_TYPES_DJANGO_FORMAT,
31
- ANNOTATION_VALUE_YEAR,
32
- ANNOTATION_VALUE_QUARTER,
33
- ANNOTATION_VALUE_MONTH,
34
- ANNOTATION_VALUE_WEEK,
35
29
  ANNOTATION_VALUE_DAY,
36
30
  ANNOTATION_VALUE_FUNCTIONS,
31
+ ANNOTATION_VALUE_MONTH,
32
+ ANNOTATION_VALUE_QUARTER,
33
+ ANNOTATION_VALUE_WEEK,
34
+ ANNOTATION_VALUE_YEAR,
35
+ DATE_FORMAT_TYPES_DJANGO_FORMAT,
36
+ DEFAULT_DATE_FORMAT,
37
37
  GENERATE_SERIES_INTERVALS,
38
38
  )
39
39
  from advanced_report_builder.models import BarChartReport, ReportType
40
40
  from advanced_report_builder.toggle import RBToggle
41
41
  from advanced_report_builder.utils import (
42
- split_attr,
43
- encode_attribute,
44
42
  decode_attribute,
43
+ encode_attribute,
45
44
  get_report_builder_class,
45
+ split_attr,
46
46
  )
47
- from advanced_report_builder.views.charts_base import ChartBaseView, ChartBaseFieldForm
47
+ from advanced_report_builder.views.charts_base import ChartBaseFieldForm, ChartBaseView
48
48
  from advanced_report_builder.views.datatables.modal import (
49
- TableFieldModal,
50
49
  TableFieldForm,
50
+ TableFieldModal,
51
51
  )
52
52
  from advanced_report_builder.views.datatables.utils import TableUtilsMixin
53
53
  from advanced_report_builder.views.modals_base import (
54
- QueryBuilderModalBaseMixin,
55
54
  QueryBuilderModalBase,
55
+ QueryBuilderModalBaseMixin,
56
56
  )
57
57
  from advanced_report_builder.views.query_modal.mixin import MultiQueryModalMixin
58
58
 
@@ -705,7 +705,7 @@ class BarChartShowBreakdownModal(TableUtilsMixin, Modal):
705
705
  elif bar_chart_report.axis_scale == ANNOTATION_VALUE_DAY:
706
706
  return start_date.strftime('%d/%m/%Y')
707
707
  else:
708
- assert False
708
+ raise AssertionError()
709
709
 
710
710
  def filter_date(self, query):
711
711
  bar_chart_report = self.chart_report
@@ -722,7 +722,7 @@ class BarChartShowBreakdownModal(TableUtilsMixin, Modal):
722
722
  elif bar_chart_report.axis_scale == ANNOTATION_VALUE_DAY:
723
723
  end_date = start_date + timedelta(days=1)
724
724
  else:
725
- assert False
725
+ raise AssertionError()
726
726
 
727
727
  if self.end_date_field_path is None:
728
728
  query_list = [
@@ -1,12 +1,12 @@
1
1
  import base64
2
2
  import json
3
- from datetime import timedelta, datetime
3
+ from datetime import datetime, timedelta
4
4
 
5
5
  from date_offset.date_offset import DateOffset
6
6
  from dateutil.relativedelta import relativedelta
7
7
  from django.apps import apps
8
8
  from django.core.exceptions import FieldError
9
- from django.db import ProgrammingError, DataError
9
+ from django.db import DataError, ProgrammingError
10
10
  from django.db.models import Q
11
11
  from django.forms import ChoiceField
12
12
  from django.shortcuts import get_object_or_404
@@ -21,18 +21,18 @@ from advanced_report_builder.columns import ReportBuilderDateColumn
21
21
  from advanced_report_builder.exceptions import ReportError
22
22
  from advanced_report_builder.field_utils import ReportBuilderFieldUtils
23
23
  from advanced_report_builder.globals import (
24
+ ANNOTATION_VALUE_DAY,
24
25
  ANNOTATION_VALUE_FUNCTIONS,
25
- ANNOTATION_VALUE_YEAR,
26
+ ANNOTATION_VALUE_MONTH,
26
27
  ANNOTATION_VALUE_QUARTER,
27
28
  ANNOTATION_VALUE_WEEK,
28
- ANNOTATION_VALUE_DAY,
29
- ANNOTATION_VALUE_MONTH,
29
+ ANNOTATION_VALUE_YEAR,
30
30
  )
31
31
  from advanced_report_builder.models import ReportType
32
32
  from advanced_report_builder.utils import (
33
- split_slug,
34
- split_attr,
35
33
  get_report_builder_class,
34
+ split_attr,
35
+ split_slug,
36
36
  )
37
37
  from advanced_report_builder.variable_date import VariableDate
38
38
  from advanced_report_builder.views.helpers import QueryBuilderForm
@@ -1,13 +1,12 @@
1
1
  from django.views.generic import TemplateView
2
2
  from django_menus.menu import MenuItem
3
- from django_menus.menu import MenuMixin
4
3
  from django_modals.modals import ModelFormModal
5
- from django_modals.processes import PROCESS_EDIT_DELETE, PERMISSION_OFF
4
+ from django_modals.processes import PERMISSION_OFF, PROCESS_EDIT_DELETE
6
5
  from django_modals.widgets.select2 import Select2Multiple
7
6
 
8
7
  from advanced_report_builder.filter_query import FilterQueryMixin
9
8
  from advanced_report_builder.models import CustomReport, ReportType
10
- from advanced_report_builder.utils import split_slug, make_slug_str
9
+ from advanced_report_builder.utils import split_slug
11
10
  from advanced_report_builder.views.query_modal.mixin import MultiQueryModalMixin
12
11
  from advanced_report_builder.views.report import ReportBase
13
12
 
@@ -1,6 +1,7 @@
1
1
  import copy
2
2
 
3
3
  from ajax_helpers.mixins import AjaxHelpers
4
+ from django.conf import settings
4
5
  from django.forms import ModelChoiceField
5
6
  from django.http import Http404
6
7
  from django.shortcuts import get_object_or_404
@@ -8,11 +9,11 @@ from django.urls import reverse
8
9
  from django.views.generic import TemplateView
9
10
  from django_menus.menu import MenuMixin
10
11
  from django_modals.forms import CrispyForm
11
- from django_modals.modals import ModelFormModal, FormModal
12
+ from django_modals.modals import FormModal, ModelFormModal
12
13
  from django_modals.processes import (
13
- PROCESS_EDIT_DELETE,
14
- PERMISSION_OFF,
15
14
  PERMISSION_DISABLE,
15
+ PERMISSION_OFF,
16
+ PROCESS_EDIT_DELETE,
16
17
  )
17
18
  from django_modals.widgets.select2 import Select2
18
19
  from django_modals.widgets.widgets import Toggle
@@ -31,7 +32,6 @@ from advanced_report_builder.views.kanban import KanbanView
31
32
  from advanced_report_builder.views.line_charts import LineChartView
32
33
  from advanced_report_builder.views.pie_charts import PieChartView
33
34
  from advanced_report_builder.views.single_values import SingleValueView
34
- from django.conf import settings
35
35
 
36
36
 
37
37
  class ViewDashboardBase(AjaxHelpers, MenuMixin, TemplateView):