accrete 0.0.23__tar.gz → 0.0.25__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 (198) hide show
  1. {accrete-0.0.23 → accrete-0.0.25}/PKG-INFO +1 -1
  2. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/__init__.py +1 -4
  3. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/components.py +7 -5
  4. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/context.py +11 -11
  5. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/filter.py +9 -16
  6. accrete-0.0.25/accrete/contrib/ui/querystring.py +19 -0
  7. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/css/accrete.css +131 -63
  8. accrete-0.0.25/accrete/contrib/ui/static/css/accrete.css.map +1 -0
  9. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/css/accrete.scss +116 -22
  10. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/css/icons.css +18 -0
  11. accrete-0.0.25/accrete/contrib/ui/static/js/filter.js +686 -0
  12. accrete-0.0.23/accrete/contrib/ui/static/js/filter.js → accrete-0.0.25/accrete/contrib/ui/static/js/filter_old.js +175 -40
  13. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/templates/ui/layout.html +7 -7
  14. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/templates/ui/partials/filter.html +15 -9
  15. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/templates/ui/partials/header.html +5 -3
  16. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/templates/ui/partials/pagination_detail.html +2 -2
  17. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/templates/ui/partials/pagination_list.html +2 -2
  18. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/templates/ui/partials/table_field.html +1 -0
  19. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/templates/ui/table.html +14 -12
  20. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/user/models.py +5 -0
  21. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/user/views.py +1 -1
  22. {accrete-0.0.23 → accrete-0.0.25}/accrete/forms.py +7 -5
  23. {accrete-0.0.23 → accrete-0.0.25}/accrete/models.py +21 -0
  24. {accrete-0.0.23 → accrete-0.0.25}/accrete/queries.py +0 -1
  25. {accrete-0.0.23/accrete/contrib/ui → accrete-0.0.25/accrete}/querystring.py +17 -21
  26. {accrete-0.0.23 → accrete-0.0.25}/accrete/tenant.py +4 -0
  27. {accrete-0.0.23 → accrete-0.0.25}/accrete/utils/dates.py +2 -1
  28. {accrete-0.0.23 → accrete-0.0.25}/pyproject.toml +1 -1
  29. accrete-0.0.23/accrete/contrib/ui/static/css/accrete.css.map +0 -1
  30. accrete-0.0.23/accrete/shortcuts.py +0 -8
  31. {accrete-0.0.23 → accrete-0.0.25}/.gitignore +0 -0
  32. {accrete-0.0.23 → accrete-0.0.25}/LICENSE +0 -0
  33. {accrete-0.0.23 → accrete-0.0.25}/README.md +0 -0
  34. {accrete-0.0.23 → accrete-0.0.25}/accrete/__init__.py +0 -0
  35. {accrete-0.0.23 → accrete-0.0.25}/accrete/admin.py +0 -0
  36. {accrete-0.0.23 → accrete-0.0.25}/accrete/apps.py +0 -0
  37. {accrete-0.0.23 → accrete-0.0.25}/accrete/config.py +0 -0
  38. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/__init__.py +0 -0
  39. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/sequence/__init__.py +0 -0
  40. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/sequence/admin.py +0 -0
  41. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/sequence/apps.py +0 -0
  42. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/sequence/forms.py +0 -0
  43. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/sequence/migrations/0001_initial.py +0 -0
  44. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/sequence/migrations/__init__.py +0 -0
  45. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/sequence/models.py +0 -0
  46. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/sequence/queries.py +0 -0
  47. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/sequence/tests.py +0 -0
  48. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/sequence/views.py +0 -0
  49. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/system_mail/__init__.py +0 -0
  50. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/system_mail/admin.py +0 -0
  51. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/system_mail/apps.py +0 -0
  52. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/system_mail/forms.py +0 -0
  53. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/system_mail/migrations/0001_initial.py +0 -0
  54. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/system_mail/migrations/__init__.py +0 -0
  55. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/system_mail/models.py +0 -0
  56. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/system_mail/tasks.py +0 -0
  57. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/system_mail/tests.py +0 -0
  58. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/system_mail/views.py +0 -0
  59. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/admin.py +0 -0
  60. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/apps.py +0 -0
  61. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/migrations/__init__.py +0 -0
  62. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/LICENSE +0 -0
  63. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/README.md +0 -0
  64. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/bulma.sass +0 -0
  65. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/css/bulma-rtl.css +0 -0
  66. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/css/bulma-rtl.css.map +0 -0
  67. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/css/bulma-rtl.min.css +0 -0
  68. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/css/bulma.css +0 -0
  69. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/css/bulma.css.map +0 -0
  70. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/css/bulma.min.css +0 -0
  71. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/package.json +0 -0
  72. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/base/_all.sass +0 -0
  73. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/base/animations.sass +0 -0
  74. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/base/generic.sass +0 -0
  75. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/base/helpers.sass +0 -0
  76. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/base/minireset.sass +0 -0
  77. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/components/_all.sass +0 -0
  78. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/components/breadcrumb.sass +0 -0
  79. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/components/card.sass +0 -0
  80. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/components/dropdown.sass +0 -0
  81. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/components/level.sass +0 -0
  82. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/components/media.sass +0 -0
  83. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/components/menu.sass +0 -0
  84. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/components/message.sass +0 -0
  85. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/components/modal.sass +0 -0
  86. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/components/navbar.sass +0 -0
  87. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/components/pagination.sass +0 -0
  88. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/components/panel.sass +0 -0
  89. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/components/tabs.sass +0 -0
  90. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/elements/_all.sass +0 -0
  91. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/elements/box.sass +0 -0
  92. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/elements/button.sass +0 -0
  93. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/elements/container.sass +0 -0
  94. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/elements/content.sass +0 -0
  95. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/elements/form.sass +0 -0
  96. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/elements/icon.sass +0 -0
  97. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/elements/image.sass +0 -0
  98. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/elements/notification.sass +0 -0
  99. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/elements/other.sass +0 -0
  100. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/elements/progress.sass +0 -0
  101. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/elements/table.sass +0 -0
  102. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/elements/tag.sass +0 -0
  103. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/elements/title.sass +0 -0
  104. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/form/_all.sass +0 -0
  105. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/form/checkbox-radio.sass +0 -0
  106. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/form/file.sass +0 -0
  107. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/form/input-textarea.sass +0 -0
  108. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/form/select.sass +0 -0
  109. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/form/shared.sass +0 -0
  110. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/form/tools.sass +0 -0
  111. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/grid/_all.sass +0 -0
  112. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/grid/columns.sass +0 -0
  113. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/grid/tiles.sass +0 -0
  114. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/helpers/_all.sass +0 -0
  115. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/helpers/color.sass +0 -0
  116. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/helpers/flexbox.sass +0 -0
  117. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/helpers/float.sass +0 -0
  118. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/helpers/other.sass +0 -0
  119. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/helpers/overflow.sass +0 -0
  120. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/helpers/position.sass +0 -0
  121. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/helpers/spacing.sass +0 -0
  122. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/helpers/typography.sass +0 -0
  123. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/helpers/visibility.sass +0 -0
  124. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/layout/_all.sass +0 -0
  125. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/layout/footer.sass +0 -0
  126. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/layout/hero.sass +0 -0
  127. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/layout/section.sass +0 -0
  128. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/utilities/_all.sass +0 -0
  129. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/utilities/animations.sass +0 -0
  130. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/utilities/controls.sass +0 -0
  131. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/utilities/derived-variables.sass +0 -0
  132. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/utilities/extends.sass +0 -0
  133. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/utilities/functions.sass +0 -0
  134. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/utilities/initial-variables.sass +0 -0
  135. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/bulma/sass/utilities/mixins.sass +0 -0
  136. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/css/accrete.css.bak +0 -0
  137. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/icons/Logo.svg +0 -0
  138. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/icons/accrete.svg +0 -0
  139. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/js/list.js +0 -0
  140. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/js/navbar.js +0 -0
  141. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/static/js/utils.js +0 -0
  142. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/templates/django/forms/widgets/attrs.html +0 -0
  143. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/templates/django/forms/widgets/email.html +0 -0
  144. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/templates/django/forms/widgets/file.html +0 -0
  145. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/templates/django/forms/widgets/input.html +0 -0
  146. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/templates/django/forms/widgets/select.html +0 -0
  147. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/templates/django/forms/widgets/text.html +0 -0
  148. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/templates/django/forms/widgets/textarea.html +0 -0
  149. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/templates/ui/detail.html +0 -0
  150. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/templates/ui/form.html +0 -0
  151. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/templates/ui/list.html +0 -0
  152. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/templates/ui/partials/form_errors.html +0 -0
  153. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/templates/ui/partials/form_modal.html +0 -0
  154. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/templates/ui/partials/onchange_form.html +0 -0
  155. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/templates/ui/partials/table_field_float.html +0 -0
  156. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/templates/ui/partials/table_field_monetary.html +0 -0
  157. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/templates/ui/partials/table_field_string.html +0 -0
  158. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/templatetags/__init__.py +0 -0
  159. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/templatetags/accrete_ui.py +0 -0
  160. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/tests.py +0 -0
  161. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/urls.py +0 -0
  162. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/ui/views.py +0 -0
  163. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/user/__init__.py +0 -0
  164. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/user/admin.py +0 -0
  165. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/user/apps.py +0 -0
  166. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/user/forms.py +0 -0
  167. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/user/locale/de/LC_MESSAGES/django.mo +0 -0
  168. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/user/locale/de/LC_MESSAGES/django.po +0 -0
  169. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/user/middleware.py +0 -0
  170. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/user/migrations/0001_initial.py +0 -0
  171. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/user/migrations/__init__.py +0 -0
  172. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/user/templates/user/accrete_navbar_end.html +0 -0
  173. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/user/templates/user/login.html +0 -0
  174. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/user/templates/user/user_detail.html +0 -0
  175. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/user/templates/user/user_form.html +0 -0
  176. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/user/tests.py +0 -0
  177. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/user/urls.py +0 -0
  178. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/user_registration/__init__.py +0 -0
  179. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/user_registration/admin.py +0 -0
  180. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/user_registration/apps.py +0 -0
  181. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/user_registration/config.py +0 -0
  182. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/user_registration/forms.py +0 -0
  183. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/user_registration/migrations/0001_initial.py +0 -0
  184. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/user_registration/migrations/__init__.py +0 -0
  185. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/user_registration/models.py +0 -0
  186. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/user_registration/templates/user_registration/mail_templates/confirmation_mail.html +0 -0
  187. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/user_registration/templates/user_registration/registration.html +0 -0
  188. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/user_registration/tests.py +0 -0
  189. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/user_registration/urls.py +0 -0
  190. {accrete-0.0.23 → accrete-0.0.25}/accrete/contrib/user_registration/views.py +0 -0
  191. {accrete-0.0.23 → accrete-0.0.25}/accrete/decorators.py +0 -0
  192. {accrete-0.0.23 → accrete-0.0.25}/accrete/middleware.py +0 -0
  193. {accrete-0.0.23 → accrete-0.0.25}/accrete/migrations/0001_initial.py +0 -0
  194. {accrete-0.0.23 → accrete-0.0.25}/accrete/migrations/0002_initial.py +0 -0
  195. {accrete-0.0.23 → accrete-0.0.25}/accrete/migrations/__init__.py +0 -0
  196. {accrete-0.0.23 → accrete-0.0.25}/accrete/tests.py +0 -0
  197. {accrete-0.0.23 → accrete-0.0.25}/accrete/utils/__init__.py +0 -0
  198. {accrete-0.0.23 → accrete-0.0.25}/accrete/views.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: accrete
3
- Version: 0.0.23
3
+ Version: 0.0.25
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
@@ -11,7 +11,4 @@ from .components import (
11
11
  TableFieldAlignment,
12
12
  TableFieldType
13
13
  )
14
- from .querystring import (
15
- parse_querystring,
16
- build_querystring
17
- )
14
+ from .querystring import load_querystring, build_url_params
@@ -22,12 +22,14 @@ class TableField:
22
22
 
23
23
  label: str
24
24
  name: str
25
- alignment: type[TableFieldAlignment] = TableFieldAlignment.LEFT
26
- header_alignment: type[TableFieldAlignment] = None
27
- field_type: type[TableFieldType] = TableFieldType.NONE
25
+ alignment: TableFieldAlignment | Enum = TableFieldAlignment.LEFT
26
+ header_alignment: TableFieldAlignment | Enum = None
27
+ header_info: str = None
28
+ field_type: TableFieldType | Enum = TableFieldType.NONE
28
29
  prefix: str = ''
29
30
  suffix: str = ''
30
31
  truncate_after: int = 0
32
+ template: str = None
31
33
 
32
34
 
33
35
  @dataclass
@@ -43,7 +45,7 @@ class ClientAction:
43
45
  name: str
44
46
  url: str = ''
45
47
  query_params: str = ''
46
- attrs: list[str] = field(default_factory=list)
48
+ attrs: list[tuple[str, str]] = field(default_factory=list)
47
49
  submit: bool = False
48
50
  form_id: str = 'form'
49
- class_list: list = field(default_factory=list)
51
+ class_list: list[str] = field(default_factory=list)
@@ -4,8 +4,9 @@ from dataclasses import dataclass, field
4
4
  from django.utils.translation import gettext_lazy as _
5
5
  from django.db.models import Model, QuerySet, Q
6
6
  from django.core.paginator import Paginator
7
+ from accrete.querystring import parse_querystring
7
8
 
8
- from .querystring import parse_querystring, build_querystring
9
+ from .querystring import load_querystring, build_url_params
9
10
  from .components import ClientAction, BreadCrumb, TableField
10
11
  from .filter import Filter
11
12
 
@@ -17,7 +18,7 @@ DEFAULT_PAGINATE_BY = 40
17
18
  @dataclass
18
19
  class ListContext:
19
20
 
20
- model: Model
21
+ model: type[Model]
21
22
  get_params: dict
22
23
  title: str = None
23
24
  context: dict = field(default_factory=dict)
@@ -31,7 +32,7 @@ class ListContext:
31
32
  default_filter_term: str = ''
32
33
  actions: list[ClientAction] = field(default_factory=list)
33
34
  breadcrumbs: list[BreadCrumb] = field(default_factory=list)
34
- obj_label: str = None
35
+ object_label: str = None
35
36
  fields: list[TableField] = field(default_factory=list)
36
37
  unselect_button: bool = False
37
38
 
@@ -103,12 +104,13 @@ class ListContext:
103
104
  'page': page,
104
105
  'list_pagination': True,
105
106
  'title': self.title or self.model._meta.verbose_name_plural,
107
+ 'object_label': self.object_label or self.model._meta.verbose_name or _('Name'),
106
108
  'filter_terms': Filter(self.model, self.filter_relation_depth).get_query_terms(),
107
109
  'default_filter_term': self.default_filter_term,
108
110
  'breadcrumbs': self.breadcrumbs,
109
- 'querystring': build_querystring(self.get_params),
111
+ 'querystring': load_querystring(self.get_params),
112
+ 'url_params': build_url_params(self.get_params),
110
113
  'actions': self.actions,
111
- 'obj_label': self.obj_label or _('Name'),
112
114
  'fields': self.fields
113
115
  }
114
116
  context.update(self.context)
@@ -118,7 +120,7 @@ class ListContext:
118
120
  @dataclass
119
121
  class DetailContext:
120
122
 
121
- obj: Model
123
+ obj: Model | type[Model]
122
124
  get_params: dict
123
125
  order_by: str = None
124
126
  paginate_by: int = DEFAULT_PAGINATE_BY
@@ -205,9 +207,8 @@ class DetailContext:
205
207
  'order_by': self.get_params.get('order_by', self.obj._meta.model._meta.ordering),
206
208
  'paginate_by': paginate_by,
207
209
  'detail_pagination': False,
208
- 'view_type': 'detail',
209
210
  'breadcrumbs': self.breadcrumbs,
210
- 'querystring': build_querystring(self.get_params, ['page']),
211
+ 'url_params': build_url_params(self.get_params, ['page']),
211
212
  'actions': self.actions
212
213
  }
213
214
  if self.paginate_by > 0:
@@ -238,7 +239,7 @@ class FormContext:
238
239
  )
239
240
  ]
240
241
  try:
241
- url = self.discard_url or self.model.get_absolute_url()
242
+ url = self.discard_url or (self.model.pk and self.model.get_absolute_url())
242
243
  except TypeError:
243
244
  raise TypeError(
244
245
  'Supply the discard_url parameter if FormContext is called '
@@ -272,9 +273,8 @@ class FormContext:
272
273
  def dict(self):
273
274
  ctx = {
274
275
  'title': self.get_title(),
275
- 'view_type': 'form',
276
276
  'form_id': self.form_id,
277
- 'querystring': build_querystring(self.get_params, ['page']),
277
+ 'url_params': build_url_params(self.get_params, ['page']),
278
278
  'actions': []
279
279
  }
280
280
  if self.add_default_actions:
@@ -7,7 +7,6 @@ from django.utils.translation import gettext_lazy as _
7
7
  class Filter:
8
8
 
9
9
  query_relation_depth = 4
10
- exclude_from_terms = []
11
10
  query_float_fields = ['DecimalField', 'FloatField']
12
11
  query_char_fields = ['CharField', 'TextField']
13
12
  query_boolean_fields = ['BooleanField']
@@ -27,14 +26,9 @@ class Filter:
27
26
  LABEL_SET = _('Is Set')
28
27
  LABEL_NOT_SET = _('Is Not Set')
29
28
 
30
- def __init__(
31
- self, model,
32
- query_relation_depth: int = 4,
33
- exclude_from_terms: list = None,
34
- ):
29
+ def __init__(self, model, query_relation_depth: int = 4):
35
30
  self.model = model
36
31
  self.query_relation_depth = query_relation_depth
37
- self.exclude_from_terms = exclude_from_terms or []
38
32
 
39
33
  def get_choice_char_query_term(self, label, param, choices):
40
34
  choices = [(choice[0], str(choice[1])) for choice in choices]
@@ -289,12 +283,10 @@ class Filter:
289
283
 
290
284
  def get_relation_query_terms(self, model, path):
291
285
  terms = []
292
- if 'tenant' not in self.exclude_from_terms:
293
- self.exclude_from_terms.append('tenant')
286
+ filter_exclude = getattr(model, 'filter_exclude', [])
287
+ filter_exclude.append('tenant')
294
288
  fields = filter(
295
- lambda x:
296
- x.is_relation and
297
- x.name not in self.exclude_from_terms,
289
+ lambda x: x.is_relation and x.name not in filter_exclude,
298
290
  sorted(model._meta.get_fields(), key=lambda x: x.name.lower())
299
291
  )
300
292
  cpath = path.copy()
@@ -317,10 +309,11 @@ class Filter:
317
309
 
318
310
  def get_local_query_terms(self, model):
319
311
  terms = []
320
- fields = filter(lambda x: not x.is_relation, model._meta.get_fields())
321
- searchable_methods = []
322
- if hasattr(model, 'searchable_methods'):
323
- searchable_methods = model.searchable_methods
312
+ filter_exclude = getattr(model, 'filter_exclude', [])
313
+ fields = filter(
314
+ lambda x: not x.is_relation and x.name not in filter_exclude,
315
+ model._meta.get_fields()
316
+ )
324
317
  for field in fields:
325
318
  term = self.get_query_term(field)
326
319
  if field.null is True and term.get('params'):
@@ -0,0 +1,19 @@
1
+ import json
2
+
3
+
4
+ def load_querystring(get_params: dict) -> list:
5
+ return json.loads(get_params.get('q', '[]'))
6
+
7
+
8
+ def build_url_params(get_params: dict, extra_params: list[str] = None) -> str:
9
+ querystring = f'?q={get_params.get("q", "[]")}'
10
+ if paginate_by := get_params.get('paginate_by', False):
11
+ querystring += f'&paginate_by={paginate_by}'
12
+ if order_by := get_params.get('order_by', False):
13
+ querystring += f'&order_by={order_by}'
14
+ if crumbs := get_params.get('crumbs', False):
15
+ querystring += f'&crumbs={crumbs}'
16
+ for param in extra_params or []:
17
+ if value := get_params.get(param, False):
18
+ querystring += f'&{param}={value}'
19
+ return querystring