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.
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/PKG-INFO +70 -5
- django_viewflow-2.2.7/django_viewflow.egg-info/PKG-INFO → django_viewflow-2.2.10/README.md +54 -31
- django_viewflow-2.2.7/README.md → django_viewflow-2.2.10/django_viewflow.egg-info/PKG-INFO +96 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/setup.py +4 -4
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/fsm/base.py +12 -7
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/fsm/chart.py +3 -3
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/fsm/typing.py +1 -1
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/jsonstore.py +8 -1
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/css/viewflow.min.css +1 -1
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/viewflow.min.js +37 -37
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/viewflow.min.js.map +1 -1
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/registration/password_reset_confirm.html +1 -1
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/urls/base.py +3 -4
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/urls/sites.py +2 -2
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/utils.py +4 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/views/base.py +3 -2
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/views/create.py +17 -3
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/views/update.py +17 -3
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/base.py +1 -1
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/fields.py +22 -6
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/flow/mixins.py +8 -6
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/flow/nodes.py +20 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/flow/views/create.py +5 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/flow/views/update.py +5 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/models.py +6 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/LICENSE +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/LICENSE_EXCEPTION +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/MANIFEST.in +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/django_viewflow.egg-info/SOURCES.txt +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/django_viewflow.egg-info/dependency_links.txt +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/django_viewflow.egg-info/not-zip-safe +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/django_viewflow.egg-info/requires.txt +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/django_viewflow.egg-info/top_level.txt +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/setup.cfg +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/tests/test_middleware.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/tests/test_templates.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/tests/test_templatetags__viewflow.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/tests/test_this_object.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/tests/test_urls__base.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/tests/test_utils__package.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/__init__.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/apps.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/conf.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/contrib/__init__.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/contrib/admin/__init__.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/contrib/admin/apps.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/contrib/auth.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/contrib/plotly/__init__.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/contrib/plotly/material.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/contrib/plotly/views.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/contrib/plotly/viewset.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/fields.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/forms/__init__.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/forms/renderers.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/fsm/__init__.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/fsm/admin.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/fsm/views.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/fsm/viewset.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/de/LC_MESSAGES/django.mo +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/de/LC_MESSAGES/django.po +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/es/LC_MESSAGES/django.mo +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/es/LC_MESSAGES/django.po +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/fr/LC_MESSAGES/django.mo +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/fr/LC_MESSAGES/django.po +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/it/LC_MESSAGES/django.mo +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/it/LC_MESSAGES/django.po +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/ja/LC_MESSAGES/django.mo +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/ja/LC_MESSAGES/django.po +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/kk/LC_MESSAGES/django.mo +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/kk/LC_MESSAGES/django.po +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/ko/LC_MESSAGES/django.mo +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/ko/LC_MESSAGES/django.po +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/pt/LC_MESSAGES/django.mo +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/pt/LC_MESSAGES/django.po +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/ru/LC_MESSAGES/django.mo +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/ru/LC_MESSAGES/django.po +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/sr/LC_MESSAGES/django.mo +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/sr/LC_MESSAGES/django.po +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/locale/zh_Hans/LC_MESSAGES/django.po +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/management/__init__.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/management/commands/__init__.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/management/commands/flowexport.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/middleware.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/css/perfect-scrollbar.css +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/css/trix.css +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/css/vis-network.min.css +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/material-icons/material-icons-outlined.woff +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/material-icons/material-icons-outlined.woff2 +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/material-icons/material-icons-round.woff +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/material-icons/material-icons-round.woff2 +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/material-icons/material-icons-sharp.woff +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/material-icons/material-icons-sharp.woff2 +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/material-icons/material-icons-two-tone.woff +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/material-icons/material-icons-two-tone.woff2 +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/material-icons/material-icons.css +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/material-icons/material-icons.woff +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/material-icons/material-icons.woff2 +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-Black.woff +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-Black.woff2 +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-BlackItalic.woff +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-BlackItalic.woff2 +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-Bold.woff +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-Bold.woff2 +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-BoldItalic.woff +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-BoldItalic.woff2 +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-Light.woff +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-Light.woff2 +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-LightItalic.woff +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-LightItalic.woff2 +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-Medium.woff +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-Medium.woff2 +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-MediumItalic.woff +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-MediumItalic.woff2 +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-Regular.woff +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-Regular.woff2 +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-RegularItalic.woff +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-RegularItalic.woff2 +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-Thin.woff +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-Thin.woff2 +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-ThinItalic.woff +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/Roboto-ThinItalic.woff2 +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/roboto/roboto-fontface.css +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/simple-icons/SimpleIcons.eot +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/simple-icons/SimpleIcons.otf +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/simple-icons/SimpleIcons.ttf +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/simple-icons/SimpleIcons.woff +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/simple-icons/SimpleIcons.woff2 +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/simple-icons/simple-icons.css +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/fonts/simple-icons/simple-icons.min.css +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/img/favicon.png +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/img/user.png +0 -0
- {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
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dash_table/async-export.js +0 -0
- {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
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dash_table/async-export.js.map +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dash_table/async-highlight.js +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dash_table/async-highlight.js.map +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dash_table/async-table.js +0 -0
- {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
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dash_table/async-table.js.map +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dash_table/bundle.js +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dash_table/bundle.js.map +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-datepicker.js +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-datepicker.js.map +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-dropdown.js +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-dropdown.js.LICENSE.txt +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-dropdown.js.map +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-graph.js +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-graph.js.LICENSE.txt +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-graph.js.map +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-highlight.js +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-highlight.js.map +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-markdown.js +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-markdown.js.LICENSE.txt +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-markdown.js.map +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-plotlyjs.js +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-plotlyjs.js.LICENSE.txt +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-slider.js +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-slider.js.LICENSE.txt +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-slider.js.map +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-upload.js +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/async-upload.js.map +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/dash_core_components-shared.js +0 -0
- {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
- {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
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/dash_core_components.js +0 -0
- {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
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/dash_core_components.js.map +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/dcc/plotly.min.js +0 -0
- {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
- {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
- {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
- {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
- {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
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/contrib/dash/html/dash_html_components.min.js +0 -0
- {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
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/perfect-scrollbar.min.js +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/perfect-scrollbar.min.js.map +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/smartcrop.js +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/trix.js +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/turbo.es2017-umd.js +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/vis-network.min.js +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/static/viewflow/js/vis-network.min.js.map +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/400.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/403.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/404.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/500.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/admin/fsm_change_form.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/admin/fsm_change_form_object_tools.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/admin/fsm_change_list.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/admin/fsm_transition_form.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/formtools/wizard/wizard_form.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/registration/logged_out.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/registration/login.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/registration/password_change_done.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/registration/password_change_form.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/registration/password_reset_complete.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/registration/password_reset_done.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/registration/password_reset_form.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/registration/profile.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/registration/provider_list.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/base.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/base_lockscreen.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/base_page.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/contrib/import_export/export_action.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/contrib/import_export/import_action.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/contrib/plotly.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/contrib/swagger.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/includes/app_menu.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/includes/list_bulk_actions.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/includes/list_filter.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/includes/list_pagination.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/includes/object_detail_card.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/includes/site_menu.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/includes/snackbar.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/includes/view_action_menu.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/includes/viewflow_css.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/includes/viewflow_js.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/material/circular_progress.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/views/confirm_delete.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/views/delete_action.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/views/detail.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/views/form.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/views/list.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/views/transition.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/assign.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/base_page.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/celery_task_detail.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/flow_menu.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/graph.bpmn +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/graph.svg +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/process_cancel.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/process_dashboard.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/process_data.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/process_detail.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/process_list.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/process_tasks_list.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/start.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/task.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/task_assign.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/task_base.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/task_cancel.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/task_data.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/task_detail.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/task_list.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/task_revive.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/task_unassign.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/task_undo.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/tasks_assign.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/tasks_unassign.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/workflow_menu.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templates/viewflow/workflow/workflow_tasks_list.html +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templatetags/__init__.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templatetags/fsm.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templatetags/viewflow.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/templatetags/workflow.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/this_object.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/urls/__init__.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/urls/model.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/views/__init__.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/views/actions.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/views/delete.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/views/detail.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/views/filters.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/views/list.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/views/search.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/__init__.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/activation.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/admin.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/apps.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/chart.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/context.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/exceptions.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/flow/__init__.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/flow/utils.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/flow/views/__init__.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/flow/views/actions.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/flow/views/chart.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/flow/views/dashboard.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/flow/views/detail.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/flow/views/filters.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/flow/views/list.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/flow/views/mixins.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/flow/viewset.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/lock.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/managers.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0001_initial.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0002_fsmchange.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0003_task_owner_permission_change.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0004_extend_fields_length.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0004_subprocess.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0005_merge.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0005_rename_flowcls.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0006_i18n.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0006_merge.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0007_owner_permission_obj.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0007_task_assigned.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0008_jsonfield_and_artifact.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0008_merge.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0009_merge.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0010_viewflow20.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0011_alter_task_created_and_more.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0012_alter_process_data_alter_task_data.py +0 -0
- {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
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/0014_alter_process_parent_task.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/migrations/__init__.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/nodes/__init__.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/nodes/end.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/nodes/func.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/nodes/handle.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/nodes/if_gate.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/nodes/job.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/nodes/join.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/nodes/mixins.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/nodes/obsolete.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/nodes/split.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/nodes/start.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/nodes/switch.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/nodes/view.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/signals.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/status.py +0 -0
- {django_viewflow-2.2.7 → django_viewflow-2.2.10}/viewflow/workflow/token.py +0 -0
- {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
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: django-viewflow
|
|
3
|
-
Version: 2.2.
|
|
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.
|
|
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
|
+
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.
|
|
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] =
|
|
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
|
|
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] =
|
|
415
|
+
target: Optional[StateValue] = DEFAULT,
|
|
411
416
|
label: Optional[str] = None,
|
|
412
417
|
conditions: Optional[List[Condition]] = None,
|
|
413
|
-
permission: Optional[Permission] =
|
|
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
|
|
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
|
-
|
|
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):
|