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