django-advanced-report-builder 0.9.0__tar.gz → 0.9.2__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 (180) hide show
  1. {django-advanced-report-builder-0.9.0/django_advanced_report_builder.egg-info → django-advanced-report-builder-0.9.2}/PKG-INFO +1 -1
  2. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/.DS_Store +0 -0
  3. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/globals.py +1 -0
  4. django-advanced-report-builder-0.9.2/advanced_report_builder/migrations/0015_report_user_created_report_user_updated.py +26 -0
  5. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/models.py +38 -6
  6. django-advanced-report-builder-0.9.2/advanced_report_builder/signals.py +3 -0
  7. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/variable_date.py +48 -18
  8. django-advanced-report-builder-0.9.2/advanced_report_builder/views/.DS_Store +0 -0
  9. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/charts_base.py +2 -0
  10. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/datatables/modal.py +352 -142
  11. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/datatables/utils.py +107 -67
  12. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/kanban.py +18 -4
  13. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/modals_base.py +5 -1
  14. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/query_modal/modal.py +13 -0
  15. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/report_utils_mixin.py +26 -6
  16. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/single_values.py +47 -37
  17. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2/django_advanced_report_builder.egg-info}/PKG-INFO +1 -1
  18. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/django_advanced_report_builder.egg-info/SOURCES.txt +3 -0
  19. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/setup.py +1 -1
  20. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/LICENSE +0 -0
  21. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/MANIFEST.in +0 -0
  22. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/README.md +0 -0
  23. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/__init__.py +0 -0
  24. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/admin.py +0 -0
  25. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/apps.py +0 -0
  26. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/column_types.py +0 -0
  27. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/columns.py +0 -0
  28. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/customise.py +0 -0
  29. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/data_merge/__init__.py +0 -0
  30. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/data_merge/utils.py +0 -0
  31. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/data_merge/widget.py +0 -0
  32. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/duplicate.py +0 -0
  33. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/exceptions.py +0 -0
  34. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/field_types.py +0 -0
  35. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/field_utils.py +0 -0
  36. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/filter_query.py +0 -0
  37. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/generate_series.py +0 -0
  38. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/includes.py +0 -0
  39. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/migrations/0001_initial.py +0 -0
  40. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/migrations/0002_auto_20220209_1657.py +0 -0
  41. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/migrations/0003_auto_20220215_1219.py +0 -0
  42. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/migrations/0004_customreport.py +0 -0
  43. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/migrations/0005_auto_20220303_0958.py +0 -0
  44. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/migrations/0006_auto_20220310_1147.py +0 -0
  45. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/migrations/0007_auto_20220322_1939.py +0 -0
  46. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/migrations/0008_auto_20220404_1144.py +0 -0
  47. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/migrations/0009_auto_20230428_1554.py +0 -0
  48. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/migrations/0010_auto_20230428_2033.py +0 -0
  49. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/migrations/0011_auto_20230620_1449.py +0 -0
  50. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/migrations/0012_auto_20230718_1642.py +0 -0
  51. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/migrations/0013_reportqueryorder.py +0 -0
  52. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/migrations/0014_auto_20240706_2207.py +0 -0
  53. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/migrations/__init__.py +0 -0
  54. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/report_builder.py +0 -0
  55. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/.DS_Store +0 -0
  56. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/.DS_Store +0 -0
  57. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/chart-js/js/chart.esm.js +0 -0
  58. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/chart-js/js/chart.js +0 -0
  59. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/chart-js/js/chart.min.js +0 -0
  60. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/chart-js/js/chartjs-adapter-moment.min.js +0 -0
  61. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/chart-js/js/chartjs-plugin-datalabels.min.js +0 -0
  62. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/chart-js/js/chunks/helpers.segment.js +0 -0
  63. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/chart-js/js/helpers.esm.js +0 -0
  64. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/d3/js/d3.js +0 -0
  65. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/d3/js/d3.min.js +0 -0
  66. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/d3-funnel/js/d3-funnel.js +0 -0
  67. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/d3-funnel/js/d3-funnel.min.js +0 -0
  68. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/dashboard/js/dashboard.js +0 -0
  69. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/dot/js/.gitignore +0 -0
  70. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/dot/js/.travis.yml +0 -0
  71. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/dot/js/LICENSE-DOT.txt +0 -0
  72. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/dot/js/README.md +0 -0
  73. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/dot/js/bin/dot-packer +0 -0
  74. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/dot/js/bower.json +0 -0
  75. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/dot/js/doT.js +0 -0
  76. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/dot/js/doT.min.js +0 -0
  77. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/dot/js/doU.js +0 -0
  78. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/dot/js/index.js +0 -0
  79. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/dot/js/package.json +0 -0
  80. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/fullcalendar/.DS_Store +0 -0
  81. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/jquery_extendext/js/jQuery.extendext.js +0 -0
  82. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/jquery_extendext/js/jQuery.extendext.min.js +0 -0
  83. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/.DS_Store +0 -0
  84. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/css/.DS_Store +0 -0
  85. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/css/query-builder.dark.css +0 -0
  86. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/css/query-builder.dark.min.css +0 -0
  87. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/css/query-builder.default.css +0 -0
  88. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/css/query-builder.default.min.css +0 -0
  89. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.ar.js +0 -0
  90. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.az.js +0 -0
  91. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.bg.js +0 -0
  92. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.cs.js +0 -0
  93. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.da.js +0 -0
  94. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.de.js +0 -0
  95. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.el.js +0 -0
  96. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.en.js +0 -0
  97. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.es.js +0 -0
  98. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.fa-IR.js +0 -0
  99. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.fr.js +0 -0
  100. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.he.js +0 -0
  101. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.it.js +0 -0
  102. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.nl.js +0 -0
  103. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.no.js +0 -0
  104. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.pl.js +0 -0
  105. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.pt-BR.js +0 -0
  106. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.pt-PT.js +0 -0
  107. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.ro.js +0 -0
  108. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.ru.js +0 -0
  109. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.sq.js +0 -0
  110. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.tr.js +0 -0
  111. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.ua.js +0 -0
  112. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.zh-CN.js +0 -0
  113. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/js/.DS_Store +0 -0
  114. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/js/plugins/.DS_Store +0 -0
  115. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/js/plugins/currency/plugin.js +0 -0
  116. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/js/query-builder.js +0 -0
  117. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/js/query-builder.min.js +0 -0
  118. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/js/query-builder.standalone.js +0 -0
  119. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/js/query-builder.standalone.min.js +0 -0
  120. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/.DS_Store +0 -0
  121. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/dark.scss +0 -0
  122. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/default.scss +0 -0
  123. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/_bt-checkbox.scss +0 -0
  124. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/_bt-tooltip-errors.scss +0 -0
  125. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/_filter-description.scss +0 -0
  126. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/_invert.scss +0 -0
  127. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/_sortable.scss +0 -0
  128. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/bt-tooltip-errors.scss +0 -0
  129. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/filter-description.scss +0 -0
  130. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/invert.scss +0 -0
  131. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/sortable.scss +0 -0
  132. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/templates/advanced_report_builder/charts/bar/middle.html +0 -0
  133. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/templates/advanced_report_builder/charts/funnel/middle.html +0 -0
  134. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/templates/advanced_report_builder/charts/funnel/report.html +0 -0
  135. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/templates/advanced_report_builder/charts/line/middle.html +0 -0
  136. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/templates/advanced_report_builder/charts/modal.html +0 -0
  137. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/templates/advanced_report_builder/charts/modal_field.html +0 -0
  138. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/templates/advanced_report_builder/charts/pie/middle.html +0 -0
  139. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/templates/advanced_report_builder/charts/report.html +0 -0
  140. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/templates/advanced_report_builder/data_merge/data_merge.html +0 -0
  141. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/templates/advanced_report_builder/datatables/fields/modal.html +0 -0
  142. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/templates/advanced_report_builder/datatables/fields/single_query_builder.html +0 -0
  143. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/templates/advanced_report_builder/datatables/modal.html +0 -0
  144. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/templates/advanced_report_builder/datatables/onclick_menu.html +0 -0
  145. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/templates/advanced_report_builder/datatables/report.html +0 -0
  146. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/templates/advanced_report_builder/datatables/select_pivot.html +0 -0
  147. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/templates/advanced_report_builder/kanban/description_modal.html +0 -0
  148. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/templates/advanced_report_builder/kanban/middle.html +0 -0
  149. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/templates/advanced_report_builder/kanban/modal.html +0 -0
  150. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/templates/advanced_report_builder/kanban/report.html +0 -0
  151. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/templates/advanced_report_builder/query_builder.html +0 -0
  152. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/templates/advanced_report_builder/query_modal.html +0 -0
  153. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/templates/advanced_report_builder/select_column.html +0 -0
  154. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/templates/advanced_report_builder/single_values/middle.html +0 -0
  155. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/templates/advanced_report_builder/single_values/modal.html +0 -0
  156. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/templates/advanced_report_builder/single_values/report.html +0 -0
  157. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/toggle.py +0 -0
  158. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/urls.py +0 -0
  159. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/utils.py +0 -0
  160. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/__init__.py +0 -0
  161. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/bar_charts.py +0 -0
  162. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/custom.py +0 -0
  163. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/dashboard.py +0 -0
  164. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/datatables/__init__.py +0 -0
  165. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/datatables/datatables.py +0 -0
  166. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/funnel_charts.py +0 -0
  167. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/helpers.py +0 -0
  168. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/line_charts.py +0 -0
  169. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/pie_charts.py +0 -0
  170. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/query_modal/__init__.py +0 -0
  171. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/query_modal/mixin.py +0 -0
  172. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/report.py +0 -0
  173. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/reports.py +0 -0
  174. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/targets/__init__.py +0 -0
  175. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/targets/utils.py +0 -0
  176. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/targets/views.py +0 -0
  177. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/django_advanced_report_builder.egg-info/dependency_links.txt +0 -0
  178. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/django_advanced_report_builder.egg-info/requires.txt +0 -0
  179. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/django_advanced_report_builder.egg-info/top_level.txt +0 -0
  180. {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: django-advanced-report-builder
3
- Version: 0.9.0
3
+ Version: 0.9.2
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
@@ -88,6 +88,7 @@ GENERATE_SERIES_INTERVALS = {
88
88
  ANNOTATION_VALUE_DAY: '1 day',
89
89
  }
90
90
 
91
+ ANNOTATION_CHOICE_NA = 0
91
92
  ANNOTATION_CHOICE_SUM = 1
92
93
  ANNOTATION_CHOICE_MAXIMUM = 2
93
94
  ANNOTATION_CHOICE_MINIMUM = 3
@@ -0,0 +1,26 @@
1
+ # Generated by Django 5.0.7 on 2025-05-07 11:13
2
+
3
+ import django.db.models.deletion
4
+ from django.conf import settings
5
+ from django.db import migrations, models
6
+
7
+
8
+ class Migration(migrations.Migration):
9
+
10
+ dependencies = [
11
+ ('advanced_report_builder', '0014_auto_20240706_2207'),
12
+ migrations.swappable_dependency(settings.AUTH_USER_MODEL),
13
+ ]
14
+
15
+ operations = [
16
+ migrations.AddField(
17
+ model_name='report',
18
+ name='user_created',
19
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='report_user_created_set', to=settings.AUTH_USER_MODEL),
20
+ ),
21
+ migrations.AddField(
22
+ model_name='report',
23
+ name='user_updated',
24
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='report_user_updated_set', to=settings.AUTH_USER_MODEL),
25
+ ),
26
+ ]
@@ -1,3 +1,4 @@
1
+ from django.contrib.auth import get_user_model
1
2
  from django.contrib.contenttypes.models import ContentType
2
3
  from django.db import models
3
4
  from django.utils.dates import MONTHS
@@ -16,6 +17,7 @@ from advanced_report_builder.globals import (
16
17
  ANNOTATION_CHOICE_COUNT,
17
18
  ANNOTATION_CHART_SCALE,
18
19
  )
20
+ from advanced_report_builder.signals import model_report_save
19
21
 
20
22
 
21
23
  class Target(TimeStampedModel):
@@ -130,6 +132,20 @@ class Report(TimeStampedModel):
130
132
  report_tags = models.ManyToManyField(ReportTag, blank=True)
131
133
  notes = models.TextField(null=True, blank=True)
132
134
  version = models.PositiveSmallIntegerField(default=0)
135
+ user_created = models.ForeignKey(
136
+ get_user_model(),
137
+ on_delete=models.SET_NULL,
138
+ null=True,
139
+ blank=True,
140
+ related_name='report_user_created_set'
141
+ )
142
+ user_updated = models.ForeignKey(
143
+ get_user_model(),
144
+ on_delete=models.SET_NULL,
145
+ null=True,
146
+ blank=True,
147
+ related_name='report_user_updated_set'
148
+ )
133
149
 
134
150
  def __str__(self):
135
151
  return self.name
@@ -144,17 +160,24 @@ class Report(TimeStampedModel):
144
160
  return self.name
145
161
 
146
162
  def save(self, *args, **kwargs):
163
+
164
+ current_user = getattr(self, '_current_user', None)
165
+ if current_user is not None and current_user.is_authenticated:
166
+ self.user_updated = current_user
167
+ if self.user_created is None:
168
+ self.user_created = current_user
169
+ is_new = self.pk is None
147
170
  if self.version is not None:
148
171
  self.version += 1
149
-
150
172
  slug_alias = self.slug
151
173
  self.make_new_slug(obj=Report, allow_dashes=False, on_edit=True)
152
174
  if slug_alias != self.slug:
153
175
  self.slug_alias = slug_alias
154
-
155
176
  if self.instance_type is None:
156
177
  self.instance_type = self._meta.label_lower.split('.')[1]
157
- return super().save(*args, **kwargs)
178
+ result = super().save(*args, **kwargs)
179
+ model_report_save.send(sender=self.__class__, instance=self, created=is_new, user=current_user)
180
+ return result
158
181
 
159
182
  def get_base_model(self):
160
183
  return self.report_type.content_type.model_class()
@@ -220,7 +243,10 @@ class ReportQuery(TimeStampedModel):
220
243
 
221
244
  def save(self, *args, **kwargs):
222
245
  self.set_order_field(extra_filters={'report': self.report})
223
- return super().save(*args, **kwargs)
246
+ result = super().save(*args, **kwargs)
247
+ self.report._current_user = getattr(self, '_current_user', None) # this is to update the users
248
+ self.report.save()
249
+ return result
224
250
 
225
251
  class Meta:
226
252
  ordering = ['order']
@@ -419,7 +445,10 @@ class KanbanReportDescription(TimeStampedModel):
419
445
 
420
446
  def save(self, *args, **kwargs):
421
447
  self.set_order_field(extra_filters={'kanban_report': self.kanban_report})
422
- return super().save(*args, **kwargs)
448
+ result = super().save(*args, **kwargs)
449
+ self.kanban_report._current_user = getattr(self, '_current_user', None) # this is to update the users
450
+ self.kanban_report.save()
451
+ return result
423
452
 
424
453
  def get_base_model(self):
425
454
  return self.report_type.content_type.model_class()
@@ -477,7 +506,10 @@ class KanbanReportLane(TimeStampedModel):
477
506
 
478
507
  def save(self, *args, **kwargs):
479
508
  self.set_order_field(extra_filters={'kanban_report': self.kanban_report})
480
- return super().save(*args, **kwargs)
509
+ result = super().save(*args, **kwargs)
510
+ self.kanban_report._current_user = getattr(self, '_current_user', None) # this is to update the users
511
+ self.kanban_report.save()
512
+ return result
481
513
 
482
514
  def get_base_model(self):
483
515
  return self.report_type.content_type.model_class()
@@ -0,0 +1,3 @@
1
+ from django.dispatch import Signal
2
+
3
+ model_report_save = Signal()
@@ -46,6 +46,13 @@ class VariableDate:
46
46
  RANGE_TYPE_NEXT_24_MONTHS = 41
47
47
  RANGE_TYPE_LAST_36_MONTHS = 42
48
48
  RANGE_TYPE_NEXT_36_MONTHS = 43
49
+
50
+ RANGE_TYPE_2_WEEKS_AGO = 44
51
+ RANGE_TYPE_3_WEEKS_AGO = 45
52
+ RANGE_TYPE_4_WEEKS_AGO = 46
53
+ RANGE_TYPE_5_WEEKS_AGO = 47
54
+ RANGE_TYPE_6_WEEKS_AGO = 48
55
+
49
56
  RANGE_TYPE_CHOICES = (
50
57
  (RANGE_TYPE_LAST_36_MONTHS, 'Last 36 months'),
51
58
  (RANGE_TYPE_LAST_24_MONTHS, 'Last 24 months'),
@@ -60,6 +67,12 @@ class VariableDate:
60
67
  (RANGE_TYPE_LAST_28_DAYS, 'Last 28 days'),
61
68
  (RANGE_TYPE_LAST_14_DAYS, 'Last 14 days'),
62
69
  (RANGE_TYPE_LAST_7_DAYS, 'Last 7 days'),
70
+ (RANGE_TYPE_6_WEEKS_AGO, '6 weeks ago'),
71
+ (RANGE_TYPE_5_WEEKS_AGO, '5 weeks ago'),
72
+ (RANGE_TYPE_4_WEEKS_AGO, '4 weeks ago'),
73
+ (RANGE_TYPE_3_WEEKS_AGO, '3 weeks ago'),
74
+ (RANGE_TYPE_2_WEEKS_AGO, '2 weeks ago'),
75
+
63
76
  (RANGE_TYPE_LAST_WEEK, 'Last week'),
64
77
  (RANGE_TYPE_YESTERDAY, 'Yesterday'),
65
78
  (RANGE_TYPE_TODAY, 'Today'),
@@ -90,6 +103,7 @@ class VariableDate:
90
103
 
91
104
  def get_variable_dates(self, range_type):
92
105
  today = date.today()
106
+ start_of_this_week = today - timedelta(days=today.weekday())
93
107
  if range_type == self.RANGE_TYPE_TODAY:
94
108
  start_date = today
95
109
  end_date = today + timedelta(days=1)
@@ -103,35 +117,55 @@ class VariableDate:
103
117
  end_date = start_date + timedelta(days=1)
104
118
  number_of_days = 1
105
119
  elif range_type == self.RANGE_TYPE_THIS_WEEK: # This Week
106
- start_date = today - timedelta(days=today.weekday())
120
+ start_date = start_of_this_week
107
121
  end_date = start_date + timedelta(days=7)
108
122
  number_of_days = 7
109
123
  elif range_type == self.RANGE_TYPE_NEXT_WEEK: # Next Week
110
- start_date = today - timedelta(days=today.weekday()) + timedelta(days=7)
124
+ start_date = start_of_this_week + timedelta(days=7)
111
125
  end_date = start_date + timedelta(days=7)
112
126
  number_of_days = 7
113
127
  elif range_type == self.RANGE_TYPE_LAST_WEEK: # Last Week
114
- start_date = today - timedelta(days=today.weekday()) + timedelta(days=14)
128
+ start_date = start_of_this_week - timedelta(days=7)
129
+ end_date = start_date + timedelta(days=7)
130
+ number_of_days = 7
131
+ elif range_type == self.RANGE_TYPE_2_WEEKS_TIME: # 2 Weeks Time
132
+ start_date = start_of_this_week + timedelta(days=14)
133
+ end_date = start_date + timedelta(days=7)
134
+ number_of_days = 7
135
+ elif range_type == self.RANGE_TYPE_2_WEEKS_AGO: # 2 Weeks Ago
136
+ start_date = start_of_this_week - timedelta(days=14)
137
+ end_date = start_date + timedelta(days=7)
138
+ number_of_days = 7
139
+ elif range_type == self.RANGE_TYPE_3_WEEKS_TIME: # 3 Weeks Time
140
+ start_date = start_of_this_week + timedelta(days=21)
141
+ end_date = start_date + timedelta(days=7)
142
+ number_of_days = 7
143
+ elif range_type == self.RANGE_TYPE_3_WEEKS_AGO: # 3 Weeks Ago
144
+ start_date = start_of_this_week - timedelta(days=21)
145
+ end_date = start_date + timedelta(days=7)
146
+ number_of_days = 7
147
+ elif range_type == self.RANGE_TYPE_4_WEEKS_TIME: # 4 Weeks Time
148
+ start_date = start_of_this_week + timedelta(days=28)
115
149
  end_date = start_date + timedelta(days=7)
116
150
  number_of_days = 7
117
- elif range_type == self.RANGE_TYPE_2_WEEKS_TIME: # 2 Week Time
118
- start_date = today - timedelta(days=today.weekday()) + timedelta(days=14)
151
+ elif range_type == self.RANGE_TYPE_4_WEEKS_AGO: # 4 Weeks Ago
152
+ start_date = start_of_this_week - timedelta(days=28)
119
153
  end_date = start_date + timedelta(days=7)
120
154
  number_of_days = 7
121
- elif range_type == self.RANGE_TYPE_3_WEEKS_TIME: # 3 Week Time
122
- start_date = today - timedelta(days=today.weekday()) + timedelta(days=21)
155
+ elif range_type == self.RANGE_TYPE_5_WEEKS_TIME: # 5 Weeks Time
156
+ start_date = start_of_this_week + timedelta(days=35)
123
157
  end_date = start_date + timedelta(days=7)
124
158
  number_of_days = 7
125
- elif range_type == self.RANGE_TYPE_4_WEEKS_TIME: # 4 Week Time
126
- start_date = today - timedelta(days=today.weekday()) + timedelta(days=28)
159
+ elif range_type == self.RANGE_TYPE_5_WEEKS_AGO: # 5 Weeks Ago
160
+ start_date = start_of_this_week - timedelta(days=35)
127
161
  end_date = start_date + timedelta(days=7)
128
162
  number_of_days = 7
129
- elif range_type == self.RANGE_TYPE_5_WEEKS_TIME: # 5 Week Time
130
- start_date = today - timedelta(days=today.weekday()) + timedelta(days=35)
163
+ elif range_type == self.RANGE_TYPE_6_WEEKS_TIME: # 6 Weeks Time
164
+ start_date = start_of_this_week + timedelta(days=42)
131
165
  end_date = start_date + timedelta(days=7)
132
166
  number_of_days = 7
133
- elif range_type == self.RANGE_TYPE_6_WEEKS_TIME: # 6 Week Time
134
- start_date = today - timedelta(days=today.weekday()) + timedelta(days=42)
167
+ elif range_type == self.RANGE_TYPE_6_WEEKS_AGO: # 6 Weeks Ago
168
+ start_date = start_of_this_week - timedelta(days=42)
135
169
  end_date = start_date + timedelta(days=7)
136
170
  number_of_days = 7
137
171
  elif range_type == self.RANGE_TYPE_THIS_MONTH: # This Month
@@ -160,11 +194,7 @@ class VariableDate:
160
194
  start_date = today
161
195
  end_date = start_date + timedelta(days=14)
162
196
  number_of_days = 14
163
- elif range_type == self.RANGE_TYPE_LAST_14_DAYS: # Next 14 Days
164
- start_date = today - timedelta(days=14)
165
- end_date = today
166
- number_of_days = 14
167
- elif range_type == 13: # Last 14 Days
197
+ elif range_type == self.RANGE_TYPE_LAST_14_DAYS: # Last 14 Days
168
198
  start_date = today - timedelta(days=14)
169
199
  end_date = today
170
200
  number_of_days = 14
@@ -278,6 +278,7 @@ class ChartBaseView(ReportBase, ReportUtilsMixin, TemplateView):
278
278
 
279
279
  self.get_number_field(
280
280
  annotations_type=self.chart_report.axis_value_type,
281
+ append_annotation_query=False,
281
282
  index=f'{index}_{multiple_index}',
282
283
  data_attr=data_attr,
283
284
  table_field=table_field,
@@ -292,6 +293,7 @@ class ChartBaseView(ReportBase, ReportUtilsMixin, TemplateView):
292
293
  else:
293
294
  self.get_number_field(
294
295
  annotations_type=self.chart_report.axis_value_type,
296
+ append_annotation_query=False,
295
297
  index=index,
296
298
  data_attr=data_attr,
297
299
  table_field=table_field,