app.views module¶
- app.views.accountSetting(request: HttpRequest)[源代码]¶
- app.views.forgetPassword(request: HttpRequest)[源代码]¶
忘记密码页(Pylance可以提供文档字符串支持)
页面效果¶
根据(邮箱)验证码完成登录,提交后跳转到修改密码界面
本质是登录而不是修改密码
如果改成支持验证码登录只需修改页面和跳转(记得修改函数和页面名)
页面逻辑¶
- 发送验证码
1.5 验证码冷却避免多次发送
- 输入验证码
2.5 保留表单信息
错误提醒和邮件发送提醒
实现逻辑¶
通过脚本使按钮提供不同的`send_captcha`值,区分按钮
通过脚本实现验证码冷却,页面刷新后重置冷却(避免过长等待影响体验)
通过`session`保证安全传输验证码和待验证用户
成功发送/登录后才在`session`中记录信息
- 页面模板中实现消息提醒
消息提示现在与整体统一
添加`alert`表示需要提醒
添加`noshow`不在页面显示文字
尝试发送验证码后总是弹出提示框,通知用户验证码的发送情况
注意事项¶
- 尝试忘记密码的不一定是本人,一定要做好隐私和逻辑处理
用户邮箱应当部分打码,避免向非本人提供隐私数据!
连接设置的timeout为6s
如果引入企业微信验证,建议将send_captcha分为'qywx'和'email'
- app.views.freshman(request: HttpRequest)[源代码]¶
- app.views.homepage(request: HttpRequest)[源代码]¶
- app.views.miniLogin(request: HttpRequest)[源代码]¶
- app.views.modpw(request: HttpRequest)[源代码]¶
可能在三种情况进入这个页面:首次登陆;忘记密码;或者常规的修改密码。 在忘记密码时,可以允许不输入旧的密码 在首次登陆时,现在写的也可以不输入旧的密码(我还没想好这样合不合适)
以上两种情况都可以直接进行密码修改
常规修改要审核旧的密码
- app.views.notifications(request: HttpRequest)[源代码]¶
- app.views.orginfo(request: HttpRequest)[源代码]¶
orginfo负责呈现小组主页,逻辑和stuinfo是一样的,可以参考 只区分自然人和法人,不区分自然人里的负责人和非负责人。任何自然人看这个小组界面都是【不可管理/编辑小组信息】
- app.views.requestLoginOrg(request: HttpRequest)[源代码]¶
这个函数的逻辑是,个人账户点击左侧的管理小组直接跳转登录到小组账户 首先检查登录的user是个人账户,否则直接跳转orginfo 如果个人账户对应的是name对应的小组的最高权限人,那么允许登录,否则跳转回stuinfo并warning
- app.views.saveSubscribeStatus(request: HttpRequest)[源代码]¶
- app.views.search(request: HttpRequest)[源代码]¶
搜索界面的呈现逻辑 分成搜索个人和搜索小组两个模块,每个模块的呈现独立开,有内容才呈现,否则不显示 搜索个人:
支持使用姓名搜索,支持对未设为不可见的昵称和专业搜索 搜索结果的呈现采用内容/未公开表示,所有列表为people_filed
- 搜索小组
支持使用小组名、小组类型搜索、一级负责人姓名 小组的呈现内容由拓展表体现,不在这个界面呈现具体成员 add by syb: 支持通过小组名、小组类型来搜索小组 支持通过公开关系的个人搜索小组,即如果某自然人用户可以被上面的人员搜索检出, 而且该用户选择公开其与小组的关系,那么该小组将在搜索界面呈现。 搜索结果的呈现内容见organization_field
- 搜索活动
支持通过活动名、小组来搜索活动。只要可以搜索到小组,小组对应的活动就也可以被搜到 搜索结果的呈现见activity_field
- app.views.shiftAccount(request: HttpRequest)[源代码]¶
- app.views.stuinfo(request: HttpRequest)[源代码]¶
进入到这里的逻辑: 首先必须登录,并且不是超级账户 如果name是空
如果是个人账户,那么就自动跳转个人主页"/stuinfo/?name=myname" 如果是小组账户,那么自动跳转welcome
- 如果name非空但是找不到对应的对象
自动跳转到welcome
- 如果name有明确的对象
- 如果不重名
如果是自己,那么呈现并且有左边栏 如果不是自己或者自己是小组,那么呈现并且没有侧边栏
- 如果重名
那么期望有一个"+"在name中,如果搜不到就跳转到Search/?Query=name让他跳转去
- app.views.subscribeOrganization(request: HttpRequest)[源代码]¶
- app.views.userAgreement(request: HttpRequest)[源代码]¶