views.py 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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-25 11:7:20 (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 maple.upload.forms import AvatarForm
  19. from .controls import SettingModel
  20. site = Blueprint('setting', __name__)
  21. @site.route('', methods=['GET', 'POST'])
  22. @site.route('/profile', methods=['GET', 'POST'])
  23. @login_required
  24. def setting():
  25. form = ProfileForm()
  26. avatarform = AvatarForm()
  27. infor = current_user.infor
  28. if form.validate_on_submit() and request.method == "POST":
  29. SettingModel.profile(form)
  30. return redirect(url_for('setting.setting'))
  31. else:
  32. if form.errors:
  33. flash_errors(form)
  34. return redirect(url_for('setting.setting'))
  35. form.introduce.data = infor.introduce
  36. form.school.data = infor.school
  37. form.word.data = infor.word
  38. data = {'form': form, 'avatarform': avatarform}
  39. return render_template('setting/setting.html', **data)
  40. @site.route('/password', methods=['GET', 'POST'])
  41. @login_required
  42. def password():
  43. form = PasswordForm()
  44. if form.validate_on_submit() and request.method == "POST":
  45. if SettingModel.password(form):
  46. flash('The password has been updated,Please login', 'info')
  47. return redirect(url_for('auth.login'))
  48. else:
  49. flash('password is error', 'danger')
  50. return redirect(url_for('setting.password'))
  51. else:
  52. if form.errors:
  53. flash_errors(form)
  54. return redirect(url_for('setting.password'))
  55. return render_template('setting/password.html', form=form)
  56. @site.route('/privacy', methods=['GET', 'POST'])
  57. @login_required
  58. def privacy():
  59. form = PrivacyForm()
  60. if form.validate_on_submit() and request.method == "POST":
  61. SettingModel.privacy(form)
  62. return redirect(url_for('setting.privacy'))
  63. else:
  64. if form.errors:
  65. flash_errors(form)
  66. return redirect(url_for('setting.privacy'))
  67. else:
  68. form.online_status.data = current_user.setting.online_status
  69. form.topic_list.data = current_user.setting.topic_list
  70. form.rep_list.data = current_user.setting.rep_list
  71. form.ntb_list.data = current_user.setting.ntb_list
  72. form.collect_list.data = current_user.setting.collect_list
  73. return render_template('setting/privacy.html', form=form)