app.activity_utils module

activity_utils.py

这个文件应该只被 ./activity_views.py, ./scheduler_func.py 依赖 依赖于 ./utils.py, ./wechat_send.py, ./notification_utils.py

scheduler_func 依赖于 wechat_send 依赖于 utils

文件中参数存在 activity 的函数需要在 transaction.atomic() 块中进行。 如果存在预期异常,抛出 ActivityException,否则抛出其他异常

exception app.activity_utils.ActivityException(msg)[源代码]

基类:Exception

app.activity_utils.accept_activity(request, activity)[源代码]
app.activity_utils.apply_activity(request, activity: Activity)[源代码]

这个函数在正常情况下只应该抛出提示错误信息的ActivityException

app.activity_utils.available_participants() QuerySet[源代码]

允许参与活动的人

app.activity_utils.cancel_activity(request, activity)[源代码]
app.activity_utils.changeActivityStatus(aid, cur_status, to_status)[源代码]

幂等;可能发生异常;包装器负责处理异常 必须提供cur_status,则会在转换状态前检查前后状态,每次只能变更一个阶段 即:报名中->等待中->进行中->结束 状态不符合时,抛出AssertionError

app.activity_utils.create_activity(request)[源代码]

检查活动,合法时寻找该活动,不存在时创建 返回(activity.id, created)

--- 检查不合格时抛出AssertionError - 不再假设ActivityException特定语义,暂不抛出该类异常

app.activity_utils.create_participate_infos(activity: Activity, persons: Iterable[NaturalPerson], **fields)[源代码]

批量创建一系列参与信息,并返回创建的参与信息

app.activity_utils.get_activity_QRcode(activity)[源代码]
app.activity_utils.modify_activity(request, activity)[源代码]
app.activity_utils.modify_participants(activity: Activity, new_participant_uids: list[str])[源代码]

将参与信息修改为指定的参与者,参与者已经检查合法性,暂不允许删除

app.activity_utils.notifyActivity(aid: int, msg_type: str, msg='')[源代码]
app.activity_utils.reject_activity(request, activity)[源代码]
app.activity_utils.weekly_summary_orgs() QuerySet[源代码]

允许进行每周总结的组织

app.activity_utils.withdraw_activity(request, activity: Activity)[源代码]