accrete 0.0.157__tar.gz → 0.0.159__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 (306) hide show
  1. {accrete-0.0.157 → accrete-0.0.159}/PKG-INFO +1 -1
  2. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/response.py +9 -2
  3. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/css/accrete.css +2 -9
  4. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/css/accrete.css.map +1 -1
  5. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/css/accrete.scss +2 -10
  6. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/ui/layout.html +2 -2
  7. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/ui/list.html +2 -2
  8. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/ui/modal.html +1 -1
  9. accrete-0.0.159/accrete/contrib/ui/templates/ui/oob.html +3 -0
  10. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/ui/table.html +1 -1
  11. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/ui/templatetags/field.html +12 -0
  12. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/ui/templatetags/tenant_quick_switch.html +2 -2
  13. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/ui/widgets/model_search_select.html +3 -5
  14. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/ui/widgets/model_search_select_multi.html +1 -1
  15. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templatetags/ui.py +19 -3
  16. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user/templates/user/accrete_navbar_end_dropdown.html +1 -1
  17. {accrete-0.0.157 → accrete-0.0.159}/pyproject.toml +1 -1
  18. accrete-0.0.157/accrete/contrib/ui/templates/ui/oob.html +0 -3
  19. {accrete-0.0.157 → accrete-0.0.159}/.gitignore +0 -0
  20. {accrete-0.0.157 → accrete-0.0.159}/LICENSE +0 -0
  21. {accrete-0.0.157 → accrete-0.0.159}/README.md +0 -0
  22. {accrete-0.0.157 → accrete-0.0.159}/accrete/__init__.py +0 -0
  23. {accrete-0.0.157 → accrete-0.0.159}/accrete/admin.py +0 -0
  24. {accrete-0.0.157 → accrete-0.0.159}/accrete/apps.py +0 -0
  25. {accrete-0.0.157 → accrete-0.0.159}/accrete/channels.py +0 -0
  26. {accrete-0.0.157 → accrete-0.0.159}/accrete/config.py +0 -0
  27. {accrete-0.0.157 → accrete-0.0.159}/accrete/consumer.py +0 -0
  28. {accrete-0.0.157 → accrete-0.0.159}/accrete/context_processors.py +0 -0
  29. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/__init__.py +0 -0
  30. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/country/__init__.py +0 -0
  31. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/country/admin.py +0 -0
  32. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/country/apps.py +0 -0
  33. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/country/migrations/0001_initial.py +0 -0
  34. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/country/migrations/0002_auto_20250219_1759.py +0 -0
  35. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/country/migrations/0003_alter_country_options.py +0 -0
  36. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/country/migrations/__init__.py +0 -0
  37. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/country/models.py +0 -0
  38. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/log/__init__.py +0 -0
  39. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/log/admin.py +0 -0
  40. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/log/apps.py +0 -0
  41. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/log/config.py +0 -0
  42. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/log/helper.py +0 -0
  43. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/log/migrations/0001_initial.py +0 -0
  44. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/log/migrations/0002_log_user_alter_log_new_value_type_and_more.py +0 -0
  45. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/log/migrations/0003_alter_log_tenant.py +0 -0
  46. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/log/migrations/0004_logconfig_logconfigfield.py +0 -0
  47. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/log/migrations/0005_logconfig_exclude_fields_and_more.py +0 -0
  48. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/log/migrations/0006_remove_log_accrete_log_model_cf888c_idx_and_more.py +0 -0
  49. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/log/migrations/0007_alter_log_new_value_type_alter_log_old_value_type.py +0 -0
  50. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/log/migrations/__init__.py +0 -0
  51. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/log/models.py +0 -0
  52. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/log/queries.py +0 -0
  53. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/log/signals.py +0 -0
  54. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/log/tests.py +0 -0
  55. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/log/views.py +0 -0
  56. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/sequence/__init__.py +0 -0
  57. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/sequence/admin.py +0 -0
  58. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/sequence/apps.py +0 -0
  59. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/sequence/forms.py +0 -0
  60. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/sequence/migrations/0001_initial.py +0 -0
  61. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/sequence/migrations/0002_alter_sequence_name.py +0 -0
  62. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/sequence/migrations/0003_alter_sequence_tenant.py +0 -0
  63. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/sequence/migrations/__init__.py +0 -0
  64. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/sequence/models.py +0 -0
  65. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/sequence/queries.py +0 -0
  66. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/sequence/tests.py +0 -0
  67. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/sequence/views.py +0 -0
  68. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/system_mail/__init__.py +0 -0
  69. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/system_mail/admin.py +0 -0
  70. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/system_mail/apps.py +0 -0
  71. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/system_mail/forms.py +0 -0
  72. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/system_mail/migrations/0001_initial.py +0 -0
  73. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/system_mail/migrations/__init__.py +0 -0
  74. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/system_mail/models.py +0 -0
  75. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/system_mail/tasks.py +0 -0
  76. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/system_mail/tests.py +0 -0
  77. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/system_mail/views.py +0 -0
  78. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/__init__.py +0 -0
  79. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/admin.py +0 -0
  80. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/apps.py +0 -0
  81. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/config.py +0 -0
  82. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/filter.py +0 -0
  83. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/forms.py +0 -0
  84. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/middleware.py +0 -0
  85. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/migrations/0001_initial.py +0 -0
  86. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/migrations/0002_alter_theme_color_danger_alter_theme_color_link_and_more.py +0 -0
  87. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/migrations/0003_alter_theme_check_user_or_tenant.py +0 -0
  88. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/migrations/0004_theme_force_tenant_theme.py +0 -0
  89. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/migrations/0005_theme_base_theme.py +0 -0
  90. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/migrations/__init__.py +0 -0
  91. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/models.py +0 -0
  92. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/LICENSE +0 -0
  93. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/README.md +0 -0
  94. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/bulma.scss +0 -0
  95. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/css/bulma.css +0 -0
  96. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/css/bulma.css.map +0 -0
  97. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/css/bulma.min.css +0 -0
  98. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-dark-mode.css +0 -0
  99. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-dark-mode.css.map +0 -0
  100. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-dark-mode.min.css +0 -0
  101. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers-prefixed.css +0 -0
  102. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers-prefixed.css.map +0 -0
  103. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers-prefixed.min.css +0 -0
  104. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers.css +0 -0
  105. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers.css.map +0 -0
  106. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers.min.css +0 -0
  107. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/css/versions/bulma-prefixed.css +0 -0
  108. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/css/versions/bulma-prefixed.css.map +0 -0
  109. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/css/versions/bulma-prefixed.min.css +0 -0
  110. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/package.json +0 -0
  111. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/_index.scss +0 -0
  112. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/base/_index.scss +0 -0
  113. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/base/animations.scss +0 -0
  114. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/base/generic.scss +0 -0
  115. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/base/minireset.scss +0 -0
  116. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/base/skeleton.scss +0 -0
  117. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/components/_index.scss +0 -0
  118. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/components/breadcrumb.scss +0 -0
  119. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/components/card.scss +0 -0
  120. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/components/dropdown.scss +0 -0
  121. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/components/menu.scss +0 -0
  122. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/components/message.scss +0 -0
  123. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/components/modal.scss +0 -0
  124. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/components/navbar.scss +0 -0
  125. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/components/pagination.scss +0 -0
  126. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/components/panel.scss +0 -0
  127. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/components/tabs.scss +0 -0
  128. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/elements/_index.scss +0 -0
  129. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/elements/block.scss +0 -0
  130. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/elements/box.scss +0 -0
  131. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/elements/button.scss +0 -0
  132. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/elements/content.scss +0 -0
  133. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/elements/delete.scss +0 -0
  134. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/elements/icon.scss +0 -0
  135. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/elements/image.scss +0 -0
  136. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/elements/loader.scss +0 -0
  137. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/elements/notification.scss +0 -0
  138. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/elements/progress.scss +0 -0
  139. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/elements/table.scss +0 -0
  140. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/elements/tag.scss +0 -0
  141. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/elements/title.scss +0 -0
  142. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/form/_index.scss +0 -0
  143. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/form/checkbox-radio.scss +0 -0
  144. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/form/file.scss +0 -0
  145. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/form/input-textarea.scss +0 -0
  146. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/form/select.scss +0 -0
  147. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/form/shared.scss +0 -0
  148. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/form/tools.scss +0 -0
  149. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/grid/_index.scss +0 -0
  150. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/grid/columns.scss +0 -0
  151. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/grid/grid.scss +0 -0
  152. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/helpers/_index.scss +0 -0
  153. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/helpers/aspect-ratio.scss +0 -0
  154. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/helpers/border.scss +0 -0
  155. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/helpers/color.scss +0 -0
  156. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/helpers/flexbox.scss +0 -0
  157. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/helpers/float.scss +0 -0
  158. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/helpers/gap.scss +0 -0
  159. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/helpers/other.scss +0 -0
  160. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/helpers/overflow.scss +0 -0
  161. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/helpers/position.scss +0 -0
  162. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/helpers/spacing.scss +0 -0
  163. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/helpers/typography.scss +0 -0
  164. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/helpers/visibility.scss +0 -0
  165. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/layout/_index.scss +0 -0
  166. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/layout/container.scss +0 -0
  167. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/layout/footer.scss +0 -0
  168. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/layout/hero.scss +0 -0
  169. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/layout/level.scss +0 -0
  170. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/layout/media.scss +0 -0
  171. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/layout/section.scss +0 -0
  172. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/themes/_index.scss +0 -0
  173. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/themes/dark.scss +0 -0
  174. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/themes/light.scss +0 -0
  175. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/themes/setup.scss +0 -0
  176. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/utilities/_index.scss +0 -0
  177. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/utilities/controls.scss +0 -0
  178. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/utilities/css-variables.scss +0 -0
  179. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/utilities/derived-variables.scss +0 -0
  180. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/utilities/extends.scss +0 -0
  181. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/utilities/functions.scss +0 -0
  182. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/utilities/initial-variables.scss +0 -0
  183. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/sass/utilities/mixins.scss +0 -0
  184. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/versions/bulma-no-dark-mode.scss +0 -0
  185. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/versions/bulma-no-helpers-prefixed.scss +0 -0
  186. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/versions/bulma-no-helpers.scss +0 -0
  187. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/bulma/versions/bulma-prefixed.scss +0 -0
  188. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/css/fa.css +0 -0
  189. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/css/icons.css +0 -0
  190. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/icons/Logo.svg +0 -0
  191. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/icons/accrete.svg +0 -0
  192. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/js/alpine-3.14.9.js +0 -0
  193. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/js/alpine-focus-3.14.9.js +0 -0
  194. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/js/alpine-sort-3.14.9.js +0 -0
  195. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/js/filter.js +0 -0
  196. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/js/htmx.min.js +0 -0
  197. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/js/ws.js +0 -0
  198. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/webfonts/fa-brands-400.ttf +0 -0
  199. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/webfonts/fa-brands-400.woff2 +0 -0
  200. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/webfonts/fa-regular-400.ttf +0 -0
  201. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/webfonts/fa-regular-400.woff2 +0 -0
  202. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/webfonts/fa-solid-900.ttf +0 -0
  203. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/webfonts/fa-solid-900.woff2 +0 -0
  204. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/webfonts/fa-v4compatibility.ttf +0 -0
  205. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/static/webfonts/fa-v4compatibility.woff2 +0 -0
  206. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/django/forms/widgets/attrs.html +0 -0
  207. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/django/forms/widgets/date.html +0 -0
  208. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/django/forms/widgets/email.html +0 -0
  209. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/django/forms/widgets/file.html +0 -0
  210. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/django/forms/widgets/input.html +0 -0
  211. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/django/forms/widgets/radio.html +0 -0
  212. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/django/forms/widgets/select.html +0 -0
  213. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/django/forms/widgets/text.html +0 -0
  214. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/django/forms/widgets/textarea.html +0 -0
  215. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/ui/content.html +0 -0
  216. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/ui/content_right.html +0 -0
  217. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/ui/custom_theme.html +0 -0
  218. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/ui/detail.html +0 -0
  219. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/ui/favicon.html +0 -0
  220. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/ui/filter/filter.html +0 -0
  221. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/ui/filter/query_input.html +0 -0
  222. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/ui/filter/query_operator.html +0 -0
  223. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/ui/filter/query_params.html +0 -0
  224. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/ui/filter/query_tags.html +0 -0
  225. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/ui/form_error.html +0 -0
  226. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/ui/list_update.html +0 -0
  227. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/ui/message.html +0 -0
  228. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/ui/table_row_update.html +0 -0
  229. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/ui/widgets/date_weekday.html +0 -0
  230. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templates/ui/widgets/model_search_select_options.html +0 -0
  231. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/templatetags/__init__.py +0 -0
  232. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/tests.py +0 -0
  233. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/urls.py +0 -0
  234. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/views.py +0 -0
  235. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/widgets/__init__.py +0 -0
  236. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/widgets/date_weekday.py +0 -0
  237. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/ui/widgets/search_select.py +0 -0
  238. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user/__init__.py +0 -0
  239. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user/admin.py +0 -0
  240. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user/apps.py +0 -0
  241. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user/auth_backends.py +0 -0
  242. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user/forms.py +0 -0
  243. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user/locale/de/LC_MESSAGES/django.mo +0 -0
  244. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user/locale/de/LC_MESSAGES/django.po +0 -0
  245. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user/middleware.py +0 -0
  246. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user/migrations/0001_initial.py +0 -0
  247. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user/migrations/0002_user_theme.py +0 -0
  248. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user/migrations/0003_alter_user_email.py +0 -0
  249. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user/migrations/0004_user_login_alter_user_email_user_email_or_login_set.py +0 -0
  250. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user/migrations/0005_remove_user_email_or_login_set_and_more.py +0 -0
  251. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user/migrations/0006_remove_user_email_or_login_set_user_is_managed_and_more.py +0 -0
  252. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user/migrations/0007_user_managed_login.py +0 -0
  253. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user/migrations/0008_remove_user_no_email_for_managed_user_and_more.py +0 -0
  254. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user/migrations/0009_alter_user_theme.py +0 -0
  255. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user/migrations/0010_alter_user_theme.py +0 -0
  256. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user/migrations/0011_alter_user_theme.py +0 -0
  257. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user/migrations/__init__.py +0 -0
  258. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user/models.py +0 -0
  259. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user/templates/user/change_email.html +0 -0
  260. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user/templates/user/change_password.html +0 -0
  261. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user/templates/user/login.html +0 -0
  262. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user/templates/user/password_forgotten.html +0 -0
  263. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user/templates/user/user_preferences.html +0 -0
  264. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user/tests.py +0 -0
  265. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user/urls.py +0 -0
  266. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user/views.py +0 -0
  267. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user_registration/__init__.py +0 -0
  268. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user_registration/admin.py +0 -0
  269. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user_registration/apps.py +0 -0
  270. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user_registration/config.py +0 -0
  271. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user_registration/forms.py +0 -0
  272. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user_registration/migrations/0001_initial.py +0 -0
  273. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user_registration/migrations/__init__.py +0 -0
  274. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user_registration/models.py +0 -0
  275. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user_registration/templates/user_registration/mail_templates/confirmation_mail.html +0 -0
  276. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user_registration/templates/user_registration/registration.html +0 -0
  277. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user_registration/tests.py +0 -0
  278. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user_registration/urls.py +0 -0
  279. {accrete-0.0.157 → accrete-0.0.159}/accrete/contrib/user_registration/views.py +0 -0
  280. {accrete-0.0.157 → accrete-0.0.159}/accrete/fields.py +0 -0
  281. {accrete-0.0.157 → accrete-0.0.159}/accrete/forms.py +0 -0
  282. {accrete-0.0.157 → accrete-0.0.159}/accrete/managers.py +0 -0
  283. {accrete-0.0.157 → accrete-0.0.159}/accrete/middleware.py +0 -0
  284. {accrete-0.0.157 → accrete-0.0.159}/accrete/migrations/0001_initial.py +0 -0
  285. {accrete-0.0.157 → accrete-0.0.159}/accrete/migrations/0002_initial.py +0 -0
  286. {accrete-0.0.157 → accrete-0.0.159}/accrete/migrations/0003_remove_member_name.py +0 -0
  287. {accrete-0.0.157 → accrete-0.0.159}/accrete/migrations/0004_rename_accessgroupmember_memberaccessgrouprel_and_more.py +0 -0
  288. {accrete-0.0.157 → accrete-0.0.159}/accrete/migrations/0005_accessgroup_apply_on_alter_member_access_groups_and_more.py +0 -0
  289. {accrete-0.0.157 → accrete-0.0.159}/accrete/migrations/0006_alter_member_user.py +0 -0
  290. {accrete-0.0.157 → accrete-0.0.159}/accrete/migrations/0007_accessgroup_description.py +0 -0
  291. {accrete-0.0.157 → accrete-0.0.159}/accrete/migrations/0008_alter_member_access_groups_and_more.py +0 -0
  292. {accrete-0.0.157 → accrete-0.0.159}/accrete/migrations/0009_alter_accessgroup_name.py +0 -0
  293. {accrete-0.0.157 → accrete-0.0.159}/accrete/migrations/0010_alter_accessgroup_description.py +0 -0
  294. {accrete-0.0.157 → accrete-0.0.159}/accrete/migrations/__init__.py +0 -0
  295. {accrete-0.0.157 → accrete-0.0.159}/accrete/models.py +0 -0
  296. {accrete-0.0.157 → accrete-0.0.159}/accrete/storage.py +0 -0
  297. {accrete-0.0.157 → accrete-0.0.159}/accrete/tenant.py +0 -0
  298. {accrete-0.0.157 → accrete-0.0.159}/accrete/tests.py +0 -0
  299. {accrete-0.0.157 → accrete-0.0.159}/accrete/urls.py +0 -0
  300. {accrete-0.0.157 → accrete-0.0.159}/accrete/utils/__init__.py +0 -0
  301. {accrete-0.0.157 → accrete-0.0.159}/accrete/utils/dates.py +0 -0
  302. {accrete-0.0.157 → accrete-0.0.159}/accrete/utils/forms.py +0 -0
  303. {accrete-0.0.157 → accrete-0.0.159}/accrete/utils/log.py +0 -0
  304. {accrete-0.0.157 → accrete-0.0.159}/accrete/utils/models.py +0 -0
  305. {accrete-0.0.157 → accrete-0.0.159}/accrete/utils/views.py +0 -0
  306. {accrete-0.0.157 → accrete-0.0.159}/accrete/views.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: accrete
3
- Version: 0.0.157
3
+ Version: 0.0.159
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
@@ -58,18 +58,20 @@ class OobResponse(Response):
58
58
 
59
59
  oob_template = 'ui/oob.html'
60
60
 
61
- def __init__(self, *, template: str, context: dict, swap: str, tag: str = 'div'):
61
+ def __init__(self, *, template: str, context: dict, swap: str, tag: str = 'div', attrs: dict = None):
62
62
  super().__init__(template=self.oob_template, context=context)
63
63
  self.include_template = template
64
64
  self.swap = swap
65
65
  self.tag = tag
66
+ self.attrs = attrs or {}
66
67
 
67
68
  def get_context(self):
68
69
  context = super().get_context()
69
70
  context.update({'oob': {
70
71
  'template': self.include_template,
71
72
  'swap': self.swap,
72
- 'tag': self.tag
73
+ 'tag': self.tag,
74
+ 'attrs': self.attrs
73
75
  }})
74
76
  return context
75
77
 
@@ -207,6 +209,7 @@ class ListEntryResponse(Response):
207
209
  ):
208
210
  super().__init__(template=self.base_template, context=context or {})
209
211
  self.instance = instance
212
+ self.instance.refresh_from_db()
210
213
  self.list_entry_template = list_entry_template
211
214
  self.page = page
212
215
  self.is_new = is_new
@@ -253,6 +256,7 @@ class TableResponse(WindowResponse):
253
256
  overview_template: str = 'ui/table.html',
254
257
  detail_header_template: str = None,
255
258
  detail_data_template: str = None,
259
+ detail_enabled: bool = True,
256
260
  config: WindowResponseConfig = None
257
261
  ):
258
262
  assert page is not None or ui_filter is not None, _(
@@ -274,6 +278,7 @@ class TableResponse(WindowResponse):
274
278
  self.endless_scroll = endless_scroll
275
279
  self.detail_header_template = detail_header_template
276
280
  self.detail_data_template = detail_data_template
281
+ self.detail_enabled = detail_enabled
277
282
 
278
283
  def _has_panel(self):
279
284
  return bool(self.panel_template or self.ui_filter)
@@ -289,6 +294,7 @@ class TableResponse(WindowResponse):
289
294
  'footer': self.footer,
290
295
  'detail_header_template': self.detail_header_template,
291
296
  'detail_data_template': self.detail_data_template,
297
+ 'detail_enabled': self.detail_enabled,
292
298
  'show_content_right': str(bool(
293
299
  self.detail_header_template or self.detail_data_template
294
300
  )).lower()
@@ -313,6 +319,7 @@ class TableRowResponse(Response):
313
319
  ):
314
320
  super().__init__(template=self.base_template, context={})
315
321
  self.instance = instance
322
+ self.instance.refresh_from_db()
316
323
  self.fields = fields
317
324
  self.instance_label = instance_label
318
325
  self.footer = footer
@@ -3,11 +3,11 @@
3
3
  --bulma-body-size: .9em;
4
4
  --bulma-navbar-height: 40px;
5
5
  --bulma-menu-item-selected-h: var(--bulma-primary-h);
6
- --accrete-detail-width: 40em;
6
+ --accrete-detail-width: 38em;
7
+ --accrete-action-panel-width: 20em;
7
8
  --bulma-primary-h: 153.28deg;
8
9
  --bulma-primary-s: 52.89%;
9
10
  --bulma-primary-l: 52.55%;
10
- --accrete-action-panel-width: 320px;
11
11
  --bulma-input-arrow: var(--bulma-primary);
12
12
  --bulma-arrow-color: var(--bulma-primary);
13
13
  --accrete-hover-color: #F0F2F4; }
@@ -202,13 +202,6 @@ select:focus {
202
202
  background: var(--bulma-scheme-main);
203
203
  z-index: 40;
204
204
  box-shadow: 2px 0 20px 0 var(--bulma-grey-light); } }
205
- .menu-list a.is-active, .menu-list a.is-selected, .menu-list button.is-active, .menu-list button.is-selected, .menu-list .menu-item.is-active, .menu-list .menu-item.is-selected {
206
- --bulma-menu-item-h: var(--bulma-primary-h);
207
- --bulma-menu-item-s: var(--bulma-primary-s);
208
- --bulma-menu-item-l: var(--bulma-primary-l);
209
- --bulma-menu-item-background-l: var(--bulma-primary-l);
210
- --bulma-menu-item-color-l: var(--bulma-primary-invert-l); }
211
-
212
205
  .hoverable *:hover {
213
206
  background-color: var(--accrete-hover-color); }
214
207
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "mappings": "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",
3
+ "mappings": "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",
4
4
  "sources": ["accrete.scss"],
5
5
  "names": [],
6
6
  "file": "accrete.css"
@@ -4,11 +4,11 @@
4
4
  --bulma-body-size: .9em;
5
5
  --bulma-navbar-height: 40px;
6
6
  --bulma-menu-item-selected-h: var(--bulma-primary-h);
7
- --accrete-detail-width: 40em;
7
+ --accrete-detail-width: 38em;
8
+ --accrete-action-panel-width: 20em;
8
9
  --bulma-primary-h: 153.28deg;
9
10
  --bulma-primary-s: 52.89%;
10
11
  --bulma-primary-l: 52.55%;
11
- --accrete-action-panel-width: 320px;
12
12
  --bulma-input-arrow: var(--bulma-primary);
13
13
  --bulma-arrow-color: var(--bulma-primary);
14
14
  --accrete-hover-color: #F0F2F4;
@@ -263,14 +263,6 @@ select:focus {
263
263
  }
264
264
  }
265
265
 
266
- .menu-list a.is-active, .menu-list a.is-selected, .menu-list button.is-active, .menu-list button.is-selected, .menu-list .menu-item.is-active, .menu-list .menu-item.is-selected {
267
- --bulma-menu-item-h: var(--bulma-primary-h);
268
- --bulma-menu-item-s: var(--bulma-primary-s);
269
- --bulma-menu-item-l: var(--bulma-primary-l);
270
- --bulma-menu-item-background-l: var(--bulma-primary-l);
271
- --bulma-menu-item-color-l: var(--bulma-primary-invert-l);
272
- }
273
-
274
266
  .hoverable *:hover {
275
267
  background-color: var(--accrete-hover-color);
276
268
  }
@@ -11,7 +11,7 @@
11
11
  <meta charset="utf-8">
12
12
  <meta name="viewport" content="width=device-width, initial-scale=1">
13
13
  {% include 'ui/favicon.html' %}
14
- <link rel="stylesheet" type="text/css" href="{% static "css/accrete.css" %}?v=0.0.154">
14
+ <link rel="stylesheet" type="text/css" href="{% static "css/accrete.css" %}?v=0.0.159">
15
15
  <link rel="stylesheet" type="text/css" href="{% static "css/icons.css" %}">
16
16
  <link rel="stylesheet" type="text/css" href="{% static "css/fa.css" %}">
17
17
  {% if style_template %}{% include style_template %}{% endif %}
@@ -221,7 +221,7 @@
221
221
  x-transition:enter.duration.200ms x-transition:leave.duration.50ms
222
222
  >
223
223
  <div id="detail-indicator" class="htmx-indicator">
224
- <progress class="progress is-success" max="100"></progress>
224
+ <progress class="progress is-primary" max="100"></progress>
225
225
  </div>
226
226
  <div class="is-flex is-flex-direction-column" style="height: 100%">
227
227
  <div class="is-flex is-flex-wrap-nowrap is-justify-content-space-between m-2">
@@ -7,7 +7,7 @@
7
7
  <div id="list-grid" class="grid m-0">
8
8
  {% for instance in page.object_list %}
9
9
  {% partialdef entry inline=True %}
10
- <div id="list-entry-{{ instance.pk }}" class="list-entry cell pb-0" style="{% if column_height %}min-height: {{ column_height }}{% endif %}">
10
+ <div id="list-entry-{{ instance.pk }}" class="list-entry cell pb-0" style="{% if column_height %}height: {{ column_height }}{% endif %}">
11
11
  <div class="box p-3"
12
12
  style="word-break: break-word; height: 100%; overflow-y: auto; {% if instance.get_absolute_url and detail_enabled %}cursor:pointer;{% endif %}"
13
13
  {% if instance.get_absolute_url and detail_enabled %}
@@ -38,7 +38,7 @@
38
38
  hx-swap="beforeend"
39
39
  hx-replace-url="true"
40
40
  hx-indicator="#endless-scroll-indicator"></div>
41
- <progress id="endless-scroll-indicator" class="htmx-indicator progress is-small is-success" max="100">15%</progress>
41
+ <progress id="endless-scroll-indicator" class="htmx-indicator progress is-small is-primary" max="100">15%</progress>
42
42
  {% endif %}
43
43
  </div>
44
44
  {% endblock %}
@@ -41,7 +41,7 @@
41
41
  {% endblock %}
42
42
  </footer>
43
43
  <div id="{{ modal_id }}-indicator" x-ref="{{ modal_id|xrefsave }}Indicator" class="htmx-indicator modal-request-overlay" style="position: absolute; inset: 0; background: rgba(47, 47, 62, 0.2)">
44
- <progress class="progress is-success" max="100" style="position: absolute; inset: 0; min-width: 300px; max-width: 20vw; margin: auto;"></progress>
44
+ <progress class="progress is-primary" max="100" style="position: absolute; inset: 0; min-width: 300px; max-width: 20vw; margin: auto;"></progress>
45
45
  </div>
46
46
  </div>
47
47
  </div>
@@ -0,0 +1,3 @@
1
+ <{{ oob.tag|default_if_none:'div' }} hx-swap-oob="{{ oob.swap|default_if_none:'true' }}" {% for k, v in oob.attrs.items %}{{ k }}="{{ v }}"{% endfor %}>
2
+ {% include oob.template %}
3
+ </{{ oob.tag|default_if_none:'div' }}>
@@ -16,7 +16,7 @@
16
16
  {% for instance in page.object_list %}
17
17
  {% partialdef tr inline=True %}
18
18
  <tr id="tr-{{ instance.pk }}"
19
- {% if instance.get_absolute_url %}
19
+ {% if instance.get_absolute_url and detail_enabled %}
20
20
  style="cursor: pointer;"
21
21
  hx-get="{{ instance.get_absolute_url }}{% querystring %}" hx-swap="none"
22
22
  hx-replace-url="{% querystring detail=instance.pk %}"
@@ -57,3 +57,15 @@
57
57
  <span class="helptext is-size-7">{{ field.help_text|default_if_falsy:'' }}</span>
58
58
  </div>
59
59
  {% endpartialdef %}
60
+
61
+ {% partialdef model_state %}
62
+ <label class="label mb-0 {% if field.field.required %}has-text-weight-bold{% endif %}" for="{{ field.id_for_label }}">{{ label }}</label>
63
+ <div class="field has-addons mb-0">
64
+ {% if icon %}
65
+ <p class="control">
66
+ <button tabindex="-1" type="button" class="button is-static"><span class="icon"><i class="{{ icon }}"></i></span></button>
67
+ </p>
68
+ {% endif %}
69
+ <div class="control input is-expanded">{{ value|default_if_none:'' }}</div>
70
+ </div>
71
+ {% endpartialdef %}
@@ -5,9 +5,9 @@
5
5
  <article class="box p-1" style="position: fixed; top: var(--bulma-navbar-height); left: 0; min-width: 150px; border-top-left-radius: 0; border-top-right-radius: 0;"
6
6
  x-show="showQuickSwitch" x-cloak="" x-on:click.outside="showQuickSwitch = false"
7
7
  >
8
- <ul class="hoverable mr-1">
8
+ <ul class="hoverable">
9
9
  {% for t in tenants %}
10
- <li class="navbar-item" style="cursor: pointer; border-radius: var(--bulma-radius);"><a href="{{ switch_url }}?tenant_id={{ t.pk }}" hx-boost="false" style="width: 100%; display: inline-block">{{ t.name }}</a></li>
10
+ <li class="navbar-item has-text-weight-medium" style="cursor: pointer; border-radius: var(--bulma-radius); color: unset;"><a href="{{ switch_url }}?tenant_id={{ t.pk }}" hx-boost="false" style="width: 100%; display: inline-block">{{ t.name }}</a></li>
11
11
  {% endfor %}
12
12
  </ul>
13
13
  </article>
@@ -18,11 +18,9 @@
18
18
  <div style="position: relative; top: .5rem; z-index: 90;">
19
19
  <div x-show="open" x-effect="if (open) {$nextTick(() => { $refs.dropdownContent.scrollIntoView(true) });}" x-cloak="" class="box pt-3 px-3 mb-2" x-ref="dropdownContent" tabindex="-1" x-transition style="position: absolute; width: 100%">
20
20
  <input id="id_{{ widget.name }}_search" type="search" autocomplete="off" class="input my-2" x-ref="searchInput" aria-label="search"
21
- name="{{ widget.search_parameter }}"
22
- placeholder="{% translate 'Type to search' %}"
23
- hx-get="{{ widget.search_url }}"
24
- hx-trigger="input changed delay:500ms, search"
25
- hx-target="#{{ widget.name }}_dropdown_items"
21
+ name="{{ widget.search_parameter }}" placeholder="{% translate 'Type to search' %}" hx-get="{{ widget.search_url }}"
22
+ hx-trigger="input changed delay:500ms, search" hx-target="#{{ widget.name }}_dropdown_items"
23
+ style="border-radius: 0; border-top: none; border-right: none; border-left: none"
26
24
  >
27
25
  <div x-on:click="$refs.inputValue.setAttribute('value', $event.target.value); $refs.inputDisplay.value = $event.target.innerText; htmx.trigger($refs.inputValue, 'submit'); open = false; {% if widget.hx_trigger_on_change %}htmx.trigger('#id_{{ widget.name }}_value', 'change');{% endif %}"
28
26
  x-on:keydown="if (![9, 27, 38, 40].includes($event.keyCode)) {$refs.searchInput.focus();}"
@@ -42,7 +42,7 @@
42
42
  hx-trigger="input changed delay:300ms, search"
43
43
  hx-target="#id_{{ widget.uuid }}_dropdown_items"
44
44
  hx-swap="innerHTML"
45
- style="border-radius: var(--bulma-radius)"
45
+ style="border-radius: 0; border-top: none; border-right: none; border-left: none"
46
46
  x-on:keydown="if (![9, 27, 38, 40].includes($event.keyCode)) {$refs.searchInput.focus();}"
47
47
  @change.stop=""
48
48
  >
@@ -7,7 +7,8 @@ from django.shortcuts import resolve_url
7
7
  from django.utils.translation import gettext_lazy as _
8
8
  from django import template
9
9
  from django.db.models import (
10
- Manager, DecimalField, IntegerField, FloatField, Model, Q
10
+ Manager, DecimalField, IntegerField, FloatField, Model,
11
+ ManyToManyRel, ManyToManyField
11
12
  )
12
13
  from django.apps import apps
13
14
  from django.template.loader import render_to_string
@@ -85,9 +86,18 @@ def verbose_field_name(param: object, value: str):
85
86
  if not param:
86
87
  return ''
87
88
  if isinstance(param, Model):
88
- name = param._meta.get_field(value).verbose_name
89
+ field = param._meta.get_field(value)
90
+ if isinstance(field, ManyToManyRel):
91
+ name = field.related_model._meta.verbose_name_plural
92
+ else:
93
+ name = param._meta.get_field(value).verbose_name
89
94
  else:
90
- name = getattr(param.model, value).field.verbose_name
95
+ field = getattr(param.model, value).field
96
+ if isinstance(field, ManyToManyField):
97
+ name = field.model._meta.verbose_name_plural
98
+ else:
99
+ name = getattr(param.model, value).field.verbose_name
100
+
91
101
  return name
92
102
 
93
103
 
@@ -198,6 +208,12 @@ def wrap_model_field(instance, field_name):
198
208
  return mark_safe(html)
199
209
 
200
210
 
211
+ @register.filter(name='wrap_model_state')
212
+ def wrap_model_state(instance, field_name):
213
+ field = instance._meta.get_field(field_name)
214
+ # get choices, handle groups
215
+
216
+
201
217
  @register.filter(name='default_if_falsy')
202
218
  def default_if_falsy(value, default):
203
219
  if bool(value):
@@ -1,6 +1,6 @@
1
1
  {% load i18n %}
2
2
 
3
- <a class="navbar-item" href="{% url 'user:detail' %}" hx-boost="false">{% translate 'Preferences' %}</a>
3
+ <a class="navbar-item" href="{% url 'user:detail' %}?tenant_id={{ request.tenant.pk }}" hx-boost="false">{% translate 'Preferences' %}</a>
4
4
  {% if request.user.is_staff %}
5
5
  <a class="navbar-item" hx-boost="false" href="/admin/">Admin</a>
6
6
  {% endif %}
@@ -4,7 +4,7 @@ build-backend = 'hatchling.build'
4
4
 
5
5
  [project]
6
6
  name = 'accrete'
7
- version = '0.0.157'
7
+ version = '0.0.159'
8
8
  authors = [
9
9
  { name='Benedikt Jilek', email='benedikt.jilek@pm.me' },
10
10
  ]
@@ -1,3 +0,0 @@
1
- <{{ oob.tag|default_if_none:'div' }} {% if oob.id %}id="{{ oob.id }}"{% endif %} hx-swap-oob="{{ oob.swap|default_if_none:'true' }}" {% if oob.select %}hx-select-oob="{{ oob.select }}"{% endif %}>
2
- {% include oob.template %}
3
- </{{ oob.tag|default_if_none:'div' }}>
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes