The openIMIS Backend tasks_management reference module.
Project description
openIMIS Backend tasks_management reference module
This repository holds the files of the openIMIS Backend Task Managemet reference module. It is dedicated to be deployed as a module of openimis-be_py.
ORM mapping:
- task_management_task, task_management_historicaltask > Task
- task_management_taskgroup, task_management_historicaltaskgroup > TaskGroup
- task_management_taskexecutor, task_management_historicaltaskexecutor > TaskExecutor
GraphQl Queries
- task, taskGroup, taskExecutor
Services
- Task
- create
- update
- delete
- complete_task
- resolve_task
- TaskGroup
- create
- update
- delete
- TaskExecutor
- create
- update
- delete
- CheckerLogicServiceMixin
- create
- update
- delete
- on_task_complete_service_handler
Configuration options (can be changed via core.ModuleConfiguration)
- gql_task_group_search_perms: 190001
- gql_task_group_create_perms: 190002
- gql_task_group_update_perms: 190003
- gql_task_group_delete_perms: 190004
- gql_task_search_perms: 191001
- gql_task_create_perms: 191002
- gql_task_update_perms: 191003
- gql_task_delete_perms: 191004
- default_executor_event: default
openIMIS Modules Dependencies
- core
Creating execution action handlers and business event handlers
When user action specified by the task is being passed to backend, the task service sends task_service.resolve_task
signal. The approach for handler is to bind to after
signal and check the specific executor_action_event
of the
task. The same approach is used for business event handlers, being required to bind on task_service.complete_task
.
# in signals.py in any module
def bind_service_signals():
bind_service_signal(
'task_service.resolve_task',
handler_hook,
bind_type=ServiceSignalBindType.AFTER
)
def handler_hook(**kwargs):
pass
Creating tasks for BaseService implementations
CheckerLogicServiceMixin allows implementations of core.services.BaseService
to generate tasks for create, update
and delete actions. this adds create__task methods to the service, with the same API as the methods.
Additionally the on_task_complete_service_handler
service method allows to generate complete_task
handlers for
core.services.BaseService
implementations.
# In service definition
class ExampleService(BaseService, CheckerLogicServiceMixin):
...
# to create a task instead of performing create operation, instead of:
# ExampleService(user).create(data)
ExampleService(user).create_create_task(data)
`
#in signals.py (any module, but the same module as service preferred)
def bind_service_signals():
bind_service_signal(
'task_service.complete_task',
on_task_complete_service_handler(ExampleService),
bind_type=ServiceSignalBindType.AFTER
)
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 openimis_be_tasks_management-1.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0ded97f7bbadf4c97db144bb1009f4fc88f2d10361fc0a6f414450ee6a8f0eae |
|
MD5 | 324c0dd683313268320be2e5f995e574 |
|
BLAKE2b-256 | 59eff0e6de602ec6b4102636acce6dbf3b7c63dea56df5b40c51229d2800e1f3 |
Hashes for openimis_be_tasks_management-1.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3700ded95aa7012481cb5d8148f885393601d59a3cb6dada0c0b21b082848b85 |
|
MD5 | ae4e2555b5c8d0052becbb326469329e |
|
BLAKE2b-256 | 6f102231fc559730bf7f89e9a202785169b53805f1566ca4d926dec085bb40ea |