【问题标题】:Django Viewflow: From where to send email to user on task assignment?Django Viewflow:从哪里向任务分配的用户发送电子邮件?
【发布时间】:2018-05-28 13:17:48
【问题描述】:

当任务分配给所有者时,我需要给所有者发送电子邮件。我尝试了以下方法:

  1. Assign 接受应返回任务所有者的可调用函数。我们可以在这个可调用函数中发送电子邮件。但是如果你阅读源码,你会发现这个可调用方法被多次调用,由calc_owner函数调用。因此,如果我们在这里给用户发送电子邮件,将会发送多封电子邮件

  2. 创建一个新的 Node 方法,例如 EmailUser,并在 Assign 之后和 Next 之前调用它。但问题是,它也应该彻底一些像Assign 这样的可调用对象,以便为每个Process 调用它。但是在哪里调用这个可调用函数

这似乎是一个非常普遍的用例,但解决方案非常困难。还是我错过了什么?

【问题讨论】:

    标签: django django-viewflow


    【解决方案1】:

    此功能可以在 flow.View 的自定义子类中实现,带有自定义激活类,您可以在其中扩展 create_task 方法:

    https://github.com/viewflow/viewflow/blob/master/viewflow/flow/activation.py#L77

    approve = (
        UserTask(view.MyView)
        .onCreateEmail(template='...', recipients=....)
        .onAutoAssignEmail(template='...')
    

    )

    【讨论】:

    • onCreateEmail 如何引用使用Assign(lambda act: random(user)) 随机选择的同一用户?
    • 好的,我通过覆盖calc_owner 来添加额外的代码来发送电子邮件。
    • 正确的方法是实现自定义激活类,重写activate方法。流类节点仅代表声明性节点定义
    猜你喜欢
    • 2019-12-15
    • 2013-02-04
    • 2014-09-09
    • 2021-04-05
    • 1970-01-01
    • 2013-05-05
    • 2017-02-22
    • 2017-09-29
    • 1970-01-01
    相关资源
    最近更新 更多