accrete 0.0.99__py3-none-any.whl → 0.0.109__py3-none-any.whl

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.
Files changed (254) hide show
  1. accrete/contrib/ui/__init__.py +6 -27
  2. accrete/contrib/ui/context.py +26 -294
  3. accrete/contrib/ui/filter.py +309 -280
  4. accrete/contrib/ui/middleware.py +44 -0
  5. accrete/contrib/ui/models.py +3 -0
  6. accrete/contrib/ui/static/bulma/README.md +4 -2
  7. accrete/contrib/ui/static/bulma/bulma.css +21551 -0
  8. accrete/contrib/ui/static/bulma/bulma.css.map +1 -0
  9. accrete/contrib/ui/static/bulma/bulma.scss +1 -1
  10. accrete/contrib/ui/static/bulma/css/bulma.css +1988 -2874
  11. accrete/contrib/ui/static/bulma/css/bulma.css.map +1 -1
  12. accrete/contrib/ui/static/bulma/css/bulma.min.css +2 -2
  13. accrete/contrib/ui/static/bulma/css/versions/bulma-no-dark-mode.css +19648 -0
  14. accrete/contrib/ui/static/bulma/css/versions/bulma-no-dark-mode.css.map +1 -0
  15. accrete/contrib/ui/static/bulma/css/versions/bulma-no-dark-mode.min.css +2 -2
  16. accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers-prefixed.css +11136 -0
  17. accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers-prefixed.css.map +1 -0
  18. accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers-prefixed.min.css +2 -2
  19. accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers.css +11136 -0
  20. accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers.css.map +1 -0
  21. accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers.min.css +2 -2
  22. accrete/contrib/ui/static/bulma/css/versions/bulma-prefixed.min.css +21550 -2
  23. accrete/contrib/ui/static/bulma/css/versions/bulma-prefixed.min.css.map +1 -1
  24. accrete/contrib/ui/static/bulma/css/versions/bulma-prefixed.min.min.css +3 -0
  25. accrete/contrib/ui/static/bulma/package.json +12 -11
  26. accrete/contrib/ui/static/bulma/sass/base/animations.css +15 -0
  27. accrete/contrib/ui/static/bulma/sass/base/animations.css.map +1 -0
  28. accrete/contrib/ui/static/bulma/sass/base/generic.css +196 -0
  29. accrete/contrib/ui/static/bulma/sass/base/generic.css.map +1 -0
  30. accrete/contrib/ui/static/bulma/sass/base/minireset.css +82 -0
  31. accrete/contrib/ui/static/bulma/sass/base/minireset.css.map +1 -0
  32. accrete/contrib/ui/static/bulma/sass/base/skeleton.css +113 -0
  33. accrete/contrib/ui/static/bulma/sass/base/skeleton.css.map +1 -0
  34. accrete/contrib/ui/static/bulma/sass/base/skeleton.scss +0 -12
  35. accrete/contrib/ui/static/bulma/sass/components/breadcrumb.css +108 -0
  36. accrete/contrib/ui/static/bulma/sass/components/breadcrumb.css.map +1 -0
  37. accrete/contrib/ui/static/bulma/sass/components/card.css +130 -0
  38. accrete/contrib/ui/static/bulma/sass/components/card.css.map +1 -0
  39. accrete/contrib/ui/static/bulma/sass/components/dropdown.css +119 -0
  40. accrete/contrib/ui/static/bulma/sass/components/dropdown.css.map +1 -0
  41. accrete/contrib/ui/static/bulma/sass/components/menu.css +119 -0
  42. accrete/contrib/ui/static/bulma/sass/components/menu.css.map +1 -0
  43. accrete/contrib/ui/static/bulma/sass/components/message.css +191 -0
  44. accrete/contrib/ui/static/bulma/sass/components/message.css.map +1 -0
  45. accrete/contrib/ui/static/bulma/sass/components/modal.css +194 -0
  46. accrete/contrib/ui/static/bulma/sass/components/modal.css.map +1 -0
  47. accrete/contrib/ui/static/bulma/sass/components/navbar.css +768 -0
  48. accrete/contrib/ui/static/bulma/sass/components/navbar.css.map +1 -0
  49. accrete/contrib/ui/static/bulma/sass/components/navbar.scss +41 -30
  50. accrete/contrib/ui/static/bulma/sass/components/pagination.css +302 -0
  51. accrete/contrib/ui/static/bulma/sass/components/pagination.css.map +1 -0
  52. accrete/contrib/ui/static/bulma/sass/components/panel.css +224 -0
  53. accrete/contrib/ui/static/bulma/sass/components/panel.css.map +1 -0
  54. accrete/contrib/ui/static/bulma/sass/components/panel.scss +2 -2
  55. accrete/contrib/ui/static/bulma/sass/components/tabs.css +192 -0
  56. accrete/contrib/ui/static/bulma/sass/components/tabs.css.map +1 -0
  57. accrete/contrib/ui/static/bulma/sass/elements/block.css +17 -0
  58. accrete/contrib/ui/static/bulma/sass/elements/block.css.map +1 -0
  59. accrete/contrib/ui/static/bulma/sass/elements/box.css +43 -0
  60. accrete/contrib/ui/static/bulma/sass/elements/box.css.map +1 -0
  61. accrete/contrib/ui/static/bulma/sass/elements/button.css +685 -0
  62. accrete/contrib/ui/static/bulma/sass/elements/button.css.map +1 -0
  63. accrete/contrib/ui/static/bulma/sass/elements/button.scss +9 -2
  64. accrete/contrib/ui/static/bulma/sass/elements/content.css +208 -0
  65. accrete/contrib/ui/static/bulma/sass/elements/content.css.map +1 -0
  66. accrete/contrib/ui/static/bulma/sass/elements/content.scss +8 -2
  67. accrete/contrib/ui/static/bulma/sass/elements/delete.css +60 -0
  68. accrete/contrib/ui/static/bulma/sass/elements/delete.css.map +1 -0
  69. accrete/contrib/ui/static/bulma/sass/elements/icon.css +51 -0
  70. accrete/contrib/ui/static/bulma/sass/elements/icon.css.map +1 -0
  71. accrete/contrib/ui/static/bulma/sass/elements/image.css +253 -0
  72. accrete/contrib/ui/static/bulma/sass/elements/image.css.map +1 -0
  73. accrete/contrib/ui/static/bulma/sass/elements/loader.css +14 -0
  74. accrete/contrib/ui/static/bulma/sass/elements/loader.css.map +1 -0
  75. accrete/contrib/ui/static/bulma/sass/elements/notification.css +213 -0
  76. accrete/contrib/ui/static/bulma/sass/elements/notification.css.map +1 -0
  77. accrete/contrib/ui/static/bulma/sass/elements/progress.css +119 -0
  78. accrete/contrib/ui/static/bulma/sass/elements/progress.css.map +1 -0
  79. accrete/contrib/ui/static/bulma/sass/elements/table.css +294 -0
  80. accrete/contrib/ui/static/bulma/sass/elements/table.css.map +1 -0
  81. accrete/contrib/ui/static/bulma/sass/elements/tag.css +252 -0
  82. accrete/contrib/ui/static/bulma/sass/elements/tag.css.map +1 -0
  83. accrete/contrib/ui/static/bulma/sass/elements/title.css +131 -0
  84. accrete/contrib/ui/static/bulma/sass/elements/title.css.map +1 -0
  85. accrete/contrib/ui/static/bulma/sass/form/checkbox-radio.css +72 -0
  86. accrete/contrib/ui/static/bulma/sass/form/checkbox-radio.css.map +1 -0
  87. accrete/contrib/ui/static/bulma/sass/form/checkbox-radio.scss +7 -3
  88. accrete/contrib/ui/static/bulma/sass/form/file.css +374 -0
  89. accrete/contrib/ui/static/bulma/sass/form/file.css.map +1 -0
  90. accrete/contrib/ui/static/bulma/sass/form/input-textarea.css +284 -0
  91. accrete/contrib/ui/static/bulma/sass/form/input-textarea.css.map +1 -0
  92. accrete/contrib/ui/static/bulma/sass/form/input-textarea.scss +0 -10
  93. accrete/contrib/ui/static/bulma/sass/form/select.css +347 -0
  94. accrete/contrib/ui/static/bulma/sass/form/select.css.map +1 -0
  95. accrete/contrib/ui/static/bulma/sass/form/select.scss +1 -0
  96. accrete/contrib/ui/static/bulma/sass/form/shared.css +48 -0
  97. accrete/contrib/ui/static/bulma/sass/form/shared.css.map +1 -0
  98. accrete/contrib/ui/static/bulma/sass/form/shared.scss +5 -1
  99. accrete/contrib/ui/static/bulma/sass/form/tools.css +356 -0
  100. accrete/contrib/ui/static/bulma/sass/form/tools.css.map +1 -0
  101. accrete/contrib/ui/static/bulma/sass/form/tools.scss +23 -12
  102. accrete/contrib/ui/static/bulma/sass/grid/columns-v2.css +1635 -0
  103. accrete/contrib/ui/static/bulma/sass/grid/columns-v2.css.map +1 -0
  104. accrete/contrib/ui/static/bulma/sass/grid/columns.css +1652 -0
  105. accrete/contrib/ui/static/bulma/sass/grid/columns.css.map +1 -0
  106. accrete/contrib/ui/static/bulma/sass/grid/columns.scss +109 -25
  107. accrete/contrib/ui/static/bulma/sass/grid/grid.css +3011 -0
  108. accrete/contrib/ui/static/bulma/sass/grid/grid.css.map +1 -0
  109. accrete/contrib/ui/static/bulma/sass/grid/grid.scss +3 -3
  110. accrete/contrib/ui/static/bulma/sass/helpers/aspect-ratio.css +61 -0
  111. accrete/contrib/ui/static/bulma/sass/helpers/aspect-ratio.css.map +1 -0
  112. accrete/contrib/ui/static/bulma/sass/helpers/border.css +17 -0
  113. accrete/contrib/ui/static/bulma/sass/helpers/border.css.map +1 -0
  114. accrete/contrib/ui/static/bulma/sass/helpers/color.css +5582 -0
  115. accrete/contrib/ui/static/bulma/sass/helpers/color.css.map +1 -0
  116. accrete/contrib/ui/static/bulma/sass/helpers/color.scss +166 -186
  117. accrete/contrib/ui/static/bulma/sass/helpers/flexbox.css +217 -0
  118. accrete/contrib/ui/static/bulma/sass/helpers/flexbox.css.map +1 -0
  119. accrete/contrib/ui/static/bulma/sass/helpers/float.css +37 -0
  120. accrete/contrib/ui/static/bulma/sass/helpers/float.css.map +1 -0
  121. accrete/contrib/ui/static/bulma/sass/helpers/gap.css +209 -0
  122. accrete/contrib/ui/static/bulma/sass/helpers/gap.css.map +1 -0
  123. accrete/contrib/ui/static/bulma/sass/helpers/other.css +34 -0
  124. accrete/contrib/ui/static/bulma/sass/helpers/other.css.map +1 -0
  125. accrete/contrib/ui/static/bulma/sass/helpers/overflow.css +65 -0
  126. accrete/contrib/ui/static/bulma/sass/helpers/overflow.css.map +1 -0
  127. accrete/contrib/ui/static/bulma/sass/helpers/position.css +45 -0
  128. accrete/contrib/ui/static/bulma/sass/helpers/position.css.map +1 -0
  129. accrete/contrib/ui/static/bulma/sass/helpers/spacing.css +489 -0
  130. accrete/contrib/ui/static/bulma/sass/helpers/spacing.css.map +1 -0
  131. accrete/contrib/ui/static/bulma/sass/helpers/typography.css +423 -0
  132. accrete/contrib/ui/static/bulma/sass/helpers/typography.css.map +1 -0
  133. accrete/contrib/ui/static/bulma/sass/helpers/visibility.css +485 -0
  134. accrete/contrib/ui/static/bulma/sass/helpers/visibility.css.map +1 -0
  135. accrete/contrib/ui/static/bulma/sass/layout/container.scss +16 -8
  136. accrete/contrib/ui/static/bulma/sass/layout/footer.css +9 -0
  137. accrete/contrib/ui/static/bulma/sass/layout/footer.css.map +1 -0
  138. accrete/contrib/ui/static/bulma/sass/layout/hero.css +534 -0
  139. accrete/contrib/ui/static/bulma/sass/layout/hero.css.map +1 -0
  140. accrete/contrib/ui/static/bulma/sass/layout/level.css +102 -0
  141. accrete/contrib/ui/static/bulma/sass/layout/level.css.map +1 -0
  142. accrete/contrib/ui/static/bulma/sass/layout/media.css +90 -0
  143. accrete/contrib/ui/static/bulma/sass/layout/media.css.map +1 -0
  144. accrete/contrib/ui/static/bulma/sass/layout/section.css +23 -0
  145. accrete/contrib/ui/static/bulma/sass/layout/section.css.map +1 -0
  146. accrete/contrib/ui/static/bulma/sass/layout/section.scss +4 -0
  147. accrete/contrib/ui/static/bulma/sass/themes/dark.css +3 -0
  148. accrete/contrib/ui/static/bulma/sass/themes/dark.css.map +1 -0
  149. accrete/contrib/ui/static/bulma/sass/themes/light.css +3 -0
  150. accrete/contrib/ui/static/bulma/sass/themes/light.css.map +1 -0
  151. accrete/contrib/ui/static/bulma/sass/themes/light.scss +1 -0
  152. accrete/contrib/ui/static/bulma/sass/themes/setup.css +3 -0
  153. accrete/contrib/ui/static/bulma/sass/themes/setup.css.map +1 -0
  154. accrete/contrib/ui/static/bulma/sass/utilities/controls.css +13 -0
  155. accrete/contrib/ui/static/bulma/sass/utilities/controls.css.map +1 -0
  156. accrete/contrib/ui/static/bulma/sass/utilities/css-variables.css +3 -0
  157. accrete/contrib/ui/static/bulma/sass/utilities/css-variables.css.map +1 -0
  158. accrete/contrib/ui/static/bulma/sass/utilities/css-variables.scss +3 -2
  159. accrete/contrib/ui/static/bulma/sass/utilities/derived-variables.css +3 -0
  160. accrete/contrib/ui/static/bulma/sass/utilities/derived-variables.css.map +1 -0
  161. accrete/contrib/ui/static/bulma/sass/utilities/extends.css +13 -0
  162. accrete/contrib/ui/static/bulma/sass/utilities/extends.css.map +1 -0
  163. accrete/contrib/ui/static/bulma/sass/utilities/functions.scss +2 -2
  164. accrete/contrib/ui/static/bulma/sass/utilities/initial-variables.css +3 -0
  165. accrete/contrib/ui/static/bulma/sass/utilities/initial-variables.css.map +1 -0
  166. accrete/contrib/ui/static/bulma/sass/utilities/initial-variables.scss +4 -4
  167. accrete/contrib/ui/static/bulma/sass/utilities/mixins.css +3 -0
  168. accrete/contrib/ui/static/bulma/sass/utilities/mixins.css.map +1 -0
  169. accrete/contrib/ui/static/bulma/sass/utilities/mixins.scss +1 -1
  170. accrete/contrib/ui/static/bulma/versions/bulma-no-dark-mode.css +19648 -0
  171. accrete/contrib/ui/static/bulma/versions/bulma-no-dark-mode.css.map +1 -0
  172. accrete/contrib/ui/static/bulma/versions/bulma-no-dark-mode.scss +2 -1
  173. accrete/contrib/ui/static/bulma/versions/bulma-no-helpers-prefixed.css +11136 -0
  174. accrete/contrib/ui/static/bulma/versions/bulma-no-helpers-prefixed.css.map +1 -0
  175. accrete/contrib/ui/static/bulma/versions/bulma-no-helpers-prefixed.scss +1 -1
  176. accrete/contrib/ui/static/bulma/versions/bulma-no-helpers.css +11136 -0
  177. accrete/contrib/ui/static/bulma/versions/bulma-no-helpers.css.map +1 -0
  178. accrete/contrib/ui/static/bulma/versions/bulma-no-helpers.scss +1 -1
  179. accrete/contrib/ui/static/bulma/versions/bulma-prefixed.css +21551 -0
  180. accrete/contrib/ui/static/bulma/versions/bulma-prefixed.css.map +1 -0
  181. accrete/contrib/ui/static/bulma/versions/bulma-prefixed.scss +1 -1
  182. accrete/contrib/ui/static/css/accrete.css +20757 -19996
  183. accrete/contrib/ui/static/css/accrete.css.map +1 -1
  184. accrete/contrib/ui/static/css/accrete.scss +185 -461
  185. accrete/contrib/ui/static/js/filter.js +98 -679
  186. accrete/contrib/ui/static/js/htmx.min.js +1 -1
  187. accrete/contrib/ui/templates/django/forms/widgets/date.html +5 -0
  188. accrete/contrib/ui/templates/django/forms/widgets/input.html +1 -1
  189. accrete/contrib/ui/templates/django/forms/widgets/select.html +7 -5
  190. accrete/contrib/ui/templates/ui/content_right.html +7 -0
  191. accrete/contrib/ui/templates/ui/filter/filter.html +27 -0
  192. accrete/contrib/ui/templates/ui/filter/query_input.html +31 -0
  193. accrete/contrib/ui/templates/ui/filter/query_operator.html +11 -0
  194. accrete/contrib/ui/templates/ui/filter/query_params.html +106 -0
  195. accrete/contrib/ui/templates/ui/filter/query_tags.html +26 -0
  196. accrete/contrib/ui/templates/ui/layout.html +175 -232
  197. accrete/contrib/ui/templates/ui/list.html +39 -28
  198. accrete/contrib/ui/templates/ui/list_update.html +3 -0
  199. accrete/contrib/ui/templates/ui/message.html +13 -0
  200. accrete/contrib/ui/templates/ui/{partials/modal.html → modal.html} +9 -5
  201. accrete/contrib/ui/templates/ui/oob.html +3 -0
  202. accrete/contrib/ui/templates/ui/table.html +67 -71
  203. accrete/contrib/ui/templates/ui/table_row_update.html +14 -0
  204. accrete/contrib/ui/templates/ui/widgets/model_search_select.html +42 -0
  205. accrete/contrib/ui/templates/ui/widgets/model_search_select_multi.html +78 -0
  206. accrete/contrib/ui/templates/ui/widgets/model_search_select_options.html +3 -0
  207. accrete/contrib/ui/templatetags/{accrete_ui.py → ui.py} +69 -57
  208. accrete/contrib/ui/urls.py +3 -1
  209. accrete/contrib/ui/views.py +33 -3
  210. accrete/contrib/ui/widgets/__init__.py +1 -0
  211. accrete/contrib/ui/widgets/search_select.py +106 -0
  212. accrete/contrib/user/forms.py +1 -1
  213. accrete/contrib/user/templates/user/change_email.html +22 -27
  214. accrete/contrib/user/templates/user/change_password.html +24 -36
  215. accrete/contrib/user/templates/user/login.html +72 -23
  216. accrete/contrib/user/templates/user/user_form.html +50 -52
  217. accrete/contrib/user/urls.py +2 -3
  218. accrete/contrib/user/views.py +39 -46
  219. accrete/forms.py +0 -2
  220. accrete/managers.py +4 -4
  221. accrete/middleware.py +43 -68
  222. accrete/models.py +7 -1
  223. accrete/storage.py +4 -1
  224. accrete/tenant.py +11 -5
  225. accrete/utils/__init__.py +2 -0
  226. accrete/utils/models.py +9 -1
  227. accrete/utils/views.py +36 -20
  228. accrete/views.py +9 -5
  229. {accrete-0.0.99.dist-info → accrete-0.0.109.dist-info}/METADATA +2 -2
  230. accrete-0.0.109.dist-info/RECORD +369 -0
  231. {accrete-0.0.99.dist-info → accrete-0.0.109.dist-info}/WHEEL +1 -1
  232. accrete/contrib/ui/elements.py +0 -93
  233. accrete/contrib/ui/static/bulma/css/versions/bulma-no-dark-mode.min.css.map +0 -1
  234. accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers-prefixed.min.css.map +0 -1
  235. accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers.min.css.map +0 -1
  236. accrete/contrib/ui/static/bulma/sass/grid/columns-v2.scss +0 -957
  237. accrete/contrib/ui/static/js/ui.js +0 -30
  238. accrete/contrib/ui/templates/ui/dashboard.html +0 -7
  239. accrete/contrib/ui/templates/ui/detail.html +0 -19
  240. accrete/contrib/ui/templates/ui/form.html +0 -21
  241. accrete/contrib/ui/templates/ui/partials/filter.html +0 -143
  242. accrete/contrib/ui/templates/ui/partials/form_errors.html +0 -34
  243. accrete/contrib/ui/templates/ui/partials/header.html +0 -123
  244. accrete/contrib/ui/templates/ui/partials/modal_form.html +0 -45
  245. accrete/contrib/ui/templates/ui/partials/onchange_form.html +0 -1
  246. accrete/contrib/ui/templates/ui/partials/pagination_detail.html +0 -23
  247. accrete/contrib/ui/templates/ui/partials/pagination_list.html +0 -28
  248. accrete/contrib/ui/templates/ui/partials/table_field.html +0 -16
  249. accrete/contrib/ui/templates/ui/partials/table_field_float.html +0 -1
  250. accrete/contrib/ui/templates/ui/partials/table_field_monetary.html +0 -4
  251. accrete/contrib/ui/templates/ui/partials/table_field_string.html +0 -1
  252. accrete/contrib/user/templates/user/user_detail.html +0 -43
  253. accrete-0.0.99.dist-info/RECORD +0 -231
  254. {accrete-0.0.99.dist-info → accrete-0.0.109.dist-info}/licenses/LICENSE +0 -0
@@ -1,30 +0,0 @@
1
- function setDropDown(el) {
2
- if (el.getAttribute('data-dropdown-id')) {
3
- el = document.getElementById(el.getAttribute('data-dropdown-id'));
4
-
5
- }
6
- const dropdownMenu = el.querySelector('.dropdown-menu');
7
- document.querySelectorAll('.dropdown').forEach(dropdown => {
8
- if (dropdown !== el) {
9
- dropdown.classList.remove('is-active');
10
- if (dropdown.getAttribute('data-dropdown-trigger-id')) {
11
- document.getElementById(
12
- dropdown.getAttribute('data-dropdown-trigger-id')
13
- ).classList.remove('is-active');
14
- }
15
- }
16
- else if (dropdownMenu.contains(el)) {}
17
- else if (dropdown === el) {
18
- dropdown.classList.toggle('is-active');
19
- if (dropdown.getAttribute('data-dropdown-trigger-id')) {
20
- document.getElementById(
21
- dropdown.getAttribute('data-dropdown-trigger-id')
22
- ).classList.toggle('is-active');
23
- }
24
- }
25
- })
26
- }
27
-
28
- function removeModal(modalId) {
29
- document.getElementById(modalId).remove()
30
- }
@@ -1,7 +0,0 @@
1
- {% extends 'ui/layout.html' %}
2
-
3
- {% block header %}
4
- <div class="is-hidden-fullhd">
5
- {% include 'ui/partials/header.html' %}
6
- </div>
7
- {% endblock %}
@@ -1,19 +0,0 @@
1
- {% extends 'ui/layout.html' %}
2
- {% load i18n %}
3
- {% load accrete_ui %}
4
-
5
- {% block content %}
6
- <div class="columns is-desktop m-0" style="gap: 8px">
7
- <div class="column p-0 is-8-desktop">
8
- <div class="box mt-2">
9
- {% block detail_content %}{% endblock %}
10
- </div>
11
- </div>
12
- <div id="info-panel" class="column pt-0 px-0">
13
- <div id="info-panel-content" class="p-0 mt-2">
14
- {% block info_panel %}
15
- {% endblock %}
16
- </div>
17
- </div>
18
- </div>
19
- {% endblock %}
@@ -1,21 +0,0 @@
1
- {% extends 'ui/layout.html' %}
2
- {% load i18n %}
3
-
4
- {% block content %}
5
- <div class="columns is-desktop m-0" style="gap: 8px">
6
- <div id="form-content" class="column p-0 is-8-desktop">
7
- <div class="box mt-2">
8
- {% if form.is_saved is False %}
9
- {% include 'ui/partials/form_errors.html' %}
10
- {% endif %}
11
- {% block form %}{% endblock %}
12
- </div>
13
- </div>
14
- <div id="info-panel" class="column pt-0 px-0">
15
- <div id="info-panel-content" class="p-0 mt-2">
16
- {% block info_panel %}
17
- {% endblock %}
18
- </div>
19
- </div>
20
- </div>
21
- {% endblock %}
@@ -1,143 +0,0 @@
1
- {% load i18n %}
2
- {% load static %}
3
- {% load cache %}
4
- {% load accrete_ui %}
5
-
6
- <div id="query-block" class="panel-block pt-0" style="position: relative; display: inline-block; width: 100%">
7
- <script src="{% static "js/filter.js" %}" defer type="text/javascript"></script>
8
-
9
- <div id="query-apply" hx-get="" hx-trigger="click" hx-replace-url="true"
10
- hx-select-oob="#content,#list-pagination,#query-apply,#panel-actions">
11
- </div>
12
-
13
- <div id="query-tags" class="is-flex-direction-column is-flex-grow-1 is-multiline mb-1"
14
- data-or-label="{% translate 'OR' %}" data-and-label="{% translate 'AND' %}" data-xor-label="{% translate 'XOR' %}">
15
- </div>
16
-
17
- <div class="field level is-mobile mb-1 is-flex">
18
- <p id="query-operation" class="control" style="display: flex; flex-direction: column; align-self: flex-start">
19
- <span class="select">
20
- <select id="query-operation-select" aria-label="Select Operation">
21
- <option value="&">{% translate 'AND' %}</option>
22
- <option value="|">{% translate 'OR' %}</option>
23
- </select>
24
- </span>
25
- </p>
26
- <div id="query-notification" class="is-size-7 p-0 ml-1 is-flex-direction-column is-flex-grow-3">
27
- <div id="query-notification-parameter" class="notification is-warning is-light has-text-centered py-2 m-0 is-hidden">
28
- <p>{% translate 'Select a parameter' %}</p>
29
- </div>
30
- <p id="query-label" class="py-2 px-1 m-0" style="word-break: break-word"></p>
31
- </div>
32
- </div>
33
-
34
- <div id="query-input-fieldset" class="field has-addons pt-1 mb-0 mt-1">
35
- <p id="query-input-control" class="control is-expanded">
36
- <input id="query-input"
37
- type="text"
38
- aria-label="Query Input"
39
- class="input"
40
- placeholder="Enter a search term"
41
- data-default-term="{{ filter.default_filter_term }}"
42
- onkeyup="inputConfirm()"
43
- >
44
- </p>
45
- <p id="query-input-select-control" class="control is-expanded is-hidden">
46
- <span class="select is-fullwidth">
47
- <select id="query-input-select" aria-label="query-input-select"></select>
48
- </span>
49
- </p>
50
- <p id="query-input-apply" class="control" onclick="applyInput()"><button class="button">&#x21D2;</button></p>
51
- </div>
52
-
53
-
54
- <div id="query-params-dropdown" class="box mt-0 mx-0 is-hidden is-fullwidth" tabindex="-1" onclick="toggleParams()">
55
- {{ filter.to_html.params }}
56
- </div>
57
-
58
- <div id="list-customization" style="display: flex; flex-direction: column; flex-wrap: nowrap">
59
- <div class="mt-2">
60
- <div class="field has-addons">
61
- {% if field_selection %}
62
- <div class="control is-expanded">
63
- <button id="list-customization-fields-trigger"
64
- class="button dropdown-button side-panel-action-content is-fullwidth"
65
- onclick="setDropDown(this)" data-dropdown-id="list-customization-fields"
66
- >
67
- <span>{% translate 'Fields' %}</span>
68
- <span class="icon is-small">
69
- <i class="fa fa-angle-down"></i>
70
- </span>
71
- </button>
72
- </div>
73
- {% endif %}
74
- {% if order_selection %}
75
- <div class="control is-expanded">
76
- <button id="list-customization-order-trigger"
77
- class="button dropdown-button side-panel-action-content is-fullwidth"
78
- onclick="setDropDown(this)" data-dropdown-id="list-customization-order"
79
- >
80
- <span>{% translate 'Order' %}</span>
81
- <span class="icon is-small">
82
- <i class="fa fa-angle-down"></i>
83
- </span>
84
- </button>
85
- </div>
86
- {% endif %}
87
- </div>
88
- </div>
89
-
90
- {% if field_selection %}
91
- <div id="list-customization-fields" class="dropdown is-flex-grow-1 pt-0" role="menu" data-dropdown-trigger-id="list-customization-fields-trigger">
92
- <div class="dropdown-menu pt-0" style="width: 100%">
93
- <div class="dropdown-content">
94
- <div class="dropdown-item">
95
- <div class="field has-addons mr-1">
96
- <p class="control is-expanded">
97
- <input id="field-path-search-input" class="input is-small" type="text" aria-label="Query Input" oninput="filterFieldPaths()" style="height: 100%">
98
- </p>
99
- <p class="control">
100
- <button id="field-path-search-reset" class="button is-small has-icon" onclick="resetFieldPaths()" style="box-shadow: none">
101
- <span class="icon"><i class="fas fa-arrow-rotate-left"></i></span>
102
- </button>
103
- </p>
104
- </div>
105
- </div>
106
- <div class="dropdown-item">
107
- <div id="field-path-checkboxes" onchange="changeFieldSelection()">
108
- {{ filter.to_html.field_paths }}
109
- </div>
110
- </div>
111
- <div id="field-path-apply" hx-get="" hx-trigger="click" hx-replace-url="true"
112
- hx-select-oob="#content,#field-path-apply,#list-pagination">
113
- </div>
114
- </div>
115
- </div>
116
- </div>
117
- {% endif %}
118
-
119
- {% if order_selection %}
120
- <div id="list-customization-order" class="dropdown is-flex-grow-1 pt-0" role="menu" data-dropdown-trigger-id="list-customization-order-trigger">
121
- <div class="dropdown-menu pt-0" style="width: 100%">
122
- <div class="dropdown-content">
123
- <div class="dropdown-item">
124
- <div class="field has-addons mr-1">
125
- <p class="control is-expanded">
126
- <input class="input is-small" type="text" aria-label="Query Input" style="height: 100%">
127
- </p>
128
- <p class="control">
129
- <button id="order-selection-reset" class="button is-small has-icon" style="box-shadow: none;">
130
- <span class="icon"><i class="fas fa-arrow-rotate-left"></i></span>
131
- </button>
132
- </p>
133
- </div>
134
- </div>
135
- <div id="order-path-apply" hx-get="" hx-trigger="click" hx-replace-url="true"
136
- hx-select-oob="#content,#order-path-apply,#list-pagination">
137
- </div>
138
- </div>
139
- </div>
140
- </div>
141
- {% endif %}
142
- </div>
143
- </div>
@@ -1,34 +0,0 @@
1
- <div class="columns py-0">
2
- <div class="column is-12">
3
- <div class="notification is-danger is-light">
4
- <p>{{ form.non_field_errors }}</p>
5
- {% for inline_form in form.inline_forms %}
6
- <p>{{ inline_form.non_field_errors }}</p>
7
- {% endfor %}
8
- {% if form.save_error %}
9
- <p>{{ form.save_error|safe }}</p>
10
- <p>Error ID: {{ form.save_error_id }}</p>
11
- {% endif %}
12
- {% for f in form %}
13
- {% if f.errors %}
14
- <label>
15
- <span class="is-underlined">{{ f.label_tag }}</span>
16
- <span class="is-size-7">{{ f.errors }}</span>
17
- </label>
18
- {% endif %}
19
- {% endfor %}
20
- {% for formset in form.inline_forms %}
21
- {% for inline_form in formset %}
22
- {% for field in inline_form %}
23
- {% if field.errors %}
24
- <label>
25
- <span class="is-underlined">{{ field.label_tag }}</span>
26
- <span class="is-size-7">{{ field.errors }}</span>
27
- </label>
28
- {% endif %}
29
- {% endfor %}
30
- {% endfor %}
31
- {% endfor %}
32
- </div>
33
- </div>
34
- </div>
@@ -1,123 +0,0 @@
1
- {% load i18n %}
2
-
3
- <div id="header" class="pt-3">
4
- <div class="level level-is-shrinkable is-flex mb-2 pl-3 {% if detail_page %}is-mobile {% endif %}" style="align-items: start">
5
- <div class="level-left">
6
- <div class="level-item has-text-weight-bold">
7
- <nav id="breadcrumbs" class="breadcrumb" aria-label="breadcrumbs" style="white-space: unset; word-break: break-word">
8
- <ul>
9
- {% for crumb in breadcrumbs %}
10
- <li><a class="is-underlined" href="{{ crumb.url|default_if_none:'#' }}"
11
- aria-current="page" hx-boost="true"
12
- >{{ crumb.name }}</a></li>
13
- {% endfor %}
14
- <li class="is-active"><a id="breadcrumb-title" aria-current="page">{{ title }}</a></li>
15
- </ul>
16
- </nav>
17
- </div>
18
- </div>
19
- {% if list_page.paginator or detail_page %}
20
- <div class="level-right is-mobile is-hidden-mobile is-hidden-fullhd is-align-self-flex-start px-3">
21
- <div class="level-item">
22
- {% if list_page.paginator %}
23
- {% include 'ui/partials/pagination_list.html' %}
24
- {% elif detail_page %}
25
- {% include 'ui/partials/pagination_detail.html' %}
26
- {% endif %}
27
- </div>
28
- </div>
29
- {% endif %}
30
- </div>
31
-
32
- <div class="is-flex is-hidden-fullhd is-justify-content-space-between mb-2 {% if not filter %}mr-3{% endif %}">
33
- <div id="header-actions" class="is-flex scroll-shadows py-1 px-1 ml-2" style="overflow-x: auto">
34
- {% for action in actions %}
35
- {% if action.actions %}
36
- <button id="action-group-{{ loop.index }}" class="button" data-target="action-group-{{ loop.index }}-modal" onclick="showActions(this)">
37
- <span>{{ action.name }}</span>
38
- <span class="icon is-small">
39
- <i class="fas fa-angle-down" aria-hidden="true"></i>
40
- </span>
41
- </button>
42
- <div id="action-group-{{ loop.index }}-modal" class="modal">
43
- <div class="modal-background" onclick="closeActionsModal('action-group-{{ loop.index }}-modal')"></div>
44
- <div class="modal-card">
45
- <header class="modal-card-head">
46
- <p class="modal-card-title">{{ action.name }}</p>
47
- <button class="delete" aria-label="close"
48
- onclick="closeActionsModal('action-group-{{ loop.index }}-modal')"
49
- ></button>
50
- </header>
51
- <section class="modal-card-body">
52
- {% for group_action in action.actions %}
53
- {% if group_action.submit %}
54
- <button class="button is-fullwidth {{ group_action.class_list|join:' ' }} mb-4"
55
- type="submit" form={{ group_action.form_id }} value="{{ group_action.name }}"
56
- {{ group_action.attrs_str }}
57
- >
58
- <div class="level side-panel-action-content"><span>{{ group_action.name }}</span>
59
- {% if group_action.icon %}<i class="{{ group_action.icon.value }}"></i>{% endif %}
60
- </div>
61
- </button>
62
- {% else %}
63
- <a class="button is-fullwidth {{ group_action.class_list|join:' ' }} mb-4"
64
- {% if group_action.url %}
65
- {{ group_action.method.value }}="{{ group_action.url }}"
66
- {% endif %}
67
- {{ group_action.attrs_str }}
68
- >
69
- <div class="level side-panel-action-content">
70
- <span>{{ group_action.name }}</span>
71
- {% if group_action.icon %}<i class="{{ group_action.icon.value }}"></i>{% endif %}
72
- </div>
73
- </a>
74
- {% endif %}
75
- {% endfor %}
76
- </section>
77
- </div>
78
- </div>
79
- {% elif action.submit %}
80
- <button class="button is-fullwidth mr-2 {{ action.class_list|join:' ' }}"
81
- type="submit" form={{ action.form_id }} value="{{ action.name }}"
82
- {{ action.attrs_str }}
83
- >
84
- <div class="side-panel-action-content level">
85
- <span class="{% if action.icon_only %}is-hidden{% endif %}">{{ action.name }}</span>
86
- {% if action.icon %}<i class="{{ action.icon.value }} ml-2"></i>{% endif %}
87
- </div>
88
- </button>
89
- {% else %}
90
- <a class="button is-fullwidth mr-2 {{ action.class_list|join:' ' }}" style="min-height: 36px;"
91
- {% if action.url %}
92
- {{ action.method.value }}="{{ action.url }}"
93
- {% endif %}
94
- {{ action.attrs_str }}
95
- >
96
- <div class="side-panel-action-content level">
97
- <span class="{% if action.icon_only %}is-hidden{% endif %}">{{ action.name }}</span>
98
- {% if action.icon %}<i class="{{ action.icon.value }}"></i>{% endif %}
99
- </div>
100
- </a>
101
- {% endif %}
102
- {% endfor %}
103
- </div>
104
- {% if filter %}
105
- <div class="is-flex ml-2 py-1 pr-3">
106
- <button id="modal-filter-button" class="button has-icon" onclick="showFilterModal()">
107
- <i class="fa fa-filter"></i>
108
- </button>
109
- </div>
110
- {% endif %}
111
- </div>
112
- <script>
113
- function showActions(el) {
114
- console.log(el)
115
- const modal = document.getElementById(el.getAttribute('data-target'));
116
- modal.classList.add('is-active');
117
- }
118
-
119
- function closeActionsModal(modalId) {
120
- document.getElementById(modalId).classList.remove('is-active');
121
- }
122
- </script>
123
- </div>
@@ -1,45 +0,0 @@
1
- {% load i18n %}
2
-
3
- <div id="modal-{{ form_id }}" class="modal {% block modal_form_class %}is-active{% endblock %}"
4
- hx-swap="outerHTML"
5
- hx-target="#modal-{{ form_id }}"
6
- {% if blocking %}
7
- hx-indicator="#modal-{{ form_id }}-indicator"
8
- hx-disabled-elt="#modal-{{ form_id }}-background"
9
- {% endif %}
10
- >
11
- <button id="modal-{{ form_id }}-background" class="modal-background" onclick="removeModal('modal-{{ form_id }}')" style="cursor: default"></button>
12
- <div class="modal-card">
13
- <header class="modal-card-head">
14
- <p class="modal-card-title">
15
- {{ title }}
16
- </p>
17
- <button class="delete filter-modal-close" aria-label="close" onclick="removeModal('modal-{{ form_id }}')"></button>
18
- </header>
19
- <section id="modal-content" class="modal-card-body">
20
- {% if form.is_saved is False %}
21
- {% include 'ui/partials/form_errors.html' %}
22
- {% endif %}
23
- {% block modal_content %}{% endblock %}
24
- </section>
25
- <footer class="modal-card-foot">
26
- {% block modal_footer %}
27
- <div class="buttons" style="width: 100%">
28
- {% block modal_buttons %}
29
- <button class="button is-success" type="submit" form="{{ form_id }}">
30
- {% translate 'Save' %}
31
- </button>
32
- <button class="button" onclick="removeModal('modal-{{ form_id }}')">
33
- {% translate 'Discard' %}
34
- </button>
35
- {% endblock %}
36
- </div>
37
- {% endblock %}
38
- </footer>
39
- {% if blocking %}
40
- <div id="modal-{{ form_id }}-indicator" class="htmx-indicator modal-request-overlay" style="position: absolute; inset: 0; background: rgba(47, 47, 62, 0.2)">
41
- <progress class="progress is-success" max="100" style="position: fixed; inset: 0; min-width: 300px; max-width: 20vw; margin: auto;"></progress>
42
- </div>
43
- {% endif %}
44
- </div>
45
- </div>
@@ -1 +0,0 @@
1
- <div hx-post="?onchange=1&{{ params }}" hx-trigger="load" hx-target="body" hx-include="#{{ form_id }}"></div>
@@ -1,23 +0,0 @@
1
- <div id="detail-pagination" class="field has-addons" style="width: 100%">
2
- <p class="control">
3
- <button class="button"
4
- hx-get="{{ detail_page.previous_object_url }}{{pagination_param_str}}"
5
- hx-replace-url="true"
6
- hx-select-oob="#content,#detail-pagination,#panel-actions,#header-actions,#breadcrumbs"
7
- ><
8
- </button>
9
-
10
- </p>
11
- <p class="control is-expanded">
12
- <button class="button is-fullwidth px-1" style="white-space: normal">
13
- <span class="{% if detail_page.total_objects > 99999 %}is-size-7{% endif %}">{{ detail_page.current_object_idx }} / {{ detail_page.total_objects }}</span>
14
- </button>
15
- </p>
16
- <p class="control">
17
- <button class="button" hx-get="{{ detail_page.next_object_url }}{{pagination_param_str}}"
18
- hx-replace-url="true"
19
- hx-select-oob="#content,#detail-pagination,#panel-actions,#header-actions,#breadcrumbs"
20
- >>
21
- </button>
22
- </p>
23
- </div>
@@ -1,28 +0,0 @@
1
- {% load i18n %}
2
- <div id="list-pagination" class="field has-addons" style="min-width: 100%; max-width: 100%">
3
- <p class="control">
4
- <button id="list-pagination-prev-button" class="button"
5
- hx-get="{{ pagination_param_str }}&page={% if list_page.has_previous %}{{ list_page.previous_page_number }}{% else %}{{ list_page.paginator.num_pages }}{% endif %}"
6
- hx-replace-url="true"
7
- hx-select-oob="#content,#list-pagination"
8
- >
9
- <
10
- </button>
11
- </p>
12
- <p class="control is-expanded">
13
- <button class="button is-fullwidth px-1" style="white-space: normal">
14
- <span class="{% if list_page.paginator.count > 9999 %}is-size-7{% endif %}" style="display: flex">
15
- {{ list_page.start_index }}-<div id="list-pagination-end-index">{{ list_page.end_index }}</div> / {{ list_page.paginator.count }}
16
- </span>
17
- </button>
18
- </p>
19
- <p class="control">
20
- <button id="list-pagination-next-button" class="button"
21
- hx-get="{{ pagination_param_str }}&page={% if list_page.has_next %}{{ list_page.next_page_number }}{% else %}1{% endif %}"
22
- hx-replace-url="true"
23
- hx-select-oob="#content,#list-pagination"
24
- >
25
- >
26
- </button>
27
- </p>
28
- </div>
@@ -1,16 +0,0 @@
1
- {% load accrete_ui %}
2
-
3
- {% with val=obj|get_attr:field.name|default_if_none:'---' %}
4
- <td style="text-align: {{ field.alignment.value }}" {% if val|length > field.truncate_after %}title="{{ val }}"{% endif %}>
5
- <span class="responsive-heading has-text-weight-light" style="margin-right: .2rem">{{ field.label }}:</span>
6
- {{ field.prefix }}
7
- {% block td_content %}
8
- {% if field.truncate_after > 0 %}
9
- {{ val|truncatechars:field.truncate_after }}
10
- {% else %}
11
- {{ val }}
12
- {% endif %}
13
- {% endblock %}
14
- {{ field.suffix }}
15
- </td>
16
- {% endwith %}
@@ -1 +0,0 @@
1
- {% extends 'ui/partials/table_field.html' %}
@@ -1,4 +0,0 @@
1
- {% extends 'ui/partials/table_field.html' %}
2
- {% load accrete_ui %}
3
-
4
- {% block td_content %}{{ obj|get_attr:field.name|default_if_none:0|floatformat:2 }}{% endblock %}
@@ -1 +0,0 @@
1
- {% extends 'ui/partials/table_field.html' %}
@@ -1,43 +0,0 @@
1
- {% extends 'ui/detail.html' %}
2
- {% load i18n %}
3
-
4
- {% block detail_content %}
5
- <div class="columns">
6
- <div class="column is-6">
7
- <label class="label is-detail has-field">
8
- {% translate 'Username' %}
9
- <div class="field">
10
- <p class="control is-expanded">{{ object.username|default_if_none:'' }}</p>
11
- </div>
12
- </label>
13
- </div>
14
- <div class="column is-6">
15
- <label class="label is-detail has-field">
16
- {% translate 'E-Mail' %}
17
- <div class="field">
18
- <p class="control is-expanded">{{ object.email }}</p>
19
- </div>
20
- </label>
21
- </div>
22
- </div>
23
- <div class="columns">
24
- <div class="column is-12">
25
- <label class="label is-detail has-field">
26
- {% translate 'Name' %}
27
- <div class="field">
28
- <p class="control is-expanded">{{ object.full_name|default_if_none:'' }}</p>
29
- </div>
30
- </label>
31
- </div>
32
- </div>
33
- <div class="columns">
34
- <div class="column is-6">
35
- <label class="label is-detail has-field">
36
- {% translate 'Language' %}
37
- <div class="field">
38
- <p class="control">{{ object.language_code_display }}</p>
39
- </div>
40
- </label>
41
- </div>
42
- </div>
43
- {% endblock %}