accrete 0.0.53__tar.gz → 0.0.55__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 (233) hide show
  1. {accrete-0.0.53 → accrete-0.0.55}/PKG-INFO +1 -1
  2. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/__init__.py +2 -1
  3. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/context.py +59 -8
  4. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/filter.py +5 -5
  5. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/css/accrete.css +20 -4
  6. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/css/accrete.css.map +1 -1
  7. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/css/accrete.scss +34 -4
  8. accrete-0.0.55/accrete/contrib/ui/static/js/ui.js +26 -0
  9. accrete-0.0.55/accrete/contrib/ui/templates/ui/dashboard.html +7 -0
  10. accrete-0.0.55/accrete/contrib/ui/templates/ui/detail.html +37 -0
  11. accrete-0.0.55/accrete/contrib/ui/templates/ui/form.html +21 -0
  12. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/ui/layout.html +11 -24
  13. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/ui/list.html +2 -0
  14. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/ui/partials/filter.html +32 -23
  15. accrete-0.0.55/accrete/contrib/ui/templates/ui/partials/form_errors.html +36 -0
  16. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/ui/table.html +2 -0
  17. accrete-0.0.55/accrete/forms.py +45 -0
  18. {accrete-0.0.53 → accrete-0.0.55}/accrete/managers.py +1 -2
  19. accrete-0.0.55/accrete/utils/__init__.py +4 -0
  20. accrete-0.0.55/accrete/utils/forms.py +103 -0
  21. {accrete-0.0.53 → accrete-0.0.55}/accrete/utils/http.py +14 -3
  22. {accrete-0.0.53 → accrete-0.0.55}/pyproject.toml +1 -1
  23. accrete-0.0.53/accrete/contrib/ui/static/js/list.js +0 -146
  24. accrete-0.0.53/accrete/contrib/ui/templates/ui/detail.html +0 -123
  25. accrete-0.0.53/accrete/contrib/ui/templates/ui/form.html +0 -30
  26. accrete-0.0.53/accrete/contrib/ui/templates/ui/partials/form_errors.html +0 -23
  27. accrete-0.0.53/accrete/forms.py +0 -292
  28. accrete-0.0.53/accrete/utils/__init__.py +0 -4
  29. accrete-0.0.53/accrete/utils/forms.py +0 -24
  30. {accrete-0.0.53 → accrete-0.0.55}/.gitignore +0 -0
  31. {accrete-0.0.53 → accrete-0.0.55}/LICENSE +0 -0
  32. {accrete-0.0.53 → accrete-0.0.55}/README.md +0 -0
  33. {accrete-0.0.53 → accrete-0.0.55}/accrete/__init__.py +0 -0
  34. {accrete-0.0.53 → accrete-0.0.55}/accrete/admin.py +0 -0
  35. {accrete-0.0.53 → accrete-0.0.55}/accrete/annotation.py +0 -0
  36. {accrete-0.0.53 → accrete-0.0.55}/accrete/apps.py +0 -0
  37. {accrete-0.0.53 → accrete-0.0.55}/accrete/config.py +0 -0
  38. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/__init__.py +0 -0
  39. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/sequence/__init__.py +0 -0
  40. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/sequence/admin.py +0 -0
  41. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/sequence/apps.py +0 -0
  42. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/sequence/forms.py +0 -0
  43. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/sequence/migrations/0001_initial.py +0 -0
  44. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/sequence/migrations/0002_alter_sequence_name.py +0 -0
  45. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/sequence/migrations/__init__.py +0 -0
  46. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/sequence/models.py +0 -0
  47. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/sequence/queries.py +0 -0
  48. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/sequence/tests.py +0 -0
  49. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/sequence/views.py +0 -0
  50. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/system_mail/__init__.py +0 -0
  51. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/system_mail/admin.py +0 -0
  52. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/system_mail/apps.py +0 -0
  53. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/system_mail/forms.py +0 -0
  54. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/system_mail/migrations/0001_initial.py +0 -0
  55. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/system_mail/migrations/__init__.py +0 -0
  56. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/system_mail/models.py +0 -0
  57. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/system_mail/tasks.py +0 -0
  58. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/system_mail/tests.py +0 -0
  59. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/system_mail/views.py +0 -0
  60. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/admin.py +0 -0
  61. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/apps.py +0 -0
  62. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/elements.py +0 -0
  63. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/migrations/__init__.py +0 -0
  64. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/LICENSE +0 -0
  65. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/README.md +0 -0
  66. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/bulma.scss +0 -0
  67. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/css/bulma.css +0 -0
  68. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/css/bulma.css.map +0 -0
  69. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/css/bulma.min.css +0 -0
  70. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-dark-mode.min.css +0 -0
  71. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-dark-mode.min.css.map +0 -0
  72. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers-prefixed.min.css +0 -0
  73. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers-prefixed.min.css.map +0 -0
  74. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers.min.css +0 -0
  75. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/css/versions/bulma-no-helpers.min.css.map +0 -0
  76. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/css/versions/bulma-prefixed.min.css +0 -0
  77. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/css/versions/bulma-prefixed.min.css.map +0 -0
  78. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/package.json +0 -0
  79. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/_index.scss +0 -0
  80. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/base/_index.scss +0 -0
  81. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/base/animations.scss +0 -0
  82. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/base/generic.scss +0 -0
  83. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/base/minireset.scss +0 -0
  84. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/base/skeleton.scss +0 -0
  85. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/components/_index.scss +0 -0
  86. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/components/breadcrumb.scss +0 -0
  87. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/components/card.scss +0 -0
  88. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/components/dropdown.scss +0 -0
  89. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/components/menu.scss +0 -0
  90. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/components/message.scss +0 -0
  91. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/components/modal.scss +0 -0
  92. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/components/navbar.scss +0 -0
  93. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/components/pagination.scss +0 -0
  94. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/components/panel.scss +0 -0
  95. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/components/tabs.scss +0 -0
  96. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/elements/_index.scss +0 -0
  97. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/elements/block.scss +0 -0
  98. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/elements/box.scss +0 -0
  99. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/elements/button.scss +0 -0
  100. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/elements/content.scss +0 -0
  101. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/elements/delete.scss +0 -0
  102. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/elements/icon.scss +0 -0
  103. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/elements/image.scss +0 -0
  104. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/elements/loader.scss +0 -0
  105. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/elements/notification.scss +0 -0
  106. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/elements/progress.scss +0 -0
  107. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/elements/table.scss +0 -0
  108. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/elements/tag.scss +0 -0
  109. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/elements/title.scss +0 -0
  110. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/form/_index.scss +0 -0
  111. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/form/checkbox-radio.scss +0 -0
  112. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/form/file.scss +0 -0
  113. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/form/input-textarea.scss +0 -0
  114. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/form/select.scss +0 -0
  115. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/form/shared.scss +0 -0
  116. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/form/tools.scss +0 -0
  117. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/grid/_index.scss +0 -0
  118. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/grid/columns-v2.scss +0 -0
  119. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/grid/columns.scss +0 -0
  120. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/grid/grid.scss +0 -0
  121. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/helpers/_index.scss +0 -0
  122. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/helpers/aspect-ratio.scss +0 -0
  123. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/helpers/border.scss +0 -0
  124. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/helpers/color.scss +0 -0
  125. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/helpers/flexbox.scss +0 -0
  126. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/helpers/float.scss +0 -0
  127. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/helpers/gap.scss +0 -0
  128. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/helpers/other.scss +0 -0
  129. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/helpers/overflow.scss +0 -0
  130. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/helpers/position.scss +0 -0
  131. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/helpers/spacing.scss +0 -0
  132. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/helpers/typography.scss +0 -0
  133. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/helpers/visibility.scss +0 -0
  134. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/layout/_index.scss +0 -0
  135. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/layout/container.scss +0 -0
  136. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/layout/footer.scss +0 -0
  137. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/layout/hero.scss +0 -0
  138. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/layout/level.scss +0 -0
  139. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/layout/media.scss +0 -0
  140. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/layout/section.scss +0 -0
  141. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/themes/_index.scss +0 -0
  142. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/themes/dark.scss +0 -0
  143. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/themes/light.scss +0 -0
  144. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/themes/setup.scss +0 -0
  145. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/utilities/_index.scss +0 -0
  146. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/utilities/controls.scss +0 -0
  147. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/utilities/css-variables.scss +0 -0
  148. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/utilities/derived-variables.scss +0 -0
  149. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/utilities/extends.scss +0 -0
  150. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/utilities/functions.scss +0 -0
  151. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/utilities/initial-variables.scss +0 -0
  152. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/sass/utilities/mixins.scss +0 -0
  153. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/versions/bulma-no-dark-mode.scss +0 -0
  154. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/versions/bulma-no-helpers-prefixed.scss +0 -0
  155. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/versions/bulma-no-helpers.scss +0 -0
  156. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/bulma/versions/bulma-prefixed.scss +0 -0
  157. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/css/fa.css +0 -0
  158. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/css/icons.css +0 -0
  159. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/icons/Logo.svg +0 -0
  160. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/icons/accrete.svg +0 -0
  161. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/js/filter.js +0 -0
  162. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/js/htmx.min.js +0 -0
  163. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/webfonts/fa-brands-400.ttf +0 -0
  164. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/webfonts/fa-brands-400.woff2 +0 -0
  165. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/webfonts/fa-regular-400.ttf +0 -0
  166. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/webfonts/fa-regular-400.woff2 +0 -0
  167. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/webfonts/fa-solid-900.ttf +0 -0
  168. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/webfonts/fa-solid-900.woff2 +0 -0
  169. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/webfonts/fa-v4compatibility.ttf +0 -0
  170. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/static/webfonts/fa-v4compatibility.woff2 +0 -0
  171. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/django/forms/widgets/attrs.html +0 -0
  172. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/django/forms/widgets/email.html +0 -0
  173. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/django/forms/widgets/file.html +0 -0
  174. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/django/forms/widgets/input.html +0 -0
  175. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/django/forms/widgets/select.html +0 -0
  176. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/django/forms/widgets/text.html +0 -0
  177. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/django/forms/widgets/textarea.html +0 -0
  178. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/ui/partials/form_modal.html +0 -0
  179. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/ui/partials/header.html +0 -0
  180. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/ui/partials/onchange_form.html +0 -0
  181. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/ui/partials/pagination_detail.html +0 -0
  182. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/ui/partials/pagination_list.html +0 -0
  183. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/ui/partials/table_field.html +0 -0
  184. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/ui/partials/table_field_float.html +0 -0
  185. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/ui/partials/table_field_monetary.html +0 -0
  186. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templates/ui/partials/table_field_string.html +0 -0
  187. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templatetags/__init__.py +0 -0
  188. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/templatetags/accrete_ui.py +0 -0
  189. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/tests.py +0 -0
  190. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/urls.py +0 -0
  191. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/ui/views.py +0 -0
  192. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/__init__.py +0 -0
  193. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/admin.py +0 -0
  194. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/apps.py +0 -0
  195. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/forms.py +0 -0
  196. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/locale/de/LC_MESSAGES/django.mo +0 -0
  197. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/locale/de/LC_MESSAGES/django.po +0 -0
  198. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/middleware.py +0 -0
  199. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/migrations/0001_initial.py +0 -0
  200. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/migrations/__init__.py +0 -0
  201. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/models.py +0 -0
  202. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/templates/user/accrete_navbar_end_dropdown.html +0 -0
  203. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/templates/user/change_email.html +0 -0
  204. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/templates/user/change_password.html +0 -0
  205. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/templates/user/login.html +0 -0
  206. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/templates/user/user_detail.html +0 -0
  207. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/templates/user/user_form.html +0 -0
  208. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/tests.py +0 -0
  209. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/urls.py +0 -0
  210. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user/views.py +0 -0
  211. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user_registration/__init__.py +0 -0
  212. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user_registration/admin.py +0 -0
  213. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user_registration/apps.py +0 -0
  214. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user_registration/config.py +0 -0
  215. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user_registration/forms.py +0 -0
  216. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user_registration/migrations/0001_initial.py +0 -0
  217. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user_registration/migrations/__init__.py +0 -0
  218. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user_registration/models.py +0 -0
  219. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user_registration/templates/user_registration/mail_templates/confirmation_mail.html +0 -0
  220. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user_registration/templates/user_registration/registration.html +0 -0
  221. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user_registration/tests.py +0 -0
  222. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user_registration/urls.py +0 -0
  223. {accrete-0.0.53 → accrete-0.0.55}/accrete/contrib/user_registration/views.py +0 -0
  224. {accrete-0.0.53 → accrete-0.0.55}/accrete/middleware.py +0 -0
  225. {accrete-0.0.53 → accrete-0.0.55}/accrete/migrations/0001_initial.py +0 -0
  226. {accrete-0.0.53 → accrete-0.0.55}/accrete/migrations/0002_initial.py +0 -0
  227. {accrete-0.0.53 → accrete-0.0.55}/accrete/migrations/__init__.py +0 -0
  228. {accrete-0.0.53 → accrete-0.0.55}/accrete/models.py +0 -0
  229. {accrete-0.0.53 → accrete-0.0.55}/accrete/tenant.py +0 -0
  230. {accrete-0.0.53 → accrete-0.0.55}/accrete/tests.py +0 -0
  231. {accrete-0.0.53 → accrete-0.0.55}/accrete/utils/dates.py +0 -0
  232. {accrete-0.0.53 → accrete-0.0.55}/accrete/utils/models.py +0 -0
  233. {accrete-0.0.53 → accrete-0.0.55}/accrete/views.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: accrete
3
- Version: 0.0.53
3
+ Version: 0.0.55
4
4
  Summary: Django Shared Schema Multi Tenant
5
5
  Author-email: Benedikt Jilek <benedikt.jilek@pm.me>
6
6
  License: Copyright (c) 2023 Benedikt Jilek
@@ -13,7 +13,8 @@ from .context import (
13
13
  extract_url_params,
14
14
  exclude_params,
15
15
  url_param_str,
16
- get_table_fields
16
+ get_table_fields,
17
+ default_table_context
17
18
  )
18
19
  from .elements import (
19
20
  ClientActionGroup,
@@ -1,12 +1,13 @@
1
1
  import logging
2
+ import json
2
3
  from urllib.parse import quote_plus
3
4
  from dataclasses import dataclass, field
4
- from typing import TypedDict, Callable
5
+ from typing import Type, TypedDict, Callable
5
6
  from django.utils.translation import gettext_lazy as _t
6
7
  from django.db import models
7
8
  from django.db.models import Model, QuerySet
8
9
  from django.core.paginator import Paginator
9
- from django.core import paginator
10
+ from django.core import paginator, exceptions
10
11
  from django.forms import Form, ModelForm
11
12
  from accrete.annotation import Annotation
12
13
  from .elements import (
@@ -14,7 +15,7 @@ from .elements import (
14
15
  ClientActionGroup
15
16
  )
16
17
  from .filter import Filter
17
-
18
+ from accrete.utils import filter_from_querystring
18
19
 
19
20
  _logger = logging.getLogger(__name__)
20
21
 
@@ -60,6 +61,46 @@ class TableContext(Context):
60
61
  field_selection: bool = True
61
62
 
62
63
 
64
+ def default_table_context(model: Type[Model], params: dict, queryset=None, **kwargs) -> TableContext:
65
+ if queryset is None:
66
+ queryset = filter_from_querystring(model, params)
67
+ page = list_page(
68
+ queryset,
69
+ cast_param(params, 'paginate_by', int, 40),
70
+ cast_param(params, 'page', int, 1)
71
+ )
72
+ try:
73
+ has_name_field = (
74
+ model._meta.get_field('name').get_internal_type() == 'CharField'
75
+ )
76
+ except exceptions.FieldDoesNotExist:
77
+ has_name_field = False
78
+
79
+ ctx = TableContext(
80
+ title=str(model._meta.verbose_name_plural),
81
+ object_label=str(model._meta.verbose_name),
82
+ object_param_str=url_param_str(
83
+ params,
84
+ ['q', 'paginate_by', 'page', 'fields']
85
+ ),
86
+ fields=get_table_fields(
87
+ cast_param(params, 'fields', json.loads, []), model
88
+ ),
89
+ list_page=page,
90
+ pagination_param_str=url_param_str(
91
+ params, ['q', 'paginate_by', 'fields']
92
+ ),
93
+ endless_scroll=True,
94
+ filter=Filter(
95
+ model,
96
+ default_filter_term='name__icontains' if has_name_field else ''
97
+ ),
98
+ kwargs=kwargs
99
+ )
100
+ return ctx
101
+
102
+
103
+
63
104
  @dataclass
64
105
  class ListContext(Context):
65
106
 
@@ -67,7 +108,7 @@ class ListContext(Context):
67
108
  object_param_str: str
68
109
  list_page: paginator.Page
69
110
  pagination_param_str: str
70
- filter: Filter
111
+ filter: Filter = None
71
112
  endless_scroll: bool = True
72
113
  column_height: int = 4
73
114
  column_width: int = 12
@@ -93,7 +134,9 @@ class DetailContext(Context):
93
134
  class FormContext(Context):
94
135
 
95
136
  form: Form | ModelForm
96
- form_id: str
137
+ form_id: str = 'form'
138
+ form_method: str = 'post'
139
+ form_action: str = ''
97
140
 
98
141
 
99
142
  def cast_param(params: dict, param: str, cast_to: Callable, default):
@@ -115,9 +158,8 @@ def url_param_dict(get_params: dict) -> dict:
115
158
 
116
159
  def url_param_str(params: dict, extract: list[str] = None) -> str:
117
160
  """
118
- Return a URL Querystring from the given parameters
119
- If extract is supplied, extract the value from the dictionary and prepare
120
- them, so that each value is formatted e.g. {'page': '&page=1'}
161
+ Return a URL Querystring from the given params dict.
162
+ If extract is supplied, only specified keys will be used.
121
163
  """
122
164
  if extract:
123
165
  params = extract_url_params(params, extract)
@@ -155,6 +197,15 @@ def detail_page(queryset: QuerySet, obj: Model) -> dict:
155
197
  'deactivate pagination.'
156
198
  )
157
199
  return {}
200
+ if obj not in queryset:
201
+ url = obj.get_absolute_url()
202
+ return {
203
+ 'previous_object_url': url,
204
+ 'next_object_url': url,
205
+ 'current_object_idx': 1,
206
+ 'total_objects': 1
207
+ }
208
+
158
209
  idx = (*queryset,).index(obj)
159
210
  previous_object_url = (
160
211
  queryset[idx - 1] if idx - 1 >= 0 else queryset.last()
@@ -1,4 +1,3 @@
1
- import time
2
1
  import logging
3
2
  from django.db.models.fields.related import ManyToOneRel, ManyToManyRel
4
3
  from django.core.cache import cache
@@ -301,10 +300,11 @@ class Filter:
301
300
  and not isinstance(x, (ManyToOneRel, ManyToManyRel)),
302
301
  self.model._meta.get_fields()
303
302
  )]
304
- fields.extend([
305
- (x['annotation'].verbose_name, x['name'])
306
- for x in self.model.get_annotations()
307
- ])
303
+ if hasattr(self.model, 'get_annotations'):
304
+ fields.extend([
305
+ (x['annotation'].verbose_name, x['name'])
306
+ for x in self.model.get_annotations()
307
+ ])
308
308
  sorted_fields = sorted(fields, key=lambda x: x[0].lower())
309
309
  for field in sorted_fields:
310
310
  html += f"""
@@ -20923,10 +20923,9 @@ select:focus {
20923
20923
  border-bottom-right-radius: 0;
20924
20924
  }
20925
20925
 
20926
- #list-customization * .dropdown-menu {
20927
- width: 292px;
20928
- border-top-left-radius: 0;
20929
- border-top-right-radius: 0;
20926
+ .dropdown-button.is-active {
20927
+ border-bottom-left-radius: 0;
20928
+ border-bottom-right-radius: 0;
20930
20929
  }
20931
20930
 
20932
20931
  @media screen and (max-width: 768px) {
@@ -20956,6 +20955,23 @@ select:focus {
20956
20955
  display: inline-block;
20957
20956
  }
20958
20957
  }
20958
+ /* Chrome, Safari, Edge, Opera */
20959
+ input::-webkit-outer-spin-button,
20960
+ input::-webkit-inner-spin-button {
20961
+ -webkit-appearance: none;
20962
+ margin: 0;
20963
+ }
20964
+
20965
+ /* Firefox */
20966
+ input[type=number] {
20967
+ -moz-appearance: textfield;
20968
+ }
20969
+
20970
+ /* Fix CKEditor List Display */
20971
+ .ck-editor__editable_inline {
20972
+ padding: 0 30px !important;
20973
+ }
20974
+
20959
20975
  @media screen and (max-width: 1407px) {
20960
20976
  #list-customization * .dropdown-menu {
20961
20977
  width: auto;