Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openimis_be_tasks_management-1.2.0.tar.gz (18.0 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file openimis_be_tasks_management-1.2.0.tar.gz.

File metadata

File hashes

Hashes for openimis_be_tasks_management-1.2.0.tar.gz
Algorithm Hash digest
SHA256 8dab29f7637fb9097e070376b6f2fe524da061990c4ae50bf944e94067025bd4
MD5 c79ca22aab18c3b25dcf1074cee1982c
BLAKE2b-256 f5a0514d396c5ef2d78a017b4e5f37b69986a93ba8f977d19aff9ac5c3892f50

See more details on using hashes here.

File details

Details for the file openimis_be_tasks_management-1.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for openimis_be_tasks_management-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2c6ec31607e52d355097bc9cb463abd01ed3ae70c097785acbb44a0f97b670b2
MD5 e08403bef050451e87c26547d435b093
BLAKE2b-256 2cd6c17fe3aa51fd4adf8d07a2c0f9700df2a05d6637f8aa55888689113c69e4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page