django-viewflow 2.2.7__tar.gz → 2.2.10__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 (324) hide show
  1. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/PKG-INFO +70 -5
  2. django_viewflow-2.2.7/django_viewflow.egg-info/PKG-INFO → django_viewflow-2.2.10/README.md +54 -31
  3. django_viewflow-2.2.7/README.md → django_viewflow-2.2.10/django_viewflow.egg-info/PKG-INFO +96 -0
  4. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/setup.py +4 -4
  5. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/fsm/base.py +12 -7
  6. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/fsm/chart.py +3 -3
  7. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/fsm/typing.py +1 -1
  8. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/jsonstore.py +8 -1
  9. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/css/viewflow.min.css +1 -1
  10. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/viewflow.min.js +37 -37
  11. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/viewflow.min.js.map +1 -1
  12. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/registration/password_reset_confirm.html +1 -1
  13. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/urls/base.py +3 -4
  14. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/urls/sites.py +2 -2
  15. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/utils.py +4 -0
  16. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/views/base.py +3 -2
  17. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/views/create.py +17 -3
  18. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/views/update.py +17 -3
  19. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/base.py +1 -1
  20. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/fields.py +22 -6
  21. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/flow/mixins.py +8 -6
  22. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/flow/nodes.py +20 -0
  23. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/flow/views/create.py +5 -0
  24. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/flow/views/update.py +5 -0
  25. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/models.py +6 -0
  26. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/LICENSE +0 -0
  27. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/LICENSE_EXCEPTION +0 -0
  28. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/MANIFEST.in +0 -0
  29. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/django_viewflow.egg-info/SOURCES.txt +0 -0
  30. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/django_viewflow.egg-info/dependency_links.txt +0 -0
  31. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/django_viewflow.egg-info/not-zip-safe +0 -0
  32. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/django_viewflow.egg-info/requires.txt +0 -0
  33. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/django_viewflow.egg-info/top_level.txt +0 -0
  34. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/setup.cfg +0 -0
  35. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/tests/test_middleware.py +0 -0
  36. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/tests/test_templates.py +0 -0
  37. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/tests/test_templatetags__viewflow.py +0 -0
  38. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/tests/test_this_object.py +0 -0
  39. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/tests/test_urls__base.py +0 -0
  40. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/tests/test_utils__package.py +0 -0
  41. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/__init__.py +0 -0
  42. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/apps.py +0 -0
  43. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/conf.py +0 -0
  44. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/contrib/__init__.py +0 -0
  45. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/contrib/admin/__init__.py +0 -0
  46. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/contrib/admin/apps.py +0 -0
  47. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/contrib/auth.py +0 -0
  48. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/contrib/plotly/__init__.py +0 -0
  49. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/contrib/plotly/material.py +0 -0
  50. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/contrib/plotly/views.py +0 -0
  51. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/contrib/plotly/viewset.py +0 -0
  52. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/fields.py +0 -0
  53. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/forms/__init__.py +0 -0
  54. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/forms/renderers.py +0 -0
  55. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/fsm/__init__.py +0 -0
  56. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/fsm/admin.py +0 -0
  57. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/fsm/views.py +0 -0
  58. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/fsm/viewset.py +0 -0
  59. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/de/LC_MESSAGES/django.mo +0 -0
  60. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/de/LC_MESSAGES/django.po +0 -0
  61. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/es/LC_MESSAGES/django.mo +0 -0
  62. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/es/LC_MESSAGES/django.po +0 -0
  63. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/fr/LC_MESSAGES/django.mo +0 -0
  64. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/fr/LC_MESSAGES/django.po +0 -0
  65. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/it/LC_MESSAGES/django.mo +0 -0
  66. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/it/LC_MESSAGES/django.po +0 -0
  67. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/ja/LC_MESSAGES/django.mo +0 -0
  68. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/ja/LC_MESSAGES/django.po +0 -0
  69. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/kk/LC_MESSAGES/django.mo +0 -0
  70. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/kk/LC_MESSAGES/django.po +0 -0
  71. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/ko/LC_MESSAGES/django.mo +0 -0
  72. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/ko/LC_MESSAGES/django.po +0 -0
  73. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/pt/LC_MESSAGES/django.mo +0 -0
  74. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/pt/LC_MESSAGES/django.po +0 -0
  75. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/ru/LC_MESSAGES/django.mo +0 -0
  76. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/ru/LC_MESSAGES/django.po +0 -0
  77. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/sr/LC_MESSAGES/django.mo +0 -0
  78. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/sr/LC_MESSAGES/django.po +0 -0
  79. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  80. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/zh_Hans/LC_MESSAGES/django.po +0 -0
  81. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/management/__init__.py +0 -0
  82. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/management/commands/__init__.py +0 -0
  83. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/management/commands/flowexport.py +0 -0
  84. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/middleware.py +0 -0
  85. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/css/perfect-scrollbar.css +0 -0
  86. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/css/trix.css +0 -0
  87. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/css/vis-network.min.css +0 -0
  88. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/material-icons/material-icons-outlined.woff +0 -0
  89. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/material-icons/material-icons-outlined.woff2 +0 -0
  90. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/material-icons/material-icons-round.woff +0 -0
  91. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/material-icons/material-icons-round.woff2 +0 -0
  92. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/material-icons/material-icons-sharp.woff +0 -0
  93. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/material-icons/material-icons-sharp.woff2 +0 -0
  94. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/material-icons/material-icons-two-tone.woff +0 -0
  95. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/material-icons/material-icons-two-tone.woff2 +0 -0
  96. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/material-icons/material-icons.css +0 -0
  97. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/material-icons/material-icons.woff +0 -0
  98. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/material-icons/material-icons.woff2 +0 -0
  99. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-Black.woff +0 -0
  100. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-Black.woff2 +0 -0
  101. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-BlackItalic.woff +0 -0
  102. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-BlackItalic.woff2 +0 -0
  103. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-Bold.woff +0 -0
  104. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-Bold.woff2 +0 -0
  105. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-BoldItalic.woff +0 -0
  106. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-BoldItalic.woff2 +0 -0
  107. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-Light.woff +0 -0
  108. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-Light.woff2 +0 -0
  109. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-LightItalic.woff +0 -0
  110. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-LightItalic.woff2 +0 -0
  111. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-Medium.woff +0 -0
  112. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-Medium.woff2 +0 -0
  113. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-MediumItalic.woff +0 -0
  114. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-MediumItalic.woff2 +0 -0
  115. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-Regular.woff +0 -0
  116. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-Regular.woff2 +0 -0
  117. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-RegularItalic.woff +0 -0
  118. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-RegularItalic.woff2 +0 -0
  119. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-Thin.woff +0 -0
  120. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-Thin.woff2 +0 -0
  121. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-ThinItalic.woff +0 -0
  122. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-ThinItalic.woff2 +0 -0
  123. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/roboto-fontface.css +0 -0
  124. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/simple-icons/SimpleIcons.eot +0 -0
  125. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/simple-icons/SimpleIcons.otf +0 -0
  126. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/simple-icons/SimpleIcons.ttf +0 -0
  127. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/simple-icons/SimpleIcons.woff +0 -0
  128. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/simple-icons/SimpleIcons.woff2 +0 -0
  129. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/simple-icons/simple-icons.css +0 -0
  130. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/simple-icons/simple-icons.min.css +0 -0
  131. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/img/favicon.png +0 -0
  132. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/img/user.png +0 -0
  133. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dash-renderer/build/dash_renderer.min.js +0 -0
  134. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dash_table/async-export.js +0 -0
  135. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dash_table/async-export.js.LICENSE.txt +0 -0
  136. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dash_table/async-export.js.map +0 -0
  137. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dash_table/async-highlight.js +0 -0
  138. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dash_table/async-highlight.js.map +0 -0
  139. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dash_table/async-table.js +0 -0
  140. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dash_table/async-table.js.LICENSE.txt +0 -0
  141. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dash_table/async-table.js.map +0 -0
  142. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dash_table/bundle.js +0 -0
  143. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dash_table/bundle.js.map +0 -0
  144. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-datepicker.js +0 -0
  145. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-datepicker.js.map +0 -0
  146. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-dropdown.js +0 -0
  147. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-dropdown.js.LICENSE.txt +0 -0
  148. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-dropdown.js.map +0 -0
  149. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-graph.js +0 -0
  150. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-graph.js.LICENSE.txt +0 -0
  151. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-graph.js.map +0 -0
  152. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-highlight.js +0 -0
  153. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-highlight.js.map +0 -0
  154. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-markdown.js +0 -0
  155. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-markdown.js.LICENSE.txt +0 -0
  156. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-markdown.js.map +0 -0
  157. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-plotlyjs.js +0 -0
  158. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-plotlyjs.js.LICENSE.txt +0 -0
  159. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-slider.js +0 -0
  160. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-slider.js.LICENSE.txt +0 -0
  161. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-slider.js.map +0 -0
  162. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-upload.js +0 -0
  163. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-upload.js.map +0 -0
  164. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/dash_core_components-shared.js +0 -0
  165. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/dash_core_components-shared.js.LICENSE.txt +0 -0
  166. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/dash_core_components-shared.js.map +0 -0
  167. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/dash_core_components.js +0 -0
  168. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/dash_core_components.js.LICENSE.txt +0 -0
  169. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/dash_core_components.js.map +0 -0
  170. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/plotly.min.js +0 -0
  171. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/deps/polyfill@7.12.1.min.js +0 -0
  172. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/deps/prop-types@15.7.2.min.js +0 -0
  173. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/deps/prop-types@15.8.1.min.js +0 -0
  174. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/deps/react-dom@16.14.0.min.js +0 -0
  175. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/deps/react@16.14.0.min.js +0 -0
  176. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/html/dash_html_components.min.js +0 -0
  177. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/html/dash_html_components.min.js.map +0 -0
  178. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/perfect-scrollbar.min.js +0 -0
  179. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/perfect-scrollbar.min.js.map +0 -0
  180. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/smartcrop.js +0 -0
  181. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/trix.js +0 -0
  182. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/turbo.es2017-umd.js +0 -0
  183. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/vis-network.min.js +0 -0
  184. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/vis-network.min.js.map +0 -0
  185. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/400.html +0 -0
  186. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/403.html +0 -0
  187. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/404.html +0 -0
  188. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/500.html +0 -0
  189. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/admin/fsm_change_form.html +0 -0
  190. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/admin/fsm_change_form_object_tools.html +0 -0
  191. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/admin/fsm_change_list.html +0 -0
  192. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/admin/fsm_transition_form.html +0 -0
  193. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/formtools/wizard/wizard_form.html +0 -0
  194. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/registration/logged_out.html +0 -0
  195. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/registration/login.html +0 -0
  196. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/registration/password_change_done.html +0 -0
  197. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/registration/password_change_form.html +0 -0
  198. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/registration/password_reset_complete.html +0 -0
  199. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/registration/password_reset_done.html +0 -0
  200. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/registration/password_reset_form.html +0 -0
  201. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/registration/profile.html +0 -0
  202. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/registration/provider_list.html +0 -0
  203. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/base.html +0 -0
  204. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/base_lockscreen.html +0 -0
  205. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/base_page.html +0 -0
  206. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/contrib/import_export/export_action.html +0 -0
  207. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/contrib/import_export/import_action.html +0 -0
  208. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/contrib/plotly.html +0 -0
  209. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/contrib/swagger.html +0 -0
  210. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/includes/app_menu.html +0 -0
  211. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/includes/list_bulk_actions.html +0 -0
  212. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/includes/list_filter.html +0 -0
  213. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/includes/list_pagination.html +0 -0
  214. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/includes/object_detail_card.html +0 -0
  215. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/includes/site_menu.html +0 -0
  216. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/includes/snackbar.html +0 -0
  217. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/includes/view_action_menu.html +0 -0
  218. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/includes/viewflow_css.html +0 -0
  219. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/includes/viewflow_js.html +0 -0
  220. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/material/circular_progress.html +0 -0
  221. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/views/confirm_delete.html +0 -0
  222. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/views/delete_action.html +0 -0
  223. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/views/detail.html +0 -0
  224. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/views/form.html +0 -0
  225. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/views/list.html +0 -0
  226. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/views/transition.html +0 -0
  227. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/assign.html +0 -0
  228. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/base_page.html +0 -0
  229. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/celery_task_detail.html +0 -0
  230. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/flow_menu.html +0 -0
  231. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/graph.bpmn +0 -0
  232. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/graph.svg +0 -0
  233. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/process_cancel.html +0 -0
  234. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/process_dashboard.html +0 -0
  235. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/process_data.html +0 -0
  236. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/process_detail.html +0 -0
  237. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/process_list.html +0 -0
  238. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/process_tasks_list.html +0 -0
  239. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/start.html +0 -0
  240. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/task.html +0 -0
  241. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/task_assign.html +0 -0
  242. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/task_base.html +0 -0
  243. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/task_cancel.html +0 -0
  244. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/task_data.html +0 -0
  245. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/task_detail.html +0 -0
  246. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/task_list.html +0 -0
  247. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/task_revive.html +0 -0
  248. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/task_unassign.html +0 -0
  249. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/task_undo.html +0 -0
  250. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/tasks_assign.html +0 -0
  251. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/tasks_unassign.html +0 -0
  252. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/workflow_menu.html +0 -0
  253. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/workflow_tasks_list.html +0 -0
  254. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templatetags/__init__.py +0 -0
  255. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templatetags/fsm.py +0 -0
  256. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templatetags/viewflow.py +0 -0
  257. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templatetags/workflow.py +0 -0
  258. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/this_object.py +0 -0
  259. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/urls/__init__.py +0 -0
  260. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/urls/model.py +0 -0
  261. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/views/__init__.py +0 -0
  262. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/views/actions.py +0 -0
  263. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/views/delete.py +0 -0
  264. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/views/detail.py +0 -0
  265. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/views/filters.py +0 -0
  266. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/views/list.py +0 -0
  267. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/views/search.py +0 -0
  268. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/__init__.py +0 -0
  269. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/activation.py +0 -0
  270. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/admin.py +0 -0
  271. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/apps.py +0 -0
  272. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/chart.py +0 -0
  273. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/context.py +0 -0
  274. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/exceptions.py +0 -0
  275. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/flow/__init__.py +0 -0
  276. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/flow/utils.py +0 -0
  277. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/flow/views/__init__.py +0 -0
  278. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/flow/views/actions.py +0 -0
  279. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/flow/views/chart.py +0 -0
  280. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/flow/views/dashboard.py +0 -0
  281. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/flow/views/detail.py +0 -0
  282. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/flow/views/filters.py +0 -0
  283. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/flow/views/list.py +0 -0
  284. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/flow/views/mixins.py +0 -0
  285. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/flow/viewset.py +0 -0
  286. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/lock.py +0 -0
  287. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/managers.py +0 -0
  288. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0001_initial.py +0 -0
  289. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0002_fsmchange.py +0 -0
  290. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0003_task_owner_permission_change.py +0 -0
  291. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0004_extend_fields_length.py +0 -0
  292. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0004_subprocess.py +0 -0
  293. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0005_merge.py +0 -0
  294. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0005_rename_flowcls.py +0 -0
  295. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0006_i18n.py +0 -0
  296. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0006_merge.py +0 -0
  297. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0007_owner_permission_obj.py +0 -0
  298. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0007_task_assigned.py +0 -0
  299. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0008_jsonfield_and_artifact.py +0 -0
  300. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0008_merge.py +0 -0
  301. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0009_merge.py +0 -0
  302. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0010_viewflow20.py +0 -0
  303. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0011_alter_task_created_and_more.py +0 -0
  304. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0012_alter_process_data_alter_task_data.py +0 -0
  305. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0013_process_seed_content_type_process_seed_object_id_and_more.py +0 -0
  306. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0014_alter_process_parent_task.py +0 -0
  307. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/__init__.py +0 -0
  308. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/nodes/__init__.py +0 -0
  309. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/nodes/end.py +0 -0
  310. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/nodes/func.py +0 -0
  311. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/nodes/handle.py +0 -0
  312. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/nodes/if_gate.py +0 -0
  313. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/nodes/job.py +0 -0
  314. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/nodes/join.py +0 -0
  315. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/nodes/mixins.py +0 -0
  316. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/nodes/obsolete.py +0 -0
  317. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/nodes/split.py +0 -0
  318. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/nodes/start.py +0 -0
  319. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/nodes/switch.py +0 -0
  320. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/nodes/view.py +0 -0
  321. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/signals.py +0 -0
  322. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/status.py +0 -0
  323. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/token.py +0 -0
  324. {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/utils.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: django-viewflow
3
- Version: 2.2.7
3
+ Version: 2.2.10
4
4
  Summary: Reusable library to build business applications fast
5
5
  Author: Mikhail Podgurskiy
6
6
  Author-email: kmmbvnr@gmail.com
@@ -13,21 +13,32 @@ Classifier: Operating System :: OS Independent
13
13
  Classifier: Framework :: Django
14
14
  Classifier: Framework :: Django :: 4.2
15
15
  Classifier: Framework :: Django :: 5.0
16
+ Classifier: Framework :: Django :: 5.1
17
+ Classifier: Framework :: Django :: 5.2
16
18
  Classifier: Programming Language :: Python :: 3
17
19
  Classifier: Programming Language :: Python :: 3 :: Only
18
- Classifier: Programming Language :: Python :: 3.8
19
- Classifier: Programming Language :: Python :: 3.9
20
20
  Classifier: Programming Language :: Python :: 3.10
21
21
  Classifier: Programming Language :: Python :: 3.11
22
22
  Classifier: Programming Language :: Python :: 3.12
23
23
  Classifier: Programming Language :: Python :: 3.13
24
24
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
25
25
  Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
26
- Requires-Python: >=3.8
26
+ Requires-Python: >=3.10
27
27
  Description-Content-Type: text/markdown
28
28
  License-File: LICENSE
29
29
  Requires-Dist: Django>=4.2
30
30
  Requires-Dist: django-filter>=2.3.0
31
+ Dynamic: author
32
+ Dynamic: author-email
33
+ Dynamic: classifier
34
+ Dynamic: description
35
+ Dynamic: description-content-type
36
+ Dynamic: keywords
37
+ Dynamic: license
38
+ Dynamic: license-file
39
+ Dynamic: requires-dist
40
+ Dynamic: requires-python
41
+ Dynamic: summary
31
42
 
32
43
  # Viewflow
33
44
 
@@ -218,6 +229,60 @@ modifications of Viewflow. You can find the commercial license terms in
218
229
 
219
230
  ## Changelog
220
231
 
232
+ ## 2.3.0 GIT Version
233
+
234
+ - Added FormAjaxCompleteMixin, FormDependentSelectMixin to default create and update workflow process views
235
+ - Extended patterns demo with user resources allocation samples https://demo.viewflow.io/patterns/resource_allocation/
236
+
237
+ ### 2.2.9 2025-01-08
238
+
239
+ - Enhanced validation for flow_refs and task_refs to ensure accuracy and consistency.
240
+ - Resolved an issue with canceling processes containing revived tasks.
241
+ - Corrected the password reset confirmation email template for better functionality.
242
+ - Fixed multipart form type detection for forms with file fields in formsets.
243
+
244
+
245
+ ### 2.2.8 2024-10-04
246
+
247
+ - Prevent exceptions from being raised by Process/Task models when a flow class
248
+ is deleted but still referenced in the database.
249
+ - Fix serialization issue with jsonstore.DecimalField.
250
+ - Add missing 'index' view for celery.Task node.
251
+ - Enable recovery of flow.Subprocess and flow.NSubprocess nodes from error state.
252
+ - Correct invalid typing for FSM conditions.
253
+ - Allow setting permission=None in the FSM @transition decorator to explicitly bypass permission checks.
254
+ - Add support for MultiValueField and django-money fields form rendering
255
+
256
+
257
+ ### 2.2.7 2024-08-16
258
+
259
+ - Added compatibility fix for Python 3.8.
260
+ - Extend documentation with data management explanation - https://docs.viewflow.io/workflow/data_flow.html
261
+ - Expanded documentation to cover permission management - https://docs.viewflow.io/workflow/permissions.html
262
+ - Introduced an experimental JSONEditorWidget.
263
+ - Fixed issue with saving the state of revived tasks.
264
+ - Enabled the option to cancel If tasks.
265
+ - Updated default FSM state change in FlowViewsMixin to now use transaction.atomic.
266
+ - Added support for using DependentModelSelect in formsets.
267
+ - Enabled AjaxModelSelect to function as a dependency for DependentModelSelect
268
+ - Corrected typo in the deletion success message.
269
+ - Test under django 5.1
270
+
271
+ ### 2.2.6 2024-08-04
272
+
273
+ - Resolved the flow.If condition's this reference during class construction.
274
+ - Improved error handling when a Celery task finishes.
275
+ - Fixed an issue where errors occurring in a task after a successful celery.Job
276
+ task incorrectly prevented the job task from being marked as completed, with
277
+ the errored task correctly put into an error state.
278
+ - Redirect to the next process task now will take into account tasks in the ERROR state
279
+ - Add ability to revive flow.Function and flow.SplitFirst
280
+ - Fixed an error that occurred when a deleted process.artifact was referenced in
281
+ the process field data listing within templates.
282
+ - Allow to cancel Subprocess tasks
283
+ - Allow to cancel Function tasks
284
+ - Allow custom task models inherited from AbstactTask have no .seed and .data fields
285
+
221
286
  ### 2.2.5 2024-07-17
222
287
 
223
288
  - The 'pattern' widget attribute is now passed to the underlying form input.
@@ -1,34 +1,3 @@
1
- Metadata-Version: 2.1
2
- Name: django-viewflow
3
- Version: 2.2.7
4
- Summary: Reusable library to build business applications fast
5
- Author: Mikhail Podgurskiy
6
- Author-email: kmmbvnr@gmail.com
7
- License: AGPL
8
- Keywords: django,admin,workflow,fsm,bpm,bpmn
9
- Classifier: Development Status :: 5 - Production/Stable
10
- Classifier: Intended Audience :: Developers
11
- Classifier: Natural Language :: English
12
- Classifier: Operating System :: OS Independent
13
- Classifier: Framework :: Django
14
- Classifier: Framework :: Django :: 4.2
15
- Classifier: Framework :: Django :: 5.0
16
- Classifier: Programming Language :: Python :: 3
17
- Classifier: Programming Language :: Python :: 3 :: Only
18
- Classifier: Programming Language :: Python :: 3.8
19
- Classifier: Programming Language :: Python :: 3.9
20
- Classifier: Programming Language :: Python :: 3.10
21
- Classifier: Programming Language :: Python :: 3.11
22
- Classifier: Programming Language :: Python :: 3.12
23
- Classifier: Programming Language :: Python :: 3.13
24
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
25
- Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
26
- Requires-Python: >=3.8
27
- Description-Content-Type: text/markdown
28
- License-File: LICENSE
29
- Requires-Dist: Django>=4.2
30
- Requires-Dist: django-filter>=2.3.0
31
-
32
1
  # Viewflow
33
2
 
34
3
  **The low-code for developers with yesterday's deadline**
@@ -218,6 +187,60 @@ modifications of Viewflow. You can find the commercial license terms in
218
187
 
219
188
  ## Changelog
220
189
 
190
+ ## 2.3.0 GIT Version
191
+
192
+ - Added FormAjaxCompleteMixin, FormDependentSelectMixin to default create and update workflow process views
193
+ - Extended patterns demo with user resources allocation samples https://demo.viewflow.io/patterns/resource_allocation/
194
+
195
+ ### 2.2.9 2025-01-08
196
+
197
+ - Enhanced validation for flow_refs and task_refs to ensure accuracy and consistency.
198
+ - Resolved an issue with canceling processes containing revived tasks.
199
+ - Corrected the password reset confirmation email template for better functionality.
200
+ - Fixed multipart form type detection for forms with file fields in formsets.
201
+
202
+
203
+ ### 2.2.8 2024-10-04
204
+
205
+ - Prevent exceptions from being raised by Process/Task models when a flow class
206
+ is deleted but still referenced in the database.
207
+ - Fix serialization issue with jsonstore.DecimalField.
208
+ - Add missing 'index' view for celery.Task node.
209
+ - Enable recovery of flow.Subprocess and flow.NSubprocess nodes from error state.
210
+ - Correct invalid typing for FSM conditions.
211
+ - Allow setting permission=None in the FSM @transition decorator to explicitly bypass permission checks.
212
+ - Add support for MultiValueField and django-money fields form rendering
213
+
214
+
215
+ ### 2.2.7 2024-08-16
216
+
217
+ - Added compatibility fix for Python 3.8.
218
+ - Extend documentation with data management explanation - https://docs.viewflow.io/workflow/data_flow.html
219
+ - Expanded documentation to cover permission management - https://docs.viewflow.io/workflow/permissions.html
220
+ - Introduced an experimental JSONEditorWidget.
221
+ - Fixed issue with saving the state of revived tasks.
222
+ - Enabled the option to cancel If tasks.
223
+ - Updated default FSM state change in FlowViewsMixin to now use transaction.atomic.
224
+ - Added support for using DependentModelSelect in formsets.
225
+ - Enabled AjaxModelSelect to function as a dependency for DependentModelSelect
226
+ - Corrected typo in the deletion success message.
227
+ - Test under django 5.1
228
+
229
+ ### 2.2.6 2024-08-04
230
+
231
+ - Resolved the flow.If condition's this reference during class construction.
232
+ - Improved error handling when a Celery task finishes.
233
+ - Fixed an issue where errors occurring in a task after a successful celery.Job
234
+ task incorrectly prevented the job task from being marked as completed, with
235
+ the errored task correctly put into an error state.
236
+ - Redirect to the next process task now will take into account tasks in the ERROR state
237
+ - Add ability to revive flow.Function and flow.SplitFirst
238
+ - Fixed an error that occurred when a deleted process.artifact was referenced in
239
+ the process field data listing within templates.
240
+ - Allow to cancel Subprocess tasks
241
+ - Allow to cancel Function tasks
242
+ - Allow custom task models inherited from AbstactTask have no .seed and .data fields
243
+
221
244
  ### 2.2.5 2024-07-17
222
245
 
223
246
  - The 'pattern' widget attribute is now passed to the underlying form input.
@@ -1,3 +1,45 @@
1
+ Metadata-Version: 2.4
2
+ Name: django-viewflow
3
+ Version: 2.2.10
4
+ Summary: Reusable library to build business applications fast
5
+ Author: Mikhail Podgurskiy
6
+ Author-email: kmmbvnr@gmail.com
7
+ License: AGPL
8
+ Keywords: django,admin,workflow,fsm,bpm,bpmn
9
+ Classifier: Development Status :: 5 - Production/Stable
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: Natural Language :: English
12
+ Classifier: Operating System :: OS Independent
13
+ Classifier: Framework :: Django
14
+ Classifier: Framework :: Django :: 4.2
15
+ Classifier: Framework :: Django :: 5.0
16
+ Classifier: Framework :: Django :: 5.1
17
+ Classifier: Framework :: Django :: 5.2
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3 :: Only
20
+ Classifier: Programming Language :: Python :: 3.10
21
+ Classifier: Programming Language :: Python :: 3.11
22
+ Classifier: Programming Language :: Python :: 3.12
23
+ Classifier: Programming Language :: Python :: 3.13
24
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
25
+ Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
26
+ Requires-Python: >=3.10
27
+ Description-Content-Type: text/markdown
28
+ License-File: LICENSE
29
+ Requires-Dist: Django>=4.2
30
+ Requires-Dist: django-filter>=2.3.0
31
+ Dynamic: author
32
+ Dynamic: author-email
33
+ Dynamic: classifier
34
+ Dynamic: description
35
+ Dynamic: description-content-type
36
+ Dynamic: keywords
37
+ Dynamic: license
38
+ Dynamic: license-file
39
+ Dynamic: requires-dist
40
+ Dynamic: requires-python
41
+ Dynamic: summary
42
+
1
43
  # Viewflow
2
44
 
3
45
  **The low-code for developers with yesterday's deadline**
@@ -187,6 +229,60 @@ modifications of Viewflow. You can find the commercial license terms in
187
229
 
188
230
  ## Changelog
189
231
 
232
+ ## 2.3.0 GIT Version
233
+
234
+ - Added FormAjaxCompleteMixin, FormDependentSelectMixin to default create and update workflow process views
235
+ - Extended patterns demo with user resources allocation samples https://demo.viewflow.io/patterns/resource_allocation/
236
+
237
+ ### 2.2.9 2025-01-08
238
+
239
+ - Enhanced validation for flow_refs and task_refs to ensure accuracy and consistency.
240
+ - Resolved an issue with canceling processes containing revived tasks.
241
+ - Corrected the password reset confirmation email template for better functionality.
242
+ - Fixed multipart form type detection for forms with file fields in formsets.
243
+
244
+
245
+ ### 2.2.8 2024-10-04
246
+
247
+ - Prevent exceptions from being raised by Process/Task models when a flow class
248
+ is deleted but still referenced in the database.
249
+ - Fix serialization issue with jsonstore.DecimalField.
250
+ - Add missing 'index' view for celery.Task node.
251
+ - Enable recovery of flow.Subprocess and flow.NSubprocess nodes from error state.
252
+ - Correct invalid typing for FSM conditions.
253
+ - Allow setting permission=None in the FSM @transition decorator to explicitly bypass permission checks.
254
+ - Add support for MultiValueField and django-money fields form rendering
255
+
256
+
257
+ ### 2.2.7 2024-08-16
258
+
259
+ - Added compatibility fix for Python 3.8.
260
+ - Extend documentation with data management explanation - https://docs.viewflow.io/workflow/data_flow.html
261
+ - Expanded documentation to cover permission management - https://docs.viewflow.io/workflow/permissions.html
262
+ - Introduced an experimental JSONEditorWidget.
263
+ - Fixed issue with saving the state of revived tasks.
264
+ - Enabled the option to cancel If tasks.
265
+ - Updated default FSM state change in FlowViewsMixin to now use transaction.atomic.
266
+ - Added support for using DependentModelSelect in formsets.
267
+ - Enabled AjaxModelSelect to function as a dependency for DependentModelSelect
268
+ - Corrected typo in the deletion success message.
269
+ - Test under django 5.1
270
+
271
+ ### 2.2.6 2024-08-04
272
+
273
+ - Resolved the flow.If condition's this reference during class construction.
274
+ - Improved error handling when a Celery task finishes.
275
+ - Fixed an issue where errors occurring in a task after a successful celery.Job
276
+ task incorrectly prevented the job task from being marked as completed, with
277
+ the errored task correctly put into an error state.
278
+ - Redirect to the next process task now will take into account tasks in the ERROR state
279
+ - Add ability to revive flow.Function and flow.SplitFirst
280
+ - Fixed an error that occurred when a deleted process.artifact was referenced in
281
+ the process field data listing within templates.
282
+ - Allow to cancel Subprocess tasks
283
+ - Allow to cancel Function tasks
284
+ - Allow custom task models inherited from AbstactTask have no .seed and .data fields
285
+
190
286
  ### 2.2.5 2024-07-17
191
287
 
192
288
  - The 'pattern' widget attribute is now passed to the underlying form input.
@@ -4,7 +4,7 @@ README = open("README.md", "r", encoding="utf-8").read()
4
4
 
5
5
  setuptools.setup(
6
6
  name="django-viewflow",
7
- version="2.2.7",
7
+ version="2.2.10",
8
8
  author_email="kmmbvnr@gmail.com",
9
9
  author="Mikhail Podgurskiy",
10
10
  description="Reusable library to build business applications fast",
@@ -16,7 +16,7 @@ setuptools.setup(
16
16
  long_description_content_type="text/markdown",
17
17
  long_description=README,
18
18
  packages=setuptools.find_packages(exclude=["tests*"]),
19
- python_requires=">=3.8",
19
+ python_requires=">=3.10",
20
20
  zip_safe=False,
21
21
  classifiers=[
22
22
  "Development Status :: 5 - Production/Stable",
@@ -26,10 +26,10 @@ setuptools.setup(
26
26
  "Framework :: Django",
27
27
  "Framework :: Django :: 4.2",
28
28
  "Framework :: Django :: 5.0",
29
+ "Framework :: Django :: 5.1",
30
+ "Framework :: Django :: 5.2",
29
31
  "Programming Language :: Python :: 3",
30
32
  "Programming Language :: Python :: 3 :: Only",
31
- "Programming Language :: Python :: 3.8",
32
- "Programming Language :: Python :: 3.9",
33
33
  "Programming Language :: Python :: 3.10",
34
34
  "Programming Language :: Python :: 3.11",
35
35
  "Programming Language :: Python :: 3.12",
@@ -12,7 +12,7 @@ from __future__ import annotations
12
12
  import inspect
13
13
  from typing import Any, Dict, Mapping, Iterable, List, Type, Optional
14
14
  from viewflow.this_object import ThisObject
15
- from viewflow.utils import MARKER
15
+ from viewflow.utils import DEFAULT, MARKER
16
16
  from .typing import (
17
17
  UserModel,
18
18
  Condition,
@@ -36,10 +36,10 @@ class Transition:
36
36
  self,
37
37
  func: TransitionFunction,
38
38
  source: StateValue,
39
- target: Optional[StateValue],
39
+ target: Optional[StateValue] = DEFAULT,
40
40
  label: Optional[str] = None,
41
41
  conditions: Optional[List[Condition]] = None,
42
- permission: Optional[Permission] = None,
42
+ permission: Optional[Permission] = DEFAULT,
43
43
  custom: Optional[Dict] = None,
44
44
  ): # noqa D102
45
45
  self.func = func
@@ -56,6 +56,9 @@ class Transition:
56
56
  def __str__(self) -> str:
57
57
  return f"{self.label} Transition"
58
58
 
59
+ def __lt__(self, other) -> bool:
60
+ return self.label < other.label
61
+
59
62
  @property
60
63
  def label(self) -> str:
61
64
  """Return the human-readable label for the transition."""
@@ -86,8 +89,10 @@ class Transition:
86
89
 
87
90
  def has_perm(self, instance: object, user: UserModel) -> bool:
88
91
  """Checks if the given user has permission to perform this transition."""
92
+ if self.permission is DEFAULT:
93
+ return False # Protected by default
89
94
  if self.permission is None:
90
- return False # No permission required
95
+ return True # Explicitly allowed to any
91
96
  elif callable(self.permission):
92
97
  return self.permission(instance, user)
93
98
  elif isinstance(self.permission, ThisObject):
@@ -159,7 +164,7 @@ class TransitionBoundMethod:
159
164
  )
160
165
 
161
166
  self.target_state = transition.target
162
- if self.target_state:
167
+ if self.target_state is not DEFAULT:
163
168
  self.parent._state.set(self.parent._instance, self.target_state)
164
169
 
165
170
  def __exit__(
@@ -407,10 +412,10 @@ class State:
407
412
  def transition(
408
413
  self,
409
414
  source: StateValue,
410
- target: Optional[StateValue] = None,
415
+ target: Optional[StateValue] = DEFAULT,
411
416
  label: Optional[str] = None,
412
417
  conditions: Optional[List[Condition]] = None,
413
- permission: Optional[Permission] = None,
418
+ permission: Optional[Permission] = DEFAULT,
414
419
  custom: Optional[Dict] = None,
415
420
  ) -> Any:
416
421
  """Decorator to mark a method as a state transition."""
@@ -5,19 +5,19 @@
5
5
  # 'COMM_LICENSE', which is part of this source code package.
6
6
 
7
7
  from enum import Enum
8
- from typing import List, Set, Tuple
8
+ from typing import List, Set, Tuple, Union
9
9
  from django.db.models import Choices
10
10
  from .base import State, StateDescriptor, Transition
11
11
  from .typing import StateValue
12
12
 
13
13
 
14
- def get_state_name(state_value):
14
+ def get_state_name(state_value: StateValue) -> str:
15
15
  if isinstance(state_value, Enum):
16
16
  return str(state_value.value)
17
17
  return str(state_value)
18
18
 
19
19
 
20
- def get_state_label(state_value):
20
+ def get_state_label(state_value: StateValue) -> str:
21
21
  if isinstance(state_value, Choices):
22
22
  return state_value.label
23
23
  elif isinstance(state_value, Enum):
@@ -13,7 +13,7 @@ if TYPE_CHECKING:
13
13
 
14
14
  UserModel = Any
15
15
  StateValue = Any
16
- Condition = Union[ThisObject, Callable[[object, object], bool]]
16
+ Condition = Union[ThisObject, Callable[[object], bool]]
17
17
  Permission = Union[ThisObject, Callable[[object, Any], bool]]
18
18
  StateTransitions = Mapping["TransitionMethod", List["Transition"]]
19
19
  TransitionFunction = Callable[..., Any]
@@ -8,6 +8,7 @@
8
8
  import copy
9
9
  import json
10
10
  from datetime import date, datetime
11
+ from decimal import Decimal
11
12
  from functools import partialmethod
12
13
 
13
14
  from django.core.exceptions import FieldError
@@ -190,7 +191,13 @@ class DateTimeField(JSONFieldMixin, fields.DateTimeField):
190
191
 
191
192
 
192
193
  class DecimalField(JSONFieldMixin, fields.DecimalField):
193
- pass
194
+ def to_json(self, value):
195
+ if value is not None:
196
+ return str(value)
197
+
198
+ def from_json(self, value):
199
+ if value is not None:
200
+ return Decimal(value)
194
201
 
195
202
 
196
203
  class EmailField(JSONFieldMixin, fields.EmailField):