app.activity_views module

class app.activity_views.WeeklyActivitySummary(**kwargs)[源代码]

基类:ProfileTemplateView

check_summary_time(start_time: datetime, end_time: datetime) bool[源代码]

由每周活动总结新建的活动,检查开始时间早于结束时间

create_weekly_summary() tuple[int, bool][源代码]

检查是否存在一致的活动及活动合法性,若通过检查则创建活动及活动总结; 返回(activity.id, created); 若查询到一致的活动或检查不合格时抛出AssertionError

get()[源代码]
page_name: str = '每周活动总结'
post()[源代码]
prepare_get()[源代码]
prepare_post()[源代码]
template_name: str = 'activity/weekly_summary.html'
weekly_summary_base_check()[源代码]

从request.POST中获取活动信息并检查合法性 正常情况下检查出错误会抛出不含错误信息的AssertionError,不抛出ActivityException

app.activity_views.activityCenter(request: HttpRequest)[源代码]

活动信息的聚合界面 只有老师和小组才能看到,老师看到检查者是自己的,小组看到发起方是自己的

app.activity_views.activitySummary(request: HttpRequest)[源代码]
app.activity_views.addActivity(request: HttpRequest, aid=None)[源代码]

发起活动与修改活动页

页面逻辑:

该函数处理 GET, POST 两种请求,发起和修改两类操作 1. 访问 /addActivity/ 时,为创建操作,要求用户是小组; 2. 访问 /editActivity/aid 时,为编辑操作,要求用户是该活动的发起者 3. GET 请求创建活动的界面,placeholder 为 prompt 4. GET 请求编辑活动的界面,表单的 placeholder 会被修改为活动的旧值。

app.activity_views.checkinActivity(request: HttpRequest, aid=None)[源代码]
app.activity_views.examineActivity(request: HttpRequest, aid: int | str)[源代码]
app.activity_views.finishedActivityCenter(request: HttpRequest)[源代码]

之前被用为报销信息的聚合界面,现已将报销删去,留下总结图片的功能 对审核老师进行了特判

app.activity_views.getActivityInfo(request: HttpRequest)[源代码]

通过GET获得活动信息表下载链接 GET参数?activityid=id&infotype=sign[&output=id,name,gender,telephone][&format=csv|excel] GET参数?activityid=id&infotype=qrcode activity_id : 活动id infotype : sign or qrcode or 其他(以后可以拓展)

sign报名信息: output : [可选]','分隔的需要返回的的field名

[默认]id,name,gender,telephone

format[可选]csv or excel

[默认]csv

qrcode签到二维码

example: http://127.0.0.1:8000/getActivityInfo?activityid=1&infotype=sign example: http://127.0.0.1:8000/getActivityInfo?activityid=1&infotype=sign&output=id,wtf example: http://127.0.0.1:8000/getActivityInfo?activityid=1&infotype=sign&format=excel example: http://127.0.0.1:8000/getActivityInfo?activityid=1&infotype=qrcode TODO: 前端页面待对接

app.activity_views.offlineCheckinActivity(request: HttpRequest, aid)[源代码]

修改签到记录,只有举办活动的组织账号可查看和修改

参数:
  • request (HttpRequest) -- 修改请求

  • aid (int) -- 活动id

返回:

修改签到页面

返回类型:

HttpResponse

app.activity_views.viewActivity(request: HttpRequest, aid=None)[源代码]

页面逻辑: 1. 方法为 GET 时,展示一个活动的详情。

  1. 如果当前用户是个人,有立即报名/已报名的 button

  2. 如果当前用户是小组,并且是该活动的所有者,有修改和取消活动的 button

  1. 方法为 POST 时,通过 option 确定操作
    1. 如果修改活动,跳转到 addActivity

    2. 如果取消活动,本函数处理

    3. 如果报名活动,本函数处理 ( 还未实现 )

# TODO 个人操作,包括报名与取消 ---------------------------- 活动逻辑 1. 活动开始前一小时,不能修改活动 2. 活动开始当天晚上之前,不能再取消活动 ( 目前用的 12 小时,感觉基本差不多 )