app.notification_utils module

app.notification_utils.bulk_notification_create(receivers, sender, typename, title, content, URL=None, relate_instance=None, *, duplicate_behavior='ok', to_wechat: bool | dict = False)[源代码]
对于一个需要创建通知的事件,请调用该函数创建通知!

receiver: Iter[user], 对于org 或 nat_person,请自行循环生成 sender: user, 对于org 或 nat_person,使用object.get获取的 user 对象 typename: 知晓类 或 处理类 title: 请在数据表中查找相应事件类型,若找不到,直接创建一个新的choice content: 输入通知的内容 URL: 需要跳转到处理事务的页面

注意事项:

to_wechat: bool | dict 仅关键字参数 - 在线程锁或原子锁内时,不要发送 - 字典视为发送给微信的额外参数,主要是应用和发送等级,参考publish_notifications即可 duplicate_behavior: str 仅关键字参数 - 重复通知的处理行为,可选值包括: ok, fail, success, remove, report, log - 除了ok之外,这些值都会进行识别码重复检查,分别代表直接失败/成功/移除重复值/报告/记录 - 移除重复值也会进行记录 - 希望这个函数是幂等的

现在,你应该在不急于等待的时候显式调用publish_notification(s)这两个函数,

具体选择哪个取决于你创建的通知是一批类似通知还是单个通知

app.notification_utils.notification2Display(notifications: QuerySet) List[dict][源代码]

将通知转化为方便前端显示的形式

参数:

notifications (QuerySet[Notification]) -- 通知的查询集

返回:

通知的列表,其中每一项是一个包含通知具体信息的字典

返回类型:

List[dict]

app.notification_utils.notification_create(receiver: User, sender: User | None, typename, title: str, content: str, URL: str | None = None, relate_instance=None, anonymous_flag=False, *, to_wechat: bool | dict = False)[源代码]
对于一个需要创建通知的事件,请调用该函数创建通知!

receiver: user, 对于org 或 nat_person,使用object.get获取的 user 对象 sender: user, 对于org 或 nat_person,使用object.get获取的 user 对象 type: 知晓类 或 处理类 title: 请在数据表中查找相应事件类型,若找不到,直接创建一个新的choice content: 输入通知的内容 URL: 需要跳转到处理事务的页面

注意事项:

to_wechat: bool | dict 仅关键字参数 - 不要在循环中重复调用以发送,你可能需要看`bulk_notification_create` - 在线程锁或原子锁内时,也不要发送 - 若为字典,视为发送给微信的额外参数,主要是应用和发送等级,参考publish_notification即可

现在,你应该在不急于等待的时候显式调用publish_notification(s)这两个函数,

具体选择哪个取决于你创建的通知是一批类似通知还是单个通知

app.notification_utils.notification_status_change(notification_or_id: Notification | int, to_status: Status = None) dict[源代码]

调用该函数以完成一项通知。对于知晓类通知,在接收到用户点击按钮后的post表单,该函数会被调用。 对于需要完成的待处理通知,需要在对应的事务结束判断处,调用该函数。 若不给to_status传参,默认为状态翻转:已处理<->未处理,已删除保持不变

参数:
  • notification_or_id (Union[Notification, int]) -- 通知或其主键

  • to_status (Notification.Status, optional) -- 希望这条notification转变为的状态,不填为翻转, defaults to None

返回:

执行情况的信息

返回类型:

MESSAGECONTEXT