No project description provided
Project description
django-workflow-engine
django-workflow
is a lightweight and reusable workflow engine for
Django applications. It enables you to better organise the business logic for
collaborating users.
Installation
pip install django-workflow-engine
Getting started
Add the application to your Django settings INSTALLED_APPS
list:
INSTALLED_APPS = [
...
"django_workflow_engine",
]
Add the built-in django-workflow-engine
view urls to your project's urls.py
as follows:
from django_workflow_engine import workflow_urls
...
urlpatterns = [
path("workflow/", workflow_urls()),
...
]
This will utilise all django-workflow-engine
built-in view classes. Default views are:
list_view=FlowListView
List of workflow instances view.view=FlowView
Workflow instance view.create_view=FlowCreateView
Create workflow view.continue_view=FlowContinueView
Workflow continuation view.diagram_view=FlowDiagramView
Workflow diagram view.
You can override any the built-in view classes with your own, for example to provide your own view classes for flow list and flow view:
urlpatterns = [
path("workflow/",
workflow_urls(
list_view=MyFlowListView,
view=MyFlowView,
),
),
]
Building your first workflow
Create a workflows.py
in your project and add your uniquely named workflows.
from django_workflow_engine import Step, Workflow
onboard_contractor = Workflow(
name="onboard_contractor",
steps=[
Step(...),
Step(...),
Step(...),
],
)
onboard_perm = Workflow(
name="onboard_perm",
steps=[
...
],
)
Add you workflows to your Django settings as follows:
DJANGO_WORKFLOWS = {
"onboard_contractor": "your_app.workflows.onboard_contractor",
"onboard_perm": "your_app.workflows.onboard_perm",
}
Each entry needs to be a valid module path where the final component is the name of your workflow class.
Finally, run the django-workflow-engine
migrations:
$ ./manage.py migrate
Pushing to PyPI
Running make build-package
will build the package into the dist/
directory
Running make push-pypi-test
will push the built package to Test PyPI
Running make push-pypi
will push the built package to PyPI
Setting up poetry for pushing to PyPI
First you will need to add the test pypy repository to your poetry config:
poetry config repositories.test-pypi https://test.pypi.org/legacy/
Then go to https://test.pypi.org/manage/account/token/ and generate a token.
Then add it to your poetry config:
poetry config pypi-token.test-pypi XXXXXXXX
Then you also need to go to https://pypi.org/manage/account/token/ to generate a token for the real PyPI.
Then add it to your poetry config:
poetry config pypi-token.pypi XXXXXXXX
Now the make commands should work as expected.
Dependencies
Settings
Running tests
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for django_workflow_engine-0.1.0rc6.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9f4e9e218821d3c8942c6072cadb48cfac943b701b91a957e4e18913403f5c8a |
|
MD5 | a0c3057c7fa11f40c18d18fda1b05c23 |
|
BLAKE2b-256 | a6ba7dc2aeb2572bc6e698ab7d34161807b0d7afe665bd1df41db4690f665514 |
Hashes for django_workflow_engine-0.1.0rc6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0d0227e66fc1e7ab30746a98d13d04a48725862d676a18c5bd92149225d70c63 |
|
MD5 | 91eac03524ae0d5a95b069e38d4bef24 |
|
BLAKE2b-256 | 4e0073de329eabe55138fd56a4ba7fc8fd01054e1a259f1ed72ab04f3dcf824a |