accrete 0.0.146__tar.gz → 0.0.147__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.
Files changed (287) hide show
  1. {accrete-0.0.146 → accrete-0.0.147}/PKG-INFO +1 -1
  2. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/response.py +23 -10
  3. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/css/accrete.css +1 -5
  4. accrete-0.0.147/accrete/contrib/ui/static/css/accrete.css.map +7 -0
  5. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/css/accrete.scss +1 -5
  6. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/templates/ui/layout.html +6 -3
  7. accrete-0.0.147/accrete/contrib/ui/templates/ui/list.html +42 -0
  8. accrete-0.0.147/accrete/contrib/ui/templates/ui/table.html +75 -0
  9. accrete-0.0.147/accrete/contrib/ui/templates/ui/table_row_update.html +14 -0
  10. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/templates/ui/templatetags/field.html +9 -1
  11. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/templates/ui/widgets/model_search_select_multi.html +1 -1
  12. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/templatetags/ui.py +7 -3
  13. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user/templates/user/change_email.html +2 -2
  14. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user/templates/user/change_password.html +3 -3
  15. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user/templates/user/user_preferences.html +6 -6
  16. {accrete-0.0.146 → accrete-0.0.147}/pyproject.toml +1 -1
  17. accrete-0.0.146/accrete/contrib/ui/static/css/accrete.css.map +0 -7
  18. accrete-0.0.146/accrete/contrib/ui/templates/ui/list.html +0 -45
  19. accrete-0.0.146/accrete/contrib/ui/templates/ui/table.html +0 -77
  20. accrete-0.0.146/accrete/contrib/ui/templates/ui/table_row_update.html +0 -14
  21. {accrete-0.0.146 → accrete-0.0.147}/.gitignore +0 -0
  22. {accrete-0.0.146 → accrete-0.0.147}/LICENSE +0 -0
  23. {accrete-0.0.146 → accrete-0.0.147}/README.md +0 -0
  24. {accrete-0.0.146 → accrete-0.0.147}/accrete/__init__.py +0 -0
  25. {accrete-0.0.146 → accrete-0.0.147}/accrete/admin.py +0 -0
  26. {accrete-0.0.146 → accrete-0.0.147}/accrete/apps.py +0 -0
  27. {accrete-0.0.146 → accrete-0.0.147}/accrete/config.py +0 -0
  28. {accrete-0.0.146 → accrete-0.0.147}/accrete/context_processors.py +0 -0
  29. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/__init__.py +0 -0
  30. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/country/__init__.py +0 -0
  31. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/country/admin.py +0 -0
  32. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/country/apps.py +0 -0
  33. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/country/migrations/0001_initial.py +0 -0
  34. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/country/migrations/0002_auto_20250219_1759.py +0 -0
  35. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/country/migrations/0003_alter_country_options.py +0 -0
  36. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/country/migrations/__init__.py +0 -0
  37. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/country/models.py +0 -0
  38. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/log/__init__.py +0 -0
  39. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/log/admin.py +0 -0
  40. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/log/apps.py +0 -0
  41. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/log/config.py +0 -0
  42. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/log/helper.py +0 -0
  43. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/log/migrations/0001_initial.py +0 -0
  44. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/log/migrations/0002_log_user_alter_log_new_value_type_and_more.py +0 -0
  45. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/log/migrations/0003_alter_log_tenant.py +0 -0
  46. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/log/migrations/0004_logconfig_logconfigfield.py +0 -0
  47. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/log/migrations/0005_logconfig_exclude_fields_and_more.py +0 -0
  48. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/log/migrations/__init__.py +0 -0
  49. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/log/models.py +0 -0
  50. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/log/queries.py +0 -0
  51. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/log/signals.py +0 -0
  52. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/log/tests.py +0 -0
  53. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/log/views.py +0 -0
  54. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/sequence/__init__.py +0 -0
  55. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/sequence/admin.py +0 -0
  56. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/sequence/apps.py +0 -0
  57. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/sequence/forms.py +0 -0
  58. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/sequence/migrations/0001_initial.py +0 -0
  59. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/sequence/migrations/0002_alter_sequence_name.py +0 -0
  60. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/sequence/migrations/0003_alter_sequence_tenant.py +0 -0
  61. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/sequence/migrations/__init__.py +0 -0
  62. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/sequence/models.py +0 -0
  63. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/sequence/queries.py +0 -0
  64. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/sequence/tests.py +0 -0
  65. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/sequence/views.py +0 -0
  66. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/system_mail/__init__.py +0 -0
  67. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/system_mail/admin.py +0 -0
  68. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/system_mail/apps.py +0 -0
  69. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/system_mail/forms.py +0 -0
  70. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/system_mail/migrations/0001_initial.py +0 -0
  71. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/system_mail/migrations/__init__.py +0 -0
  72. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/system_mail/models.py +0 -0
  73. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/system_mail/tasks.py +0 -0
  74. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/system_mail/tests.py +0 -0
  75. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/system_mail/views.py +0 -0
  76. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/__init__.py +0 -0
  77. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/admin.py +0 -0
  78. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/apps.py +0 -0
  79. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/filter.py +0 -0
  80. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/middleware.py +0 -0
  81. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/migrations/__init__.py +0 -0
  82. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/models.py +0 -0
  83. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/LICENSE +0 -0
  84. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/README.md +0 -0
  85. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/bulma.scss +0 -0
  86. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/css/bulma.css +0 -0
  87. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/css/bulma.css.map +0 -0
  88. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/css/bulma.min.css +0 -0
  89. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-dark-mode.css +0 -0
  90. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-dark-mode.css.map +0 -0
  91. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-dark-mode.min.css +0 -0
  92. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers-prefixed.css +0 -0
  93. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers-prefixed.css.map +0 -0
  94. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers-prefixed.min.css +0 -0
  95. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers.css +0 -0
  96. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers.css.map +0 -0
  97. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers.min.css +0 -0
  98. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/css/versions/bulma-prefixed.css +0 -0
  99. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/css/versions/bulma-prefixed.css.map +0 -0
  100. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/css/versions/bulma-prefixed.min.css +0 -0
  101. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/package.json +0 -0
  102. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/_index.scss +0 -0
  103. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/base/_index.scss +0 -0
  104. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/base/animations.scss +0 -0
  105. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/base/generic.scss +0 -0
  106. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/base/minireset.scss +0 -0
  107. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/base/skeleton.scss +0 -0
  108. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/components/_index.scss +0 -0
  109. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/components/breadcrumb.scss +0 -0
  110. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/components/card.scss +0 -0
  111. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/components/dropdown.scss +0 -0
  112. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/components/menu.scss +0 -0
  113. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/components/message.scss +0 -0
  114. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/components/modal.scss +0 -0
  115. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/components/navbar.scss +0 -0
  116. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/components/pagination.scss +0 -0
  117. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/components/panel.scss +0 -0
  118. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/components/tabs.scss +0 -0
  119. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/elements/_index.scss +0 -0
  120. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/elements/block.scss +0 -0
  121. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/elements/box.scss +0 -0
  122. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/elements/button.scss +0 -0
  123. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/elements/content.scss +0 -0
  124. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/elements/delete.scss +0 -0
  125. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/elements/icon.scss +0 -0
  126. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/elements/image.scss +0 -0
  127. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/elements/loader.scss +0 -0
  128. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/elements/notification.scss +0 -0
  129. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/elements/progress.scss +0 -0
  130. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/elements/table.scss +0 -0
  131. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/elements/tag.scss +0 -0
  132. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/elements/title.scss +0 -0
  133. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/form/_index.scss +0 -0
  134. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/form/checkbox-radio.scss +0 -0
  135. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/form/file.scss +0 -0
  136. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/form/input-textarea.scss +0 -0
  137. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/form/select.scss +0 -0
  138. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/form/shared.scss +0 -0
  139. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/form/tools.scss +0 -0
  140. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/grid/_index.scss +0 -0
  141. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/grid/columns.scss +0 -0
  142. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/grid/grid.scss +0 -0
  143. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/helpers/_index.scss +0 -0
  144. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/helpers/aspect-ratio.scss +0 -0
  145. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/helpers/border.scss +0 -0
  146. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/helpers/color.scss +0 -0
  147. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/helpers/flexbox.scss +0 -0
  148. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/helpers/float.scss +0 -0
  149. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/helpers/gap.scss +0 -0
  150. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/helpers/other.scss +0 -0
  151. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/helpers/overflow.scss +0 -0
  152. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/helpers/position.scss +0 -0
  153. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/helpers/spacing.scss +0 -0
  154. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/helpers/typography.scss +0 -0
  155. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/helpers/visibility.scss +0 -0
  156. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/layout/_index.scss +0 -0
  157. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/layout/container.scss +0 -0
  158. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/layout/footer.scss +0 -0
  159. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/layout/hero.scss +0 -0
  160. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/layout/level.scss +0 -0
  161. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/layout/media.scss +0 -0
  162. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/layout/section.scss +0 -0
  163. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/themes/_index.scss +0 -0
  164. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/themes/dark.scss +0 -0
  165. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/themes/light.scss +0 -0
  166. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/themes/setup.scss +0 -0
  167. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/utilities/_index.scss +0 -0
  168. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/utilities/controls.scss +0 -0
  169. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/utilities/css-variables.scss +0 -0
  170. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/utilities/derived-variables.scss +0 -0
  171. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/utilities/extends.scss +0 -0
  172. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/utilities/functions.scss +0 -0
  173. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/utilities/initial-variables.scss +0 -0
  174. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/sass/utilities/mixins.scss +0 -0
  175. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/versions/bulma-no-dark-mode.scss +0 -0
  176. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/versions/bulma-no-helpers-prefixed.scss +0 -0
  177. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/versions/bulma-no-helpers.scss +0 -0
  178. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/bulma/versions/bulma-prefixed.scss +0 -0
  179. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/css/fa.css +0 -0
  180. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/css/icons.css +0 -0
  181. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/icons/Logo.svg +0 -0
  182. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/icons/accrete.svg +0 -0
  183. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/js/alpine-3.14.9.js +0 -0
  184. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/js/alpine-focus-3.14.9.js +0 -0
  185. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/js/alpine-sort-3.14.9.js +0 -0
  186. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/js/filter.js +0 -0
  187. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/js/htmx.min.js +0 -0
  188. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/webfonts/fa-brands-400.ttf +0 -0
  189. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/webfonts/fa-brands-400.woff2 +0 -0
  190. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/webfonts/fa-regular-400.ttf +0 -0
  191. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/webfonts/fa-regular-400.woff2 +0 -0
  192. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/webfonts/fa-solid-900.ttf +0 -0
  193. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/webfonts/fa-solid-900.woff2 +0 -0
  194. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/webfonts/fa-v4compatibility.ttf +0 -0
  195. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/static/webfonts/fa-v4compatibility.woff2 +0 -0
  196. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/templates/django/forms/widgets/attrs.html +0 -0
  197. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/templates/django/forms/widgets/date.html +0 -0
  198. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/templates/django/forms/widgets/email.html +0 -0
  199. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/templates/django/forms/widgets/file.html +0 -0
  200. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/templates/django/forms/widgets/input.html +0 -0
  201. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/templates/django/forms/widgets/select.html +0 -0
  202. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/templates/django/forms/widgets/text.html +0 -0
  203. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/templates/django/forms/widgets/textarea.html +0 -0
  204. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/templates/ui/content.html +0 -0
  205. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/templates/ui/content_right.html +0 -0
  206. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/templates/ui/detail.html +0 -0
  207. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/templates/ui/favicon.html +0 -0
  208. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/templates/ui/filter/filter.html +0 -0
  209. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/templates/ui/filter/query_input.html +0 -0
  210. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/templates/ui/filter/query_operator.html +0 -0
  211. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/templates/ui/filter/query_params.html +0 -0
  212. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/templates/ui/filter/query_tags.html +0 -0
  213. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/templates/ui/form_error.html +0 -0
  214. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/templates/ui/list_update.html +0 -0
  215. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/templates/ui/message.html +0 -0
  216. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/templates/ui/modal.html +0 -0
  217. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/templates/ui/oob.html +0 -0
  218. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/templates/ui/widgets/model_search_select.html +0 -0
  219. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/templates/ui/widgets/model_search_select_options.html +0 -0
  220. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/templatetags/__init__.py +0 -0
  221. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/tests.py +0 -0
  222. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/urls.py +0 -0
  223. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/views.py +0 -0
  224. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/widgets/__init__.py +0 -0
  225. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/ui/widgets/search_select.py +0 -0
  226. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user/__init__.py +0 -0
  227. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user/admin.py +0 -0
  228. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user/apps.py +0 -0
  229. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user/auth_backends.py +0 -0
  230. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user/forms.py +0 -0
  231. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user/locale/de/LC_MESSAGES/django.mo +0 -0
  232. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user/locale/de/LC_MESSAGES/django.po +0 -0
  233. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user/middleware.py +0 -0
  234. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user/migrations/0001_initial.py +0 -0
  235. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user/migrations/0002_user_theme.py +0 -0
  236. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user/migrations/0003_alter_user_email.py +0 -0
  237. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user/migrations/0004_user_login_alter_user_email_user_email_or_login_set.py +0 -0
  238. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user/migrations/0005_remove_user_email_or_login_set_and_more.py +0 -0
  239. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user/migrations/0006_remove_user_email_or_login_set_user_is_managed_and_more.py +0 -0
  240. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user/migrations/0007_user_managed_login.py +0 -0
  241. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user/migrations/0008_remove_user_no_email_for_managed_user_and_more.py +0 -0
  242. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user/migrations/__init__.py +0 -0
  243. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user/models.py +0 -0
  244. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user/templates/user/accrete_navbar_end_dropdown.html +0 -0
  245. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user/templates/user/login.html +0 -0
  246. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user/templates/user/password_forgotten.html +0 -0
  247. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user/tests.py +0 -0
  248. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user/urls.py +0 -0
  249. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user/views.py +0 -0
  250. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user_registration/__init__.py +0 -0
  251. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user_registration/admin.py +0 -0
  252. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user_registration/apps.py +0 -0
  253. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user_registration/config.py +0 -0
  254. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user_registration/forms.py +0 -0
  255. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user_registration/migrations/0001_initial.py +0 -0
  256. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user_registration/migrations/__init__.py +0 -0
  257. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user_registration/models.py +0 -0
  258. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user_registration/templates/user_registration/mail_templates/confirmation_mail.html +0 -0
  259. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user_registration/templates/user_registration/registration.html +0 -0
  260. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user_registration/tests.py +0 -0
  261. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user_registration/urls.py +0 -0
  262. {accrete-0.0.146 → accrete-0.0.147}/accrete/contrib/user_registration/views.py +0 -0
  263. {accrete-0.0.146 → accrete-0.0.147}/accrete/fields.py +0 -0
  264. {accrete-0.0.146 → accrete-0.0.147}/accrete/forms.py +0 -0
  265. {accrete-0.0.146 → accrete-0.0.147}/accrete/managers.py +0 -0
  266. {accrete-0.0.146 → accrete-0.0.147}/accrete/middleware.py +0 -0
  267. {accrete-0.0.146 → accrete-0.0.147}/accrete/migrations/0001_initial.py +0 -0
  268. {accrete-0.0.146 → accrete-0.0.147}/accrete/migrations/0002_initial.py +0 -0
  269. {accrete-0.0.146 → accrete-0.0.147}/accrete/migrations/0003_remove_member_name.py +0 -0
  270. {accrete-0.0.146 → accrete-0.0.147}/accrete/migrations/0004_rename_accessgroupmember_memberaccessgrouprel_and_more.py +0 -0
  271. {accrete-0.0.146 → accrete-0.0.147}/accrete/migrations/0005_accessgroup_apply_on_alter_member_access_groups_and_more.py +0 -0
  272. {accrete-0.0.146 → accrete-0.0.147}/accrete/migrations/0006_alter_member_user.py +0 -0
  273. {accrete-0.0.146 → accrete-0.0.147}/accrete/migrations/0007_accessgroup_description.py +0 -0
  274. {accrete-0.0.146 → accrete-0.0.147}/accrete/migrations/0008_alter_member_access_groups_and_more.py +0 -0
  275. {accrete-0.0.146 → accrete-0.0.147}/accrete/migrations/__init__.py +0 -0
  276. {accrete-0.0.146 → accrete-0.0.147}/accrete/models.py +0 -0
  277. {accrete-0.0.146 → accrete-0.0.147}/accrete/storage.py +0 -0
  278. {accrete-0.0.146 → accrete-0.0.147}/accrete/tenant.py +0 -0
  279. {accrete-0.0.146 → accrete-0.0.147}/accrete/tests.py +0 -0
  280. {accrete-0.0.146 → accrete-0.0.147}/accrete/urls.py +0 -0
  281. {accrete-0.0.146 → accrete-0.0.147}/accrete/utils/__init__.py +0 -0
  282. {accrete-0.0.146 → accrete-0.0.147}/accrete/utils/dates.py +0 -0
  283. {accrete-0.0.146 → accrete-0.0.147}/accrete/utils/forms.py +0 -0
  284. {accrete-0.0.146 → accrete-0.0.147}/accrete/utils/log.py +0 -0
  285. {accrete-0.0.146 → accrete-0.0.147}/accrete/utils/models.py +0 -0
  286. {accrete-0.0.146 → accrete-0.0.147}/accrete/utils/views.py +0 -0
  287. {accrete-0.0.146 → accrete-0.0.147}/accrete/views.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: accrete
3
- Version: 0.0.146
3
+ Version: 0.0.147
4
4
  Summary: Django Shared Schema Multi Tenant
5
5
  Author-email: Benedikt Jilek <benedikt.jilek@pm.me>
6
6
  License: Copyright (c) 2025 Benedikt Jilek
@@ -100,13 +100,15 @@ class ListResponse(WindowResponse):
100
100
  panel_template: str = None,
101
101
  column_count: int = 1,
102
102
  column_height: str = '150px',
103
- overview_template: str = 'ui/list.html'
103
+ overview_template: str = 'ui/list.html',
104
+ detail_response: 'DetailResponse' = None
104
105
  ):
105
106
  assert page is not None or ui_filter is not None, _(
106
107
  'Argument page or ui_filter must be supplied'
107
108
  )
108
109
  self.ui_filter = ui_filter
109
110
  self.overview_template = overview_template
111
+ self.show_content_right = bool(detail_response)
110
112
  super().__init__(
111
113
  title=title,
112
114
  context=context,
@@ -122,8 +124,11 @@ class ListResponse(WindowResponse):
122
124
  'ui_filter': ui_filter,
123
125
  'endless_scroll': endless_scroll,
124
126
  'column_count': column_count,
125
- 'column_height': column_height
127
+ 'column_height': column_height,
128
+ 'show_content_right': str(self.show_content_right).lower()
126
129
  })
130
+ if detail_response:
131
+ self.context.update(detail_response.context)
127
132
 
128
133
  def _has_panel(self):
129
134
  return bool(self.panel_template or self.ui_filter)
@@ -174,7 +179,7 @@ class TableResponse(WindowResponse):
174
179
  self, *,
175
180
  title: str,
176
181
  context: dict,
177
- object_label: str,
182
+ instance_label: str,
178
183
  fields: list[str],
179
184
  footer: dict = None,
180
185
  page: paginator.Page = None,
@@ -182,7 +187,8 @@ class TableResponse(WindowResponse):
182
187
  endless_scroll: bool = True,
183
188
  header_template: str = None,
184
189
  panel_template: str = None,
185
- overview_template: str = 'ui/table.html'
190
+ overview_template: str = 'ui/table.html',
191
+ detail_response: 'DetailResponse' = None
186
192
  ):
187
193
  assert page is not None or ui_filter is not None, _(
188
194
  'Argument page or ui_filter must be supplied'
@@ -203,9 +209,11 @@ class TableResponse(WindowResponse):
203
209
  'ui_filter': ui_filter,
204
210
  'endless_scroll': endless_scroll,
205
211
  'fields': fields,
206
- 'object_label': object_label,
212
+ 'instance_label': instance_label,
207
213
  'footer': footer
208
214
  })
215
+ if detail_response:
216
+ self.context.update(detail_response.context)
209
217
 
210
218
  def _has_panel(self):
211
219
  return bool(self.panel_template or self.ui_filter)
@@ -230,6 +238,7 @@ class TableRowResponse(Response):
230
238
  'instance': instance,
231
239
  'fields': fields,
232
240
  'footer': footer,
241
+ 'page': page
233
242
  }
234
243
  super().__init__(template=self.base_template, context=context)
235
244
 
@@ -252,13 +261,15 @@ class DetailResponse(Response):
252
261
  def __init__(
253
262
  self, *,
254
263
  context: dict,
255
- detail_header_template: str = None,
256
- detail_data_template: str = None
264
+ header_template: str = None,
265
+ data_template: str = None
257
266
  ):
258
267
  super().__init__(template=self.base_template, context=context)
268
+ self.header_template = header_template
269
+ self.data_template = data_template
259
270
  self.context.update({
260
- 'detail_header_template': detail_header_template,
261
- 'detail_data_template': detail_data_template
271
+ 'detail_header_template': header_template,
272
+ 'detail_data_template': data_template
262
273
  })
263
274
 
264
275
  @staticmethod
@@ -303,7 +314,7 @@ class TriggerResponse:
303
314
 
304
315
  def response(self):
305
316
  res = HttpResponse()
306
- res.headers['HX-Reswap'] = 'None'
317
+ res.headers['HX-Reswap'] = 'none'
307
318
  for trigger in self.trigger:
308
319
  add_trigger(res, trigger.trigger, trigger.header)
309
320
  return res
@@ -345,7 +356,9 @@ def add_trigger(
345
356
  def update(request, ui_responses: list[Response]) -> HttpResponse:
346
357
  response = HttpResponse()
347
358
  content = ''
359
+ print(ui_responses)
348
360
  for res in ui_responses:
361
+ print(res.context)
349
362
  content += res.render(request)
350
363
  res.add_trigger(response)
351
364
  content += render_to_string('ui/message.html', request=request)
@@ -84,10 +84,6 @@ input[disabled] ~ .helptext {
84
84
  font-weight: normal !important; }
85
85
 
86
86
  textarea {
87
- border-top: transparent !important;
88
- border-right: transparent !important;
89
- border-left: transparent !important;
90
- border-radius: 0 !important;
91
87
  box-shadow: none !important; }
92
88
 
93
89
  textarea:focus {
@@ -161,7 +157,7 @@ select:focus {
161
157
  max-width: calc(var(--accrete-detail-width) - 6%); }
162
158
 
163
159
  .list-entry > .box:hover, .box.selected {
164
- outline: 2px solid var(--bulma-success); }
160
+ box-shadow: 0 0 5px 2px var(--bulma-success); }
165
161
 
166
162
  .helptext {
167
163
  font-style: italic !important;
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "mappings": "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",
4
+ "sources": ["accrete.scss"],
5
+ "names": [],
6
+ "file": "accrete.css"
7
+ }
@@ -106,10 +106,6 @@ input[disabled] ~ .helptext {
106
106
  }
107
107
 
108
108
  textarea {
109
- border-top: transparent!important;
110
- border-right: transparent!important;
111
- border-left: transparent!important;
112
- border-radius: 0!important;
113
109
  box-shadow: none!important;
114
110
  }
115
111
 
@@ -199,7 +195,7 @@ select:focus {
199
195
  }
200
196
 
201
197
  .list-entry > .box:hover, .box.selected {
202
- outline: 2px solid var(--bulma-success);
198
+ box-shadow: 0 0 5px 2px var(--bulma-success);
203
199
  }
204
200
 
205
201
  .helptext {
@@ -42,6 +42,7 @@
42
42
  }
43
43
  })
44
44
  </script>
45
+ {% if script_template %}{% include script_template %}{% endif %}
45
46
  <title>{% block title %}{{ title }}{% endblock %}</title>
46
47
  {% endblock %}
47
48
  </head>
@@ -137,7 +138,7 @@
137
138
  {% endfor %}
138
139
  </div>
139
140
 
140
- <div x-data="{showContentRight: false}"
141
+ <div x-data="{showContentRight: {{ show_content_right|default_if_falsy:'false' }}}"
141
142
  @activate-detail.window="showContentRight = true;"
142
143
  @deactivate-detail.window="showContentRight = false;"
143
144
  class="is-flex is-flex-direction-row"
@@ -197,7 +198,7 @@
197
198
  </div>
198
199
  </div>
199
200
 
200
- <div id="detail-container" x-show="showContentRight" style="display: none;"
201
+ <div id="detail-container" x-show="showContentRight" {% if show_content_right != 'true' %}style="display: none;"{% endif %}
201
202
  x-transition:enter.duration.200ms x-transition:leave.duration.50ms
202
203
  >
203
204
  <div id="detail-indicator" class="htmx-indicator">
@@ -208,7 +209,9 @@
208
209
  <div id="detail-header" class="is-flex is-flex-wrap-wrap is-flex-grow-1">
209
210
  {% if detail_header_template %}{% include detail_header_template %}{% endif %}
210
211
  </div>
211
- <button class="button is-light is-align-self-baseline" style="border-radius: var(--bulma-radius-medium)" x-on:click="showContentRight = false;">
212
+ <button class="button is-light is-align-self-baseline" style="border-radius: var(--bulma-radius-medium)"
213
+ x-on:click="showContentRight = false; const url = new URL(window.location); url.searchParams.delete('detail'); history.replaceState(null, '', url);"
214
+ >
212
215
  <span class="icon"><i class="fa fa-xmark"></i></span>
213
216
  </button>
214
217
  </div>
@@ -0,0 +1,42 @@
1
+ {% load i18n %}
2
+ {% load ui %}
3
+ {% load partials %}
4
+
5
+ <div class="fixed-grid has-{{ column_count }}-cols has-1-cols-mobile m-2">
6
+ <div id="list-grid" class="grid m-0">
7
+ {% for instance in page.object_list %}
8
+ {% partialdef entry inline=True %}
9
+ <div id="list-entry-{{ instance.pk }}" class="list-entry cell pb-0" style="height: {{ column_height }}">
10
+ <div class="box p-3"
11
+ style="word-break: break-word; height: 100%; overflow-y: auto; {% if instance.get_absolute_url %}cursor:pointer;{% endif %}"
12
+ {% if instance.get_absolute_url %}
13
+ hx-get="{{ instance.get_absolute_url }}{% querystring %}" hx-swap="none" hx-indicator="#detail-indicator" hx-replace-url="{% querystring detail=instance.pk %}"
14
+ x-on:click="$dispatch('unselect-list-entry'); selected = true; $nextTick(() => { $el.scrollIntoView({block: 'nearest'}) });" x-bind:class="selected ? 'selected' : ''"
15
+ {% endif %}
16
+ x-data="{selected: false}" @unselect-list-entry.window="selected = false"
17
+ >
18
+ <div id="list-data-{{ instance.pk }}">
19
+ {% if list_entry_template %}
20
+ {% include list_entry_template %}
21
+ {% else %}
22
+ {{ instance }}
23
+ {% endif %}
24
+ </div>
25
+ </div>
26
+ </div>
27
+ {% endpartialdef %}
28
+ {% endfor %}
29
+ </div>
30
+ {% if endless_scroll and page.has_next %}
31
+ <div id="endless-scroller"
32
+ hx-get="{% querystring page=page.next_page_number %}"
33
+ hx-target="#list-grid"
34
+ hx-trigger="intersect once"
35
+ hx-select=".list-entry"
36
+ hx-select-oob="#pagination-next-button,#pagination-end-index,#endless-scroller"
37
+ hx-swap="beforeend"
38
+ hx-replace-url="true"
39
+ hx-indicator="#endless-scroll-indicator"></div>
40
+ <progress id="endless-scroll-indicator" class="htmx-indicator progress is-small is-success" max="100">15%</progress>
41
+ {% endif %}
42
+ </div>
@@ -0,0 +1,75 @@
1
+ {% load i18n %}
2
+ {% load ui %}
3
+ {% load partials %}
4
+
5
+ <table id="content-table" class="table can-compact is-fullwidth is-hoverable is-narrow my-0" hx-indicator=".htmx-indicator" x-data="">
6
+ <thead style="position: sticky; top: 0; z-index: 10; background-color: var(--bulma-scheme-main)">
7
+ <tr>
8
+ <th>{{ instance_label }}</th>
9
+ {% for field in fields %}
10
+ <th style="text-align: {{ page.object_list|table_alignment:field }}">{{ page.object_list|verbose_field_name:field }}</th>
11
+ {% endfor %}
12
+ </tr>
13
+ </thead>
14
+ <tbody id="content-table-body" style="z-index: 9" x-ref="tbody">
15
+ {% for instance in page.object_list %}
16
+ {% partialdef tr inline=True %}
17
+ <tr id="tr-{{ instance.pk }}"
18
+ {% if instance.get_absolute_url %}
19
+ style="cursor: pointer;"
20
+ hx-get="{{ instance.get_absolute_url }}{% querystring %}" hx-swap="none"
21
+ hx-replace-url="{% querystring detail=instance.pk %}"
22
+ x-data="{selected: false}" @unselect-tr.window="selected = false"
23
+ x-on:click="$dispatch('unselect-tr'); selected = true; $nextTick(() => { $el.scrollIntoView( {block: 'nearest'} ) });" x-bind:class="selected ? 'is-success' : ''"
24
+ {% endif %}
25
+ >
26
+ {% partialdef td inline=True %}
27
+ <td>{{ instance }}</td>
28
+ {% for field in fields %}
29
+ <td style="text-align: {{ instance|table_alignment:field }}">
30
+ <span class="">
31
+ <span class="responsive-heading has-text-weight-light" style="margin-right: .2rem">{{ instance|verbose_field_name:field }}:</span>
32
+ {{ instance|table_display:field|default_if_none:'' }}
33
+ </span>
34
+ </td>
35
+ {% endfor %}
36
+ {% endpartialdef %}
37
+ </tr>
38
+ {% endpartialdef %}
39
+ {% endfor %}
40
+ </tbody>
41
+ <tfoot style="position: sticky; bottom: 0; z-index: 10; background-color: var(--bulma-scheme-main);" class="has-text-weight-bold">
42
+ <tr id="tf-row">
43
+ {% partialdef tf inline=True %}
44
+ <td class="p-0"></td>
45
+ {% for field in fields %}
46
+ {% if field in footer %}
47
+ <td style="text-align: {{ page.object_list|table_alignment:field }}">
48
+ <span class="">
49
+ <span class="responsive-heading has-text-weight-light" style="margin-right: .2rem">{{ page.object_list|verbose_field_name:field }}:</span>
50
+ {{ footer|get_item:field }}
51
+ </span>
52
+ </td>
53
+ {% else %}
54
+ <td class="p-0"></td>
55
+ {% endif %}
56
+ {% endfor %}
57
+ {% endpartialdef %}
58
+ </tr>
59
+ </tfoot>
60
+ </table>
61
+
62
+ <div id="endless-scroller"
63
+ {% if page.has_next %}
64
+ hx-get="{% querystring page=page.next_page_number %}"
65
+ hx-trigger="intersect once"
66
+ hx-select="tbody > tr"
67
+ hx-target="#content-table-body"
68
+ hx-swap="beforeend"
69
+ hx-select-oob="#pagination-next-button,#pagination-end-index,#endless-scroller"
70
+ hx-indicator="#endless-scroll-indicator"
71
+ hx-replace-url="true"
72
+ {% endif %}
73
+ >
74
+ </div>
75
+ <progress id="endless-scroll-indicator" class="htmx-indicator progress is-small is-success" max="100">15%</progress>
@@ -0,0 +1,14 @@
1
+ <table>
2
+ <tbody>
3
+ <tr hx-swap-oob="innerHTML:#tr-{{ instance.pk }}">
4
+ {% include 'ui/table.html#td' with instance=instance fields=fields page=page %}
5
+ </tr>
6
+ </tbody>
7
+ {% if footer %}
8
+ <tfoot>
9
+ <tr hx-swap-oob="innerHTML:#tf-row">
10
+ {% include 'ui/table.html#tf' with instance=instance fields=fields page=page %}
11
+ </tr>
12
+ </tfoot>
13
+ {% endif %}
14
+ </table>
@@ -5,7 +5,15 @@
5
5
  <label class="label mt-2 mb-5">
6
6
  {{ field }}
7
7
  <span class="has-text-danger is-size-6">{{ field.errors }}</span>
8
- <p class="helptext {% if field.field.required %}has-text-weight-bold{% endif %}">{% if label %}{{ label }}{% else %}{{ field.help_text|default_if_falsy:field.label }}{% endif %}</p>
8
+ <span class="helptext {% if field.field.required %}has-text-weight-bold{% endif %}">{% if label %}{{ label }}{% else %}{{ field.help_text|default_if_falsy:field.label }}{% endif %}</span>
9
+ </label>
10
+ {% endpartialdef %}
11
+
12
+ {% partialdef textarea %}
13
+ <label class="label mt-2 mb-5">
14
+ <span class="helptext {% if field.field.required %}has-text-weight-bold{% endif %}">{% if label %}{{ label }}{% else %}{{ field.help_text|default_if_falsy:field.label }}{% endif %}</span>
15
+ <span class="has-text-danger is-size-6">{{ field.errors }}</span>
16
+ {{ field }}
9
17
  </label>
10
18
  {% endpartialdef %}
11
19
 
@@ -13,7 +13,7 @@
13
13
  <div id="{{ widget.attrs.id }}_display" class="input select py-1 pl-1" tabindex="0" x-ref="inputDisplay" aria-label="inputDisplay"
14
14
  style="padding-right: 30px; border-radius: 0; border-top: 0; border-right:0; border-left: 0; min-height: var(--bulma-control-height); height: fit-content; width: 100%"
15
15
  x-on:keydown="if (![9, 27, 38, 40].includes($event.keyCode)) {$refs.searchInput.focus();}"
16
- x-on:mousedown.stop="if (!$event.target.classList.contains('delete')) {if (open) {open = false; } else {open = true; $refs.searchInput.focus();}}"
16
+ x-on:click.stop="if (!$event.target.classList.contains('delete')) {if (open) {open = false; } else {open = true; $refs.searchInput.focus();}}"
17
17
  >
18
18
  <div class="tags" x-ref="inputDisplayTags"
19
19
  x-on:click="
@@ -8,6 +8,7 @@ from django.db.models import Manager, DecimalField, IntegerField, FloatField, Mo
8
8
  from django.apps import apps
9
9
  from django.template.loader import render_to_string
10
10
  from django.utils.safestring import mark_safe
11
+ from django.forms import widgets
11
12
 
12
13
  _logger = logging.getLogger(__name__)
13
14
  register = template.Library()
@@ -149,8 +150,11 @@ def x_ref_save(param: str):
149
150
  return re.sub(r'[^A-Za-z]+','', param)
150
151
 
151
152
 
152
- @register.filter(name='wrap_label')
153
- def wrap_label(field, label=None):
153
+ @register.filter(name='wrap_form_field')
154
+ def wrap_form_fields(field, label=None):
155
+ if isinstance(field.field.widget, widgets.Textarea):
156
+ html = render_to_string('ui/templatetags/field.html#textarea', {'field': field, 'label': label})
157
+ return mark_safe(html)
154
158
  html = render_to_string('ui/templatetags/field.html#form_field', {'field': field, 'label': label})
155
159
  return mark_safe(html)
156
160
 
@@ -158,7 +162,7 @@ def wrap_label(field, label=None):
158
162
  @register.filter(name='wrap_model_field')
159
163
  def wrap_model_field(instance, field_name):
160
164
  field = instance._meta.get_field(field_name)
161
- if field_name == 'invoicing_period' and field.choices:
165
+ if field.choices:
162
166
  value = getattr(instance, f'get_{field_name}_display')()
163
167
  else:
164
168
  value = getattr(instance, field_name)
@@ -5,8 +5,8 @@
5
5
  {% block modal_content %}
6
6
  <form id="{{ modal_id }}-form" hx-post="{% url 'user:change_email' %}">
7
7
  {% csrf_token %}
8
- {{ form.email|wrap_label }}
9
- {{ form.password|wrap_label }}
8
+ {{ form.email|wrap_form_field }}
9
+ {{ form.password|wrap_form_field }}
10
10
  </form>
11
11
  {% endblock %}
12
12
 
@@ -5,9 +5,9 @@
5
5
  {% block modal_content %}
6
6
  <form id="{{ modal_id }}-form" hx-post="{% url 'user:change_password' %}">
7
7
  {% csrf_token %}
8
- {{ form.old_password|wrap_label }}
9
- {{ form.new_password|wrap_label }}
10
- {{ form.new_password_confirm|wrap_label }}
8
+ {{ form.old_password|wrap_form_field }}
9
+ {{ form.new_password|wrap_form_field }}
10
+ {{ form.new_password_confirm|wrap_form_field }}
11
11
  </form>
12
12
  {% endblock %}
13
13
 
@@ -23,19 +23,19 @@
23
23
  {% include 'ui/form_error.html' %}
24
24
  </div>
25
25
  </div>
26
- <div class="columns m-0">
26
+ <div class="columns">
27
27
  <div class="column is-6">
28
28
  {% translate 'Username' as username %}
29
- {{ form.username|wrap_label:username }}
30
- {{ form.first_name|wrap_label }}
31
- {{ form.last_name|wrap_label }}
29
+ {{ form.username|wrap_form_field:username }}
30
+ {{ form.first_name|wrap_form_field }}
31
+ {{ form.last_name|wrap_form_field }}
32
32
  </div>
33
33
  <div class="column is-6">
34
34
  {% if not user.is_managed %}
35
35
  {{ user|wrap_model_field:'email' }}
36
36
  {% endif %}
37
- {{ form.language_code|wrap_label }}
38
- {{ form.theme|wrap_label }}
37
+ {{ form.language_code|wrap_form_field }}
38
+ {{ form.theme|wrap_form_field }}
39
39
  </div>
40
40
  </div>
41
41
  </form>
@@ -4,7 +4,7 @@ build-backend = 'hatchling.build'
4
4
 
5
5
  [project]
6
6
  name = 'accrete'
7
- version = '0.0.146'
7
+ version = '0.0.147'
8
8
  authors = [
9
9
  { name='Benedikt Jilek', email='benedikt.jilek@pm.me' },
10
10
  ]
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "mappings": "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",
4
- "sources": ["accrete.scss"],
5
- "names": [],
6
- "file": "accrete.css"
7
- }
@@ -1,45 +0,0 @@
1
- {#{% extends 'ui/layout.html' %}#}
2
- {% load i18n %}
3
- {% load ui %}
4
- {% load partials %}
5
-
6
- {% block overview %}
7
- <div class="fixed-grid has-{{ column_count }}-cols has-1-cols-mobile m-2">
8
- <div id="list-grid" class="grid m-0">
9
- {% for instance in page.object_list %}
10
- {% partialdef entry inline=True %}
11
- <div id="list-entry-{{ instance.pk }}" class="list-entry cell pb-0" style="height: {{ column_height }}">
12
- <div class="box p-3"
13
- style="word-break: break-word; height: 100%; overflow-y: auto; {% if instance.get_absolute_url %}cursor:pointer;{% endif %}"
14
- {% if instance.get_absolute_url %}
15
- hx-get="{{ instance.get_absolute_url }}{% querystring %}" hx-swap="none" hx-indicator="#detail-indicator"
16
- x-on:click="$dispatch('unselect-list-entry'); selected = true; $nextTick(() => { $el.scrollIntoView({block: 'nearest'}) });" x-bind:class="selected ? 'box selected' : ''"
17
- {% endif %}
18
- x-data="{selected: false}" @unselect-list-entry.window="selected = false"
19
- >
20
- <div id="list-data-{{ instance.pk }}">
21
- {% if list_entry_template %}
22
- {% include list_entry_template %}
23
- {% else %}
24
- {{ instance }}
25
- {% endif %}
26
- </div>
27
- </div>
28
- </div>
29
- {% endpartialdef %}
30
- {% endfor %}
31
- </div>
32
- {% if endless_scroll and page.has_next %}
33
- <div id="endless-scroller"
34
- hx-get="{% querystring page=page.next_page_number %}"
35
- hx-target="#list-grid"
36
- hx-trigger="intersect once"
37
- hx-select=".list-entry"
38
- hx-select-oob="#pagination-next-button,#pagination-end-index,#endless-scroller"
39
- hx-swap="beforeend"
40
- hx-replace-url="true"
41
- hx-indicator="#endless-scroll-indicator"></div>
42
- <progress id="endless-scroll-indicator" class="htmx-indicator progress is-small is-success" max="100">15%</progress>
43
- {% endif %}
44
- </div>
45
- {% endblock %}
@@ -1,77 +0,0 @@
1
- {% extends 'ui/layout.html' %}
2
- {% load i18n %}
3
- {% load ui %}
4
- {% load partials %}
5
-
6
- {% block content_left %}
7
- <table id="content-table" class="table can-compact is-fullwidth is-hoverable is-narrow my-0" hx-indicator=".htmx-indicator" x-data="">
8
- <thead style="position: sticky; top: 0; z-index: 10; background-color: var(--bulma-scheme-main)">
9
- <tr>
10
- <th>{{ object_label }}</th>
11
- {% for field in fields %}
12
- <th style="text-align: {{ page.object_list|table_alignment:field }}">{{ page.object_list|verbose_field_name:field }}</th>
13
- {% endfor %}
14
- </tr>
15
- </thead>
16
- <tbody id="content-table-body" style="z-index: 9" x-ref="tbody">
17
- {% for object in page.object_list %}
18
- {% partialdef tr inline=True %}
19
- <tr id="tr-{{ object.pk }}"
20
- {% if object.get_absolute_url %}
21
- style="cursor: pointer;"
22
- hx-get="{{ object.get_absolute_url }}{% querystring %}" hx-swap="none"
23
- x-data="{selected: false}" @unselect-tr.window="selected = false"
24
- x-on:click="$dispatch('unselect-tr'); selected = true; $nextTick(() => { $el.scrollIntoView( {block: 'nearest'} ) });" x-bind:class="selected ? 'is-success' : ''"
25
- {% endif %}
26
- >
27
- {% partialdef td inline=True %}
28
- <td>{{ object }}</td>
29
- {% for field in fields %}
30
- <td style="text-align: {{ object|table_alignment:field }}">
31
- <span class="">
32
- <span class="responsive-heading has-text-weight-light" style="margin-right: .2rem">{{ object|verbose_field_name:field }}:</span>
33
- {{ object|table_display:field|default_if_none:'' }}
34
- </span>
35
- </td>
36
- {% endfor %}
37
- {% endpartialdef %}
38
- </tr>
39
- {% endpartialdef %}
40
- {% endfor %}
41
- </tbody>
42
- <tfoot style="position: sticky; bottom: 0; z-index: 10; background-color: var(--bulma-scheme-main);" class="has-text-weight-bold">
43
- <tr id="tf-row">
44
- {% partialdef tf inline=True %}
45
- <td class="p-0"></td>
46
- {% for field in fields %}
47
- {% if field in footer %}
48
- <td style="text-align: {{ queryset|table_alignment:field }}">
49
- <span class="">
50
- <span class="responsive-heading has-text-weight-light" style="margin-right: .2rem">{{ queryset|verbose_field_name:field }}:</span>
51
- {{ footer|get_item:field }}
52
- </span>
53
- </td>
54
- {% else %}
55
- <td class="p-0"></td>
56
- {% endif %}
57
- {% endfor %}
58
- {% endpartialdef %}
59
- </tr>
60
- </tfoot>
61
- </table>
62
-
63
- <div id="endless-scroller"
64
- {% if page.has_next %}
65
- hx-get="{% querystring page=page.next_page_number %}"
66
- hx-trigger="intersect once"
67
- hx-select="tbody > tr"
68
- hx-target="#content-table-body"
69
- hx-swap="beforeend"
70
- hx-select-oob="#pagination-next-button,#pagination-end-index,#endless-scroller"
71
- hx-indicator="#endless-scroll-indicator"
72
- hx-replace-url="true"
73
- {% endif %}
74
- >
75
- </div>
76
- <progress id="endless-scroll-indicator" class="htmx-indicator progress is-small is-success" max="100">15%</progress>
77
- {% endblock %}
@@ -1,14 +0,0 @@
1
- <table>
2
- <tbody>
3
- <tr hx-swap-oob="innerHTML:#tr-{{ object.pk }}">
4
- {% include 'ui/table.html#td' with object=object fields=fields %}
5
- </tr>
6
- </tbody>
7
- {% if footer %}
8
- <tfoot>
9
- <tr hx-swap-oob="innerHTML:#tf-row">
10
- {% include 'ui/table.html#tf' with object=object fields=fields %}
11
- </tr>
12
- </tfoot>
13
- {% endif %}
14
- </table>
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes