プロセス検証を作成するために、「Django-Viewflow」ライブラリ ( http://viewflow.io/ ) を使用してワークフローを実装しています。
各タスクを特定のバリデーター (ユーザー) に固定数の検証レベルで割り当てると、すべて正常に動作します。
私の問題は次のとおりです。
バリデーターの数が動的に変化する場合 (n 検証レベル)、このライブラリを使用する方法は?
1- バリデーターを選択します (1、2、3 または n 個のバリデーター)。
2-「flows.py」で for ループを使用して、n 個の検証タスクを実行します。
ファイル「flows.py」に for ループを含めるにはどうすればよいですか?
私のflows.py:(1つの検証レベルで)
from viewflow import flow, lock
from viewflow.base import this, Flow
from viewflow.contrib import celery
from viewflow.views import ProcessView, StartProcessView
from viewflow.lock import select_for_update_lock
from django.contrib.auth import get_user_model
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response
from . import models, tasks, views
class CongeFlow(Flow):
process_cls = models.CongeProcess
lock_impl = select_for_update_lock
start = flow.Start(views.startProcess) \
.Next(this.assign) \
assign = flow.View(views.approve_conge) \
.Assign(lambda p: get_user_model().objects.get(id=p.validator1)) \
.Next(this.check_refuse)
check_refuse = flow.If(cond=lambda p: p.refuser) \
.OnTrue(this.end) \
.OnFalse(this.check_approve)
check_approve = flow.If(cond=lambda p: p.valider) \
.OnTrue(this.end) \
.OnFalse(this.assign)
end = flow.End()