Name | django-workflow-engine JSON |
Version |
0.2.2
JSON |
| download |
home_page | None |
Summary | None |
upload_time | 2024-08-13 09:01:30 |
maintainer | None |
docs_url | None |
author | Cameron Lamb |
requires_python | <4.0,>=3.9 |
license | MIT |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Django Workflow Engine
`django-workflow-engine` 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:
```python
INSTALLED_APPS = [
...
"django_workflow_engine",
]
```
Add the built-in `django-workflow-engine` view urls to your project's `urls.py` as follows:
```python
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:
```python
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.
```python
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:
```python
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:
```bash
$ ./manage.py migrate
```
Raw data
{
"_id": null,
"home_page": null,
"name": "django-workflow-engine",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.9",
"maintainer_email": null,
"keywords": null,
"author": "Cameron Lamb",
"author_email": "cameron.lamb@digital.trade.gov.uk",
"download_url": "https://files.pythonhosted.org/packages/89/0a/b36b66b713530b9f6d4abbfe346388f3c69126583500c6520cc580ed5cea/django_workflow_engine-0.2.2.tar.gz",
"platform": null,
"description": "# Django Workflow Engine\n`django-workflow-engine` is a lightweight and reusable workflow engine for\nDjango applications. It enables you to better organise the business logic for\ncollaborating users.\n\n## Installation\n\n pip install django-workflow-engine\n\n## Getting started\nAdd the application to your Django settings `INSTALLED_APPS` list:\n\n```python\nINSTALLED_APPS = [\n ...\n \"django_workflow_engine\",\n]\n```\n\nAdd the built-in `django-workflow-engine` view urls to your project's `urls.py` as follows:\n\n\n```python\nfrom django_workflow_engine import workflow_urls\n...\nurlpatterns = [\n path(\"workflow/\", workflow_urls()),\n ...\n]\n```\n\nThis will utilise all `django-workflow-engine` built-in view classes. Default views are:\n\n- `list_view=FlowListView` List of workflow instances view.\n- `view=FlowView` Workflow instance view.\n- `create_view=FlowCreateView` Create workflow view.\n- `continue_view=FlowContinueView` Workflow continuation view.\n- `diagram_view=FlowDiagramView` Workflow diagram view.\n\nYou can override any the built-in view classes with your own, for example to\nprovide your own view classes for flow list and flow view:\n\n```python\nurlpatterns = [\n path(\"workflow/\",\n workflow_urls(\n list_view=MyFlowListView,\n view=MyFlowView,\n ),\n ),\n ]\n```\n\n## Building your first workflow\n\nCreate a `workflows.py` in your project and add your uniquely named workflows.\n\n```python\nfrom django_workflow_engine import Step, Workflow\n\nonboard_contractor = Workflow(\n name=\"onboard_contractor\",\n steps=[\n Step(...),\n Step(...),\n Step(...),\n ],\n)\n\nonboard_perm = Workflow(\n name=\"onboard_perm\",\n steps=[\n ...\n ],\n)\n```\n\nAdd you workflows to your Django settings as follows:\n\n```python\nDJANGO_WORKFLOWS = {\n \"onboard_contractor\": \"your_app.workflows.onboard_contractor\",\n \"onboard_perm\": \"your_app.workflows.onboard_perm\",\n}\n```\n\nEach entry needs to be a valid module path where the final component is the\nname of your workflow class.\n\nFinally, run the `django-workflow-engine` migrations:\n\n```bash\n$ ./manage.py migrate\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": null,
"version": "0.2.2",
"project_urls": null,
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e9677eb7fb84909bf06e1cce63157fa8d7269abaf0446a720eea74f6d814a038",
"md5": "017cc90c38089140e973727dde6b33eb",
"sha256": "763559d0c1c7fc3280b729f8f9857b944c2baf518e223a1c747b272bb691d74c"
},
"downloads": -1,
"filename": "django_workflow_engine-0.2.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "017cc90c38089140e973727dde6b33eb",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.9",
"size": 40674,
"upload_time": "2024-08-13T09:01:29",
"upload_time_iso_8601": "2024-08-13T09:01:29.384576Z",
"url": "https://files.pythonhosted.org/packages/e9/67/7eb7fb84909bf06e1cce63157fa8d7269abaf0446a720eea74f6d814a038/django_workflow_engine-0.2.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "890ab36b66b713530b9f6d4abbfe346388f3c69126583500c6520cc580ed5cea",
"md5": "2b6048a3e1c2a5f47c67941b319433d6",
"sha256": "4bb14dd3d26f15c723f25904e47f212066ebba132c71548093a6cc26551af580"
},
"downloads": -1,
"filename": "django_workflow_engine-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "2b6048a3e1c2a5f47c67941b319433d6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.9",
"size": 21264,
"upload_time": "2024-08-13T09:01:30",
"upload_time_iso_8601": "2024-08-13T09:01:30.933063Z",
"url": "https://files.pythonhosted.org/packages/89/0a/b36b66b713530b9f6d4abbfe346388f3c69126583500c6520cc580ed5cea/django_workflow_engine-0.2.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-13 09:01:30",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "django-workflow-engine"
}