accrete 0.0.142__tar.gz → 0.0.143__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 (281) hide show
  1. {accrete-0.0.142 → accrete-0.0.143}/PKG-INFO +1 -1
  2. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/__init__.py +1 -0
  3. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/templates/ui/form_error.html +1 -1
  4. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/templates/ui/message.html +1 -1
  5. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/utils.py +22 -11
  6. {accrete-0.0.142 → accrete-0.0.143}/accrete/utils/forms.py +39 -27
  7. {accrete-0.0.142 → accrete-0.0.143}/pyproject.toml +1 -1
  8. {accrete-0.0.142 → accrete-0.0.143}/.gitignore +0 -0
  9. {accrete-0.0.142 → accrete-0.0.143}/LICENSE +0 -0
  10. {accrete-0.0.142 → accrete-0.0.143}/README.md +0 -0
  11. {accrete-0.0.142 → accrete-0.0.143}/accrete/__init__.py +0 -0
  12. {accrete-0.0.142 → accrete-0.0.143}/accrete/admin.py +0 -0
  13. {accrete-0.0.142 → accrete-0.0.143}/accrete/apps.py +0 -0
  14. {accrete-0.0.142 → accrete-0.0.143}/accrete/config.py +0 -0
  15. {accrete-0.0.142 → accrete-0.0.143}/accrete/context_processors.py +0 -0
  16. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/__init__.py +0 -0
  17. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/country/__init__.py +0 -0
  18. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/country/admin.py +0 -0
  19. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/country/apps.py +0 -0
  20. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/country/migrations/0001_initial.py +0 -0
  21. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/country/migrations/0002_auto_20250219_1759.py +0 -0
  22. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/country/migrations/0003_alter_country_options.py +0 -0
  23. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/country/migrations/__init__.py +0 -0
  24. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/country/models.py +0 -0
  25. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/log/__init__.py +0 -0
  26. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/log/admin.py +0 -0
  27. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/log/apps.py +0 -0
  28. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/log/config.py +0 -0
  29. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/log/helper.py +0 -0
  30. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/log/migrations/0001_initial.py +0 -0
  31. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/log/migrations/0002_log_user_alter_log_new_value_type_and_more.py +0 -0
  32. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/log/migrations/0003_alter_log_tenant.py +0 -0
  33. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/log/migrations/0004_logconfig_logconfigfield.py +0 -0
  34. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/log/migrations/0005_logconfig_exclude_fields_and_more.py +0 -0
  35. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/log/migrations/__init__.py +0 -0
  36. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/log/models.py +0 -0
  37. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/log/queries.py +0 -0
  38. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/log/signals.py +0 -0
  39. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/log/tests.py +0 -0
  40. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/log/views.py +0 -0
  41. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/sequence/__init__.py +0 -0
  42. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/sequence/admin.py +0 -0
  43. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/sequence/apps.py +0 -0
  44. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/sequence/forms.py +0 -0
  45. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/sequence/migrations/0001_initial.py +0 -0
  46. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/sequence/migrations/0002_alter_sequence_name.py +0 -0
  47. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/sequence/migrations/0003_alter_sequence_tenant.py +0 -0
  48. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/sequence/migrations/__init__.py +0 -0
  49. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/sequence/models.py +0 -0
  50. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/sequence/queries.py +0 -0
  51. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/sequence/tests.py +0 -0
  52. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/sequence/views.py +0 -0
  53. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/system_mail/__init__.py +0 -0
  54. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/system_mail/admin.py +0 -0
  55. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/system_mail/apps.py +0 -0
  56. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/system_mail/forms.py +0 -0
  57. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/system_mail/migrations/0001_initial.py +0 -0
  58. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/system_mail/migrations/__init__.py +0 -0
  59. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/system_mail/models.py +0 -0
  60. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/system_mail/tasks.py +0 -0
  61. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/system_mail/tests.py +0 -0
  62. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/system_mail/views.py +0 -0
  63. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/admin.py +0 -0
  64. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/apps.py +0 -0
  65. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/context.py +0 -0
  66. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/filter.py +0 -0
  67. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/middleware.py +0 -0
  68. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/migrations/__init__.py +0 -0
  69. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/models.py +0 -0
  70. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/LICENSE +0 -0
  71. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/README.md +0 -0
  72. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/bulma.scss +0 -0
  73. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/css/bulma.css +0 -0
  74. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/css/bulma.css.map +0 -0
  75. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/css/bulma.min.css +0 -0
  76. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-dark-mode.css +0 -0
  77. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-dark-mode.css.map +0 -0
  78. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-dark-mode.min.css +0 -0
  79. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers-prefixed.css +0 -0
  80. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers-prefixed.css.map +0 -0
  81. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers-prefixed.min.css +0 -0
  82. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers.css +0 -0
  83. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers.css.map +0 -0
  84. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers.min.css +0 -0
  85. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/css/versions/bulma-prefixed.css +0 -0
  86. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/css/versions/bulma-prefixed.css.map +0 -0
  87. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/css/versions/bulma-prefixed.min.css +0 -0
  88. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/package.json +0 -0
  89. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/_index.scss +0 -0
  90. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/base/_index.scss +0 -0
  91. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/base/animations.scss +0 -0
  92. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/base/generic.scss +0 -0
  93. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/base/minireset.scss +0 -0
  94. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/base/skeleton.scss +0 -0
  95. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/components/_index.scss +0 -0
  96. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/components/breadcrumb.scss +0 -0
  97. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/components/card.scss +0 -0
  98. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/components/dropdown.scss +0 -0
  99. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/components/menu.scss +0 -0
  100. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/components/message.scss +0 -0
  101. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/components/modal.scss +0 -0
  102. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/components/navbar.scss +0 -0
  103. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/components/pagination.scss +0 -0
  104. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/components/panel.scss +0 -0
  105. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/components/tabs.scss +0 -0
  106. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/elements/_index.scss +0 -0
  107. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/elements/block.scss +0 -0
  108. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/elements/box.scss +0 -0
  109. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/elements/button.scss +0 -0
  110. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/elements/content.scss +0 -0
  111. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/elements/delete.scss +0 -0
  112. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/elements/icon.scss +0 -0
  113. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/elements/image.scss +0 -0
  114. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/elements/loader.scss +0 -0
  115. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/elements/notification.scss +0 -0
  116. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/elements/progress.scss +0 -0
  117. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/elements/table.scss +0 -0
  118. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/elements/tag.scss +0 -0
  119. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/elements/title.scss +0 -0
  120. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/form/_index.scss +0 -0
  121. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/form/checkbox-radio.scss +0 -0
  122. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/form/file.scss +0 -0
  123. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/form/input-textarea.scss +0 -0
  124. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/form/select.scss +0 -0
  125. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/form/shared.scss +0 -0
  126. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/form/tools.scss +0 -0
  127. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/grid/_index.scss +0 -0
  128. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/grid/columns.scss +0 -0
  129. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/grid/grid.scss +0 -0
  130. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/helpers/_index.scss +0 -0
  131. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/helpers/aspect-ratio.scss +0 -0
  132. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/helpers/border.scss +0 -0
  133. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/helpers/color.scss +0 -0
  134. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/helpers/flexbox.scss +0 -0
  135. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/helpers/float.scss +0 -0
  136. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/helpers/gap.scss +0 -0
  137. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/helpers/other.scss +0 -0
  138. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/helpers/overflow.scss +0 -0
  139. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/helpers/position.scss +0 -0
  140. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/helpers/spacing.scss +0 -0
  141. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/helpers/typography.scss +0 -0
  142. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/helpers/visibility.scss +0 -0
  143. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/layout/_index.scss +0 -0
  144. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/layout/container.scss +0 -0
  145. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/layout/footer.scss +0 -0
  146. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/layout/hero.scss +0 -0
  147. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/layout/level.scss +0 -0
  148. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/layout/media.scss +0 -0
  149. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/layout/section.scss +0 -0
  150. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/themes/_index.scss +0 -0
  151. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/themes/dark.scss +0 -0
  152. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/themes/light.scss +0 -0
  153. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/themes/setup.scss +0 -0
  154. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/utilities/_index.scss +0 -0
  155. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/utilities/controls.scss +0 -0
  156. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/utilities/css-variables.scss +0 -0
  157. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/utilities/derived-variables.scss +0 -0
  158. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/utilities/extends.scss +0 -0
  159. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/utilities/functions.scss +0 -0
  160. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/utilities/initial-variables.scss +0 -0
  161. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/sass/utilities/mixins.scss +0 -0
  162. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/versions/bulma-no-dark-mode.scss +0 -0
  163. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/versions/bulma-no-helpers-prefixed.scss +0 -0
  164. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/versions/bulma-no-helpers.scss +0 -0
  165. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/bulma/versions/bulma-prefixed.scss +0 -0
  166. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/css/.sass-cache/15adf1eed05371361b08787c918a7f18fc15be79/accrete.scssc +0 -0
  167. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/css/accrete.css +0 -0
  168. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/css/accrete.css.map +0 -0
  169. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/css/accrete.scss +0 -0
  170. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/css/fa.css +0 -0
  171. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/css/icons.css +0 -0
  172. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/icons/Logo.svg +0 -0
  173. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/icons/accrete.svg +0 -0
  174. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/js/alpine-3.14.9.js +0 -0
  175. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/js/alpine-focus-3.14.9.js +0 -0
  176. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/js/alpine-sort-3.14.9.js +0 -0
  177. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/js/filter.js +0 -0
  178. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/js/htmx.min.js +0 -0
  179. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/webfonts/fa-brands-400.ttf +0 -0
  180. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/webfonts/fa-brands-400.woff2 +0 -0
  181. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/webfonts/fa-regular-400.ttf +0 -0
  182. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/webfonts/fa-regular-400.woff2 +0 -0
  183. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/webfonts/fa-solid-900.ttf +0 -0
  184. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/webfonts/fa-solid-900.woff2 +0 -0
  185. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/webfonts/fa-v4compatibility.ttf +0 -0
  186. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/static/webfonts/fa-v4compatibility.woff2 +0 -0
  187. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/templates/django/forms/widgets/attrs.html +0 -0
  188. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/templates/django/forms/widgets/date.html +0 -0
  189. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/templates/django/forms/widgets/email.html +0 -0
  190. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/templates/django/forms/widgets/file.html +0 -0
  191. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/templates/django/forms/widgets/input.html +0 -0
  192. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/templates/django/forms/widgets/select.html +0 -0
  193. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/templates/django/forms/widgets/text.html +0 -0
  194. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/templates/django/forms/widgets/textarea.html +0 -0
  195. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/templates/ui/content_right.html +0 -0
  196. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/templates/ui/favicon.html +0 -0
  197. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/templates/ui/filter/filter.html +0 -0
  198. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/templates/ui/filter/query_input.html +0 -0
  199. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/templates/ui/filter/query_operator.html +0 -0
  200. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/templates/ui/filter/query_params.html +0 -0
  201. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/templates/ui/filter/query_tags.html +0 -0
  202. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/templates/ui/layout.html +0 -0
  203. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/templates/ui/list.html +0 -0
  204. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/templates/ui/list_update.html +0 -0
  205. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/templates/ui/modal.html +0 -0
  206. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/templates/ui/oob.html +0 -0
  207. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/templates/ui/table.html +0 -0
  208. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/templates/ui/table_row_update.html +0 -0
  209. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/templates/ui/templatetags/field.html +0 -0
  210. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/templates/ui/widgets/model_search_select.html +0 -0
  211. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/templates/ui/widgets/model_search_select_multi.html +0 -0
  212. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/templates/ui/widgets/model_search_select_options.html +0 -0
  213. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/templatetags/__init__.py +0 -0
  214. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/templatetags/ui.py +0 -0
  215. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/tests.py +0 -0
  216. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/urls.py +0 -0
  217. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/views.py +0 -0
  218. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/widgets/__init__.py +0 -0
  219. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/ui/widgets/search_select.py +0 -0
  220. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user/__init__.py +0 -0
  221. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user/admin.py +0 -0
  222. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user/apps.py +0 -0
  223. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user/auth_backends.py +0 -0
  224. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user/forms.py +0 -0
  225. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user/locale/de/LC_MESSAGES/django.mo +0 -0
  226. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user/locale/de/LC_MESSAGES/django.po +0 -0
  227. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user/middleware.py +0 -0
  228. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user/migrations/0001_initial.py +0 -0
  229. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user/migrations/0002_user_theme.py +0 -0
  230. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user/migrations/0003_alter_user_email.py +0 -0
  231. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user/migrations/0004_user_login_alter_user_email_user_email_or_login_set.py +0 -0
  232. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user/migrations/0005_remove_user_email_or_login_set_and_more.py +0 -0
  233. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user/migrations/0006_remove_user_email_or_login_set_user_is_managed_and_more.py +0 -0
  234. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user/migrations/0007_user_managed_login.py +0 -0
  235. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user/migrations/0008_remove_user_no_email_for_managed_user_and_more.py +0 -0
  236. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user/migrations/__init__.py +0 -0
  237. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user/models.py +0 -0
  238. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user/templates/user/accrete_navbar_end_dropdown.html +0 -0
  239. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user/templates/user/change_email.html +0 -0
  240. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user/templates/user/change_password.html +0 -0
  241. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user/templates/user/login.html +0 -0
  242. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user/templates/user/user_form.html +0 -0
  243. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user/tests.py +0 -0
  244. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user/urls.py +0 -0
  245. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user/views.py +0 -0
  246. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user_registration/__init__.py +0 -0
  247. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user_registration/admin.py +0 -0
  248. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user_registration/apps.py +0 -0
  249. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user_registration/config.py +0 -0
  250. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user_registration/forms.py +0 -0
  251. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user_registration/migrations/0001_initial.py +0 -0
  252. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user_registration/migrations/__init__.py +0 -0
  253. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user_registration/models.py +0 -0
  254. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user_registration/templates/user_registration/mail_templates/confirmation_mail.html +0 -0
  255. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user_registration/templates/user_registration/registration.html +0 -0
  256. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user_registration/tests.py +0 -0
  257. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user_registration/urls.py +0 -0
  258. {accrete-0.0.142 → accrete-0.0.143}/accrete/contrib/user_registration/views.py +0 -0
  259. {accrete-0.0.142 → accrete-0.0.143}/accrete/fields.py +0 -0
  260. {accrete-0.0.142 → accrete-0.0.143}/accrete/forms.py +0 -0
  261. {accrete-0.0.142 → accrete-0.0.143}/accrete/managers.py +0 -0
  262. {accrete-0.0.142 → accrete-0.0.143}/accrete/middleware.py +0 -0
  263. {accrete-0.0.142 → accrete-0.0.143}/accrete/migrations/0001_initial.py +0 -0
  264. {accrete-0.0.142 → accrete-0.0.143}/accrete/migrations/0002_initial.py +0 -0
  265. {accrete-0.0.142 → accrete-0.0.143}/accrete/migrations/0003_remove_member_name.py +0 -0
  266. {accrete-0.0.142 → accrete-0.0.143}/accrete/migrations/0004_rename_accessgroupmember_memberaccessgrouprel_and_more.py +0 -0
  267. {accrete-0.0.142 → accrete-0.0.143}/accrete/migrations/0005_accessgroup_apply_on_alter_member_access_groups_and_more.py +0 -0
  268. {accrete-0.0.142 → accrete-0.0.143}/accrete/migrations/0006_alter_member_user.py +0 -0
  269. {accrete-0.0.142 → accrete-0.0.143}/accrete/migrations/0007_accessgroup_description.py +0 -0
  270. {accrete-0.0.142 → accrete-0.0.143}/accrete/migrations/__init__.py +0 -0
  271. {accrete-0.0.142 → accrete-0.0.143}/accrete/models.py +0 -0
  272. {accrete-0.0.142 → accrete-0.0.143}/accrete/storage.py +0 -0
  273. {accrete-0.0.142 → accrete-0.0.143}/accrete/tenant.py +0 -0
  274. {accrete-0.0.142 → accrete-0.0.143}/accrete/tests.py +0 -0
  275. {accrete-0.0.142 → accrete-0.0.143}/accrete/urls.py +0 -0
  276. {accrete-0.0.142 → accrete-0.0.143}/accrete/utils/__init__.py +0 -0
  277. {accrete-0.0.142 → accrete-0.0.143}/accrete/utils/dates.py +0 -0
  278. {accrete-0.0.142 → accrete-0.0.143}/accrete/utils/log.py +0 -0
  279. {accrete-0.0.142 → accrete-0.0.143}/accrete/utils/models.py +0 -0
  280. {accrete-0.0.142 → accrete-0.0.143}/accrete/utils/views.py +0 -0
  281. {accrete-0.0.142 → accrete-0.0.143}/accrete/views.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: accrete
3
- Version: 0.0.142
3
+ Version: 0.0.143
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
@@ -13,5 +13,6 @@ from . context import (
13
13
  from .utils import (
14
14
  modal_response,
15
15
  detail_response,
16
+ search_select_response,
16
17
  add_trigger
17
18
  )
@@ -5,7 +5,7 @@
5
5
  {{ form.non_field_errors }}
6
6
  {% if form.save_error %}
7
7
  <p>{{ form.save_error }}</p>
8
- <span>{% translate 'Error ID' %}: {{ form.save_error_id }}</span>
8
+ {% if form.save_error_id %}<span>{% translate 'Error ID' %}: {{ form.save_error_id }}</span>{% endif %}
9
9
  {% endif %}
10
10
  </div>
11
11
  {% endif %}
@@ -4,7 +4,7 @@
4
4
  {% for message in messages %}
5
5
  <div hx-swap-oob="{% if append %}beforeend:#message{% else %}innerHTML:#message{% endif %}">
6
6
  <div class="mb-2" style="min-width: 340px; max-width: 340px" x-data="{ show: false }" x-show="show" x-cloak="" x-init="show = true; {% if not persistent %}setTimeout(() => show = false, 4000){% endif %}" x-transition.duration.200ms>
7
- <div class="notification has-text-centered {{ message|message_class }}">
7
+ <div class="notification has-text-centered {{ message|message_class }}" style="box-shadow: 2px 2px 5px">
8
8
  {% if persistent %}<button class="delete" x-on:click="show = false;"></button>{% endif %}
9
9
  {{ message }}
10
10
  </div>
@@ -3,6 +3,7 @@ import json
3
3
 
4
4
  from django.http import HttpRequest, HttpResponse
5
5
  from django.shortcuts import render
6
+ from django.template.loader import render_to_string
6
7
 
7
8
  from . import OobContext
8
9
  from .context import BaseContext, ModalContext
@@ -30,26 +31,29 @@ def modal_response(
30
31
 
31
32
  def detail_response(
32
33
  request: HttpRequest,
33
- header_template: str,
34
- content_template: str,
35
- context: BaseContext | dict,
34
+ header_template: str = None,
35
+ content_template: str = None,
36
+ context: BaseContext | dict = None,
36
37
  extra_content: str | None = None
37
38
  ) -> HttpResponse:
38
39
  if isinstance(context, BaseContext):
39
40
  context = context.dict()
40
- content = render_templates([
41
- ('ui/message.html', context),
42
- ('ui/oob.html', OobContext(
41
+ templates = [
42
+ ('ui/message.html', context)
43
+ ]
44
+ if header_template:
45
+ templates.append(('ui/oob.html', OobContext(
43
46
  template=header_template,
44
47
  swap='innerHTML:#content-right-header',
45
48
  extra=context
46
- ).dict()),
47
- ('ui/oob.html', OobContext(
49
+ ).dict()))
50
+ if content_template:
51
+ templates.append(('ui/oob.html', OobContext(
48
52
  template=content_template,
49
53
  swap='innerHTML:#content-right',
50
54
  extra=context
51
- ).dict())
52
- ], request=request)
55
+ ).dict()))
56
+ content = render_templates(templates, request=request)
53
57
  if extra_content:
54
58
  content += extra_content
55
59
  res = HttpResponse(content=content)
@@ -57,8 +61,15 @@ def detail_response(
57
61
  return res
58
62
 
59
63
 
64
+ def search_select_response(queryset) -> HttpResponse:
65
+ return HttpResponse(render_to_string(
66
+ 'ui/widgets/model_search_select_options.html',
67
+ {'options': queryset}
68
+ ))
69
+
70
+
60
71
  def add_trigger(
61
- response: [HttpResponse],
72
+ response: HttpResponse,
62
73
  trigger: dict | str,
63
74
  header: str = 'HX-Trigger'
64
75
  ) -> HttpResponse:
@@ -1,79 +1,91 @@
1
1
  import re
2
2
  import logging
3
3
  from uuid import uuid4
4
- from typing import Type
4
+ from typing import Type, Any
5
+ from dataclasses import dataclass, field
5
6
  from django.db import transaction
6
7
  from django.forms import BaseFormSet, Form, ModelForm
7
8
 
8
9
  _logger = logging.getLogger(__name__)
9
10
 
10
11
 
11
- def save_form(form: [Form|ModelForm], commit=True, reraise=False) -> [Form | ModelForm]:
12
+ @dataclass
13
+ class FormResult:
14
+
15
+ form: Form | ModelForm
16
+ is_saved: bool = False
17
+ save_error: str | None = None
18
+ save_error_id: str | None = None
19
+ res: Any = None # return value of form.save()
20
+ inline_formsets: list = field(default_factory=list)
21
+
22
+ def __getattr__(self, item):
23
+ return getattr(self.form, item)
24
+
25
+ def __getitem__(self, item):
26
+ return self.form.__getitem__(item)
27
+
28
+
29
+ def save_form(form: Form | ModelForm, commit=True, reraise=False) -> FormResult:
12
30
  if not hasattr(form, 'save'):
13
31
  raise AttributeError('Form must have method "save" implemented.')
14
- form.is_saved = False
15
- form.save_error = None
16
- form.save_error_id = None
17
- form.res = None
32
+ result = FormResult(form=form)
18
33
  try:
19
34
  if form.is_valid():
20
35
  with transaction.atomic():
21
- form.res = form.save(commit=commit)
22
- form.is_saved = True
36
+ result.res = form.save(commit=commit)
37
+ result.is_saved = True
23
38
  except Exception as e:
24
- form.save_error = repr(e)
39
+ result.save_error = repr(e)
25
40
  error_id = str(uuid4())[:8]
26
41
  _logger.exception(f'{error_id}: {e}')
27
- form.save_error_id = error_id
42
+ result.save_error_id = error_id
28
43
  if reraise:
29
44
  raise e
30
- return form
45
+ return result
31
46
 
32
47
 
33
- def save_forms(form, inline_formsets: list = None, commit=True, reraise: bool = False) -> [Form | ModelForm]:
48
+ def save_forms(form, inline_formsets: list = None, commit=True, reraise: bool = False) -> FormResult:
34
49
 
35
50
  def handle_error(error):
36
- form.save_error = repr(error)
51
+ result.save_error = repr(error)
37
52
  error_id = str(uuid4())[:8]
38
53
  _logger.exception(f'{error_id}: {error}')
39
- form.save_error_id = error_id
54
+ result.save_error_id = error_id
40
55
 
41
56
  if not hasattr(form, 'save'):
42
57
  raise AttributeError('Form must have method "save" implemented.')
43
58
 
44
- form.is_saved = False
45
- form.save_error = None
46
- form.save_error_id = None
47
- form.res = None
48
- form.inline_forms = inline_formsets
59
+ result = FormResult(form=form)
60
+ result.inline_forms = inline_formsets
49
61
 
50
62
  try:
51
63
  form.is_valid()
52
64
  inlines_valid = all([
53
- inline_formset.is_valid() for inline_formset in inline_formsets
65
+ inline_formset.is_valid() for inline_formset in result.inline_formsets
54
66
  ])
55
67
  except Exception as e:
56
68
  handle_error(e)
57
69
  if reraise:
58
70
  raise e
59
- return form
71
+ return result
60
72
 
61
73
  if not form.is_valid() or not inlines_valid:
62
- return form
74
+ return result
63
75
 
64
76
  try:
65
77
  with transaction.atomic():
66
- form.res = form.save(commit=commit)
67
- for inline_formset in inline_formsets:
78
+ result.res = form.save(commit=commit)
79
+ for inline_formset in result.inline_formsets:
68
80
  inline_formset.save(commit=commit)
69
81
  except Exception as e:
70
82
  handle_error(e)
71
83
  if reraise:
72
84
  raise e
73
- return form
85
+ return result
74
86
 
75
- form.is_saved = True
76
- return form
87
+ result.is_saved = True
88
+ return result
77
89
 
78
90
 
79
91
  def inline_vals_from_post(post: dict, prefix: str) -> list[dict]:
@@ -4,7 +4,7 @@ build-backend = 'hatchling.build'
4
4
 
5
5
  [project]
6
6
  name = 'accrete'
7
- version = '0.0.142'
7
+ version = '0.0.143'
8
8
  authors = [
9
9
  { name='Benedikt Jilek', email='benedikt.jilek@pm.me' },
10
10
  ]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes