views.py 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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-14 23:20:13 (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, logout_user, login_required
  17. from maple import db
  18. from maple.setting.forms import ProfileForm, PasswordForm, PrivacyForm
  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. infor.introduce = form.introduce.data
  28. infor.school = form.school.data
  29. infor.word = form.word.data
  30. db.session.commit()
  31. return redirect(url_for('setting.setting'))
  32. else:
  33. if form.errors:
  34. flash_errors(form)
  35. return redirect(url_for('setting.setting'))
  36. else:
  37. form.introduce.data = infor.introduce
  38. form.school.data = infor.school
  39. form.word.data = infor.word
  40. return render_template('setting/setting.html', form=form)
  41. @site.route('/password', methods=['GET', 'POST'])
  42. @login_required
  43. def password():
  44. form = PasswordForm()
  45. if form.validate_on_submit() and request.method == "POST":
  46. password = form.password.data
  47. password_n = form.password_n.data
  48. if current_user.check_password(password):
  49. current_user.password = current_user.set_password(password_n)
  50. db.session.commit()
  51. logout_user()
  52. return redirect(url_for('auth.login'))
  53. else:
  54. flash('password is error')
  55. return redirect(url_for('setting.password'))
  56. else:
  57. if form.errors:
  58. flash_errors(form)
  59. return redirect(url_for('setting.password'))
  60. else:
  61. return render_template('setting/password.html', form=form)
  62. @site.route('/privacy', methods=['GET', 'POST'])
  63. @login_required
  64. def privacy():
  65. form = PrivacyForm()
  66. if form.validate_on_submit() and request.method == "POST":
  67. online_status = form.online_status.data
  68. topic_list = form.topic_list.data
  69. rep_list = form.rep_list.data
  70. ntb_list = form.ntb_list.data
  71. collect_list = form.collect_list.data
  72. current_user.setting.online_status = online_status
  73. current_user.setting.topic_list = topic_list
  74. current_user.setting.rep_list = rep_list
  75. current_user.setting.ntb_list = ntb_list
  76. current_user.setting.collect_list = collect_list
  77. db.session.commit()
  78. return redirect(url_for('setting.privacy'))
  79. else:
  80. if form.errors:
  81. flash_errors(form)
  82. return redirect(url_for('setting.privacy'))
  83. else:
  84. form.online_status.data = current_user.setting.online_status
  85. form.topic_list.data = current_user.setting.topic_list
  86. form.rep_list.data = current_user.setting.rep_list
  87. form.ntb_list.data = current_user.setting.ntb_list
  88. form.collect_list.data = current_user.setting.collect_list
  89. return render_template('setting/privacy.html', form=form)