ActivFlow : универсальный, легкий и расширяемый механизм рабочего процесса для гибкой разработки и автоматизации сложных операций бизнес-процессов.
Вы можете смоделировать весь рабочий процесс в кратчайшие сроки!
Шаг 1: регистрация приложения рабочего процесса
WORKFLOW_APPS = ['leave_request']
Шаг 2: настройка активности
from activflow.core.models import AbstractActivity, AbstractInitialActivity
from activflow.leave_request.validators import validate_initial_cap
class RequestInitiation(AbstractInitialActivity):
"""Leave request details"""
employee_name = CharField(
"Employee", max_length=200, validators=[validate_initial_cap])
from = DateField("From Date")
to = DateField("To Date")
reason = TextField("Purpose of Leave", blank=True)
def clean(self):
"""Custom validation logic should go here"""
pass
class ManagementApproval(AbstractActivity):
"""Management approval"""
approval_status = CharField(verbose_name="Status", max_length=3, choices=(
('APP', 'Approved'), ('REJ', 'Rejected')))
remarks = TextField("Remarks")
def clean(self):
"""Custom validation logic should go here"""
pass
Шаг3: Определение потока
FLOW = {
'initiate_request': {
'name': 'Leave Request Initiation',
'model': RequestInitiation,
'role': 'Submitter',
'transitions': {
'management_approval': validate_request,
}
},
'management_approval': {
'name': 'Management Approval',
'model': ManagementApproval,
'role': 'Approver',
'transitions': None
}
}
Шаг 4: Бизнес-правила
def validate_request(self):
return self.reason == 'Emergency'