views.py 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #!/usr/bin/env python
  2. # -*- coding=UTF-8 -*-
  3. # **************************************************************************
  4. # Copyright © 2016 jianglin
  5. # File Name: views.py
  6. # Author: jianglin
  7. # Email: xiyang0807@gmail.com
  8. # Created: 2016-05-20 18:04:43 (CST)
  9. # Last Update:星期三 2016-6-15 10:19:5 (CST)
  10. # By:jianglin
  11. # Description: user setting include password , infor and privacy
  12. # **************************************************************************
  13. from flask import (Blueprint, render_template, request, url_for, redirect,
  14. flash)
  15. from flask_maple.forms import flash_errors
  16. from flask_login import current_user, login_required
  17. from maple.setting.forms import ProfileForm, PasswordForm, PrivacyForm
  18. from .controls import SettingModel
  19. site = Blueprint('setting', __name__)
  20. @site.route('', methods=['GET', 'POST'])
  21. @site.route('/profile', methods=['GET', 'POST'])
  22. @login_required
  23. def setting():
  24. form = ProfileForm()
  25. infor = current_user.infor
  26. if form.validate_on_submit() and request.method == "POST":
  27. SettingModel.profile(form)
  28. return redirect(url_for('setting.setting'))
  29. else:
  30. if form.errors:
  31. flash_errors(form)
  32. return redirect(url_for('setting.setting'))
  33. else:
  34. form.introduce.data = infor.introduce
  35. form.school.data = infor.school
  36. form.word.data = infor.word
  37. return render_template('setting/setting.html', form=form)
  38. @site.route('/password', methods=['GET', 'POST'])
  39. @login_required
  40. def password():
  41. form = PasswordForm()
  42. if form.validate_on_submit() and request.method == "POST":
  43. if SettingModel.password(form):
  44. flash('The password has been updated,Please login')
  45. return redirect(url_for('auth.login'))
  46. else:
  47. flash('password is error')
  48. return redirect(url_for('setting.password'))
  49. else:
  50. if form.errors:
  51. flash_errors(form)
  52. return redirect(url_for('setting.password'))
  53. else:
  54. return render_template('setting/password.html', form=form)
  55. @site.route('/privacy', methods=['GET', 'POST'])
  56. @login_required
  57. def privacy():
  58. form = PrivacyForm()
  59. if form.validate_on_submit() and request.method == "POST":
  60. SettingModel.privacy(form)
  61. return redirect(url_for('setting.privacy'))
  62. else:
  63. if form.errors:
  64. flash_errors(form)
  65. return redirect(url_for('setting.privacy'))
  66. else:
  67. form.online_status.data = current_user.setting.online_status
  68. form.topic_list.data = current_user.setting.topic_list
  69. form.rep_list.data = current_user.setting.rep_list
  70. form.ntb_list.data = current_user.setting.ntb_list
  71. form.collect_list.data = current_user.setting.collect_list
  72. return render_template('setting/privacy.html', form=form)