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.
- {django-advanced-report-builder-0.9.0/django_advanced_report_builder.egg-info → django-advanced-report-builder-0.9.2}/PKG-INFO +1 -1
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/.DS_Store +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/globals.py +1 -0
- django-advanced-report-builder-0.9.2/advanced_report_builder/migrations/0015_report_user_created_report_user_updated.py +26 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/models.py +38 -6
- django-advanced-report-builder-0.9.2/advanced_report_builder/signals.py +3 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/variable_date.py +48 -18
- django-advanced-report-builder-0.9.2/advanced_report_builder/views/.DS_Store +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/charts_base.py +2 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/datatables/modal.py +352 -142
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/datatables/utils.py +107 -67
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/kanban.py +18 -4
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/modals_base.py +5 -1
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/query_modal/modal.py +13 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/report_utils_mixin.py +26 -6
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/single_values.py +47 -37
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2/django_advanced_report_builder.egg-info}/PKG-INFO +1 -1
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/django_advanced_report_builder.egg-info/SOURCES.txt +3 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/setup.py +1 -1
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/LICENSE +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/MANIFEST.in +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/README.md +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/__init__.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/admin.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/apps.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/column_types.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/columns.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/customise.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/data_merge/__init__.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/data_merge/utils.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/data_merge/widget.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/duplicate.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/exceptions.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/field_types.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/field_utils.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/filter_query.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/generate_series.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/includes.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/migrations/0001_initial.py +0 -0
- {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
- {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
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/migrations/0004_customreport.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/migrations/0013_reportqueryorder.py +0 -0
- {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
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/migrations/__init__.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/report_builder.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/static/.DS_Store +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/toggle.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/urls.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/utils.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/__init__.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/bar_charts.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/custom.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/dashboard.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/datatables/__init__.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/datatables/datatables.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/funnel_charts.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/helpers.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/line_charts.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/pie_charts.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/query_modal/__init__.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/query_modal/mixin.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/report.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/reports.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/targets/__init__.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/targets/utils.py +0 -0
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/advanced_report_builder/views/targets/views.py +0 -0
- {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
- {django-advanced-report-builder-0.9.0 → django-advanced-report-builder-0.9.2}/django_advanced_report_builder.egg-info/requires.txt +0 -0
- {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
- {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.
|
|
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
|
|
Binary file
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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()
|
|
@@ -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 =
|
|
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 =
|
|
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 =
|
|
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.
|
|
118
|
-
start_date =
|
|
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.
|
|
122
|
-
start_date =
|
|
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.
|
|
126
|
-
start_date =
|
|
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.
|
|
130
|
-
start_date =
|
|
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.
|
|
134
|
-
start_date =
|
|
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: #
|
|
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,
|