一个django应用程序,用于构建和使用自定义工作流。

hiworkflow的Python项目详细描述


#**欢迎使用Hi Workflow!** < BR>
欢迎使用HIWorkflow。django应用程序旨在帮助您根据自己的需要创建强大、流畅和动态的工作流。我们开始安装吧。 < BR>
**安装** < BR>
将HIWorkflow集成到项目中比以往任何时候都更容易。只需使用pip命令来运行它。 < BR>

PIP安装HIWorkflow
< BR>
要将HIWorkflow添加到Django项目中,只需在settings.py文件中添加一行即可。

已安装的应用程序=[ <… <… ……
"工作流应用程序",]

还将此语句添加到settings.py。它将有助于将库的静态文件夹包含到项目中。

staticfiles_dirs=[os.path.join(base_dir,"static")]

在同一个文件settings.py中,编辑模板变量并将以下内容添加到目录中。这将添加模板。

"目录":["模板"]

最后,将import语句添加到计划使用hiworkflow的每个文件中。 < BR>
要完成安装并包含所需的数据库表,请使用以下命令。

python manage.py makemigrations工作流应用程序
python manage.py迁移 < BR>

将这些添加到需要使用函数的每个文件中。
< BR>
来自workflowapp.createflow导入buildworkflow,buildtask

恭喜您,您已经准备好使用hi工作流了。 < BR>
定义新工作流** < BR>< BR>
35;**创建工作流**
可以使用

新建工作流=构建工作流("时间表工作流")



new_workflow=buildworkflow.create_workflow("时间表工作流")
< BR>
**添加状态**
要向工作流添加状态,

。添加状态(["新建"、"已提交"、"待批准"、"已批准"、"已拒绝"、"已完成")

add_states函数将列表作为参数。可以同时添加任意数量的状态。此外,可以在任何时候再次调用该函数以添加更多状态。唯一的限制是我们需要工作流的对象,我们需要在其中添加状态。 < BR>
**状态类型**
每个州分为两类 < BR>
*自动化
*手册 < BR>
默认情况下,每个状态都定义为手动。为了使状态自动化,我们需要编写这段代码。

。使"自动"状态(["新建"、"已提交"、"待批准"、"已批准])
< BR>
如果所有给定条件返回true,则自动状态将自动转换到下一个状态。 < BR>
**添加过渡**
要添加从一个状态到另一个状态的转换,需要发送3个参数(from_state,event_name,to_state)。运行此命令需要工作流的对象。成功执行时,它将在状态之间创建链接。

.add_transition("已提交","申请批准","等待批准")

可以添加一个可选参数(函数名),它将确保只有在函数返回true时转换才会成功。 < BR>

。添加过渡("已提交"、"申请批准"、"等待批准",检查时间表是否为空)

在上面的示例中,check_timesheet_not_empty()是一个返回布尔值的函数。如果返回值为真,则状态将从"已提交"更改为"待批准" < BR>
**添加自触发功能**
您可以添加自己的一组函数,这些函数必须在达到某个状态时立即触发。

.add_trigger('new',test_another_callback)

当任何任务达到"新"状态时,将自动调用test_another_callback()。 < BR>
定义开始状态和结束状态**
要定义工作流的开始状态和结束状态,请使用以下语法。注意:一个工作流只能有一个开始状态。根据需求,它可能有多个结束状态。

。设置"开始"状态("新建")
设置结束状态("已批准")
.设置结束状态("拒绝")
< BR>
**工作流的图形表示**
要可视化工作流,请在视图中编写以下代码。 < BR>

def可视化(请求):
返回可视化工作流(<;工作流对象>;) < BR>

**获取所有工作流名称**
调用以下函数以接收包含数据库中所有工作流名称的列表。 < BR>

列出所有工作流()
< BR>< BR>
定义新任务** < BR>
**创建任务**
要创建新任务,请使用以下语法

时间表1=buildtask(审批工作流,request.user,"employee1")

此语法将创建一个名为"employee1"的任务,该任务将使用审批工作流架构。对象时间表1将用于引用Employee1。 < BR>
**初始化任务**
要将任务初始化为其启动状态,请使用以下语法。

时间表1=时间表1.start()

**获取有关任务当前状态的详细信息**
使用buildtask的对象调用该函数,并以字符串形式返回当前状态的名称。

时间表1.获取当前状态()
< BR>
**从当前状态获取可能状态的名称**
使用buildtask的对象调用该函数,并返回可能的状态列表

时间表1.获取可能的操作()
< BR>
**获取所有打开任务的列表**
调用以下函数以接收包含所有任务名称的列表,其中is_active=true。 < BR>

<;工作流对象。获取打开任务列表()
< BR>
**获取所有已完成任务的列表**
调用以下函数接收包含所有任务名称的列表,其中is_active=false。 < BR>

<;工作流对象。获取关闭的任务列表()
< BR>
**帮助开发的其他功能** < BR>
**列出分配给用户的所有任务**
函数是全局函数,不需要调用任何对象。需要参数user_对象。要发送当前登录用户的对象,开发人员可以使用*request.user*。函数将返回字符串列表。

获取分配的任务(用户对象)

**列出用户分配的所有任务**
函数是全局函数,不需要调用任何对象。需要参数user_对象。要发送当前登录用户的对象,开发人员可以使用*request.user*。函数将返回字符串列表。

任务分配者(用户对象)

**列出用户创建的所有任务**
函数是全局函数,不需要调用任何对象。需要参数user_对象。要发送当前登录用户的对象,开发人员可以使用*request.user*。函数将返回字符串列表。 < BR>

用户任务(用户对象)
< BR>
感谢您使用HIWorkflow。 < BR>
开发人:安希特·阿加瓦尔、维沙尔·夏尔马
网址:Hashedin Technologies

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java同时读取输入流   安卓中的java短信监听   java你能帮我弄清楚如何在我的测验程序中组织数据吗?   列表中的java对   Java中的异常重复   通过SSH | Netbeans进行java远程调试   JAVAutil。扫描程序Java扫描程序在循环后读取整数失败?   用于温度转换器的构造函数java基本访问器方法   java如何将地图封装到自定义对象中   java更改布局不透明度,Progressbar除外   在REST中将java对象转换为XML时出错   java Spring引导IllegalArgumentException:找不到类[org.hibernate.cfg.ImprovedNamingStrategy]]   java Spring REST API,响应中的自定义实体字段   java数据库将null返回给布尔变量   mysql如何在java中将“'”转换为“`”