views.py 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  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-7-25 18:58:28 (CST)
  10. # By:jianglin
  11. # Description: user setting include password , infor and privacy
  12. # **************************************************************************
  13. from flask import (render_template, request, url_for, redirect, flash)
  14. from flask_maple.forms import flash_errors
  15. from flask_login import current_user, login_required
  16. from maple.setting.forms import (ProfileForm, PasswordForm, PrivacyForm,
  17. BabelForm)
  18. from maple.upload.forms import AvatarForm
  19. from .controls import SettingModel
  20. @login_required
  21. def setting():
  22. form = ProfileForm()
  23. avatarform = AvatarForm()
  24. if form.validate_on_submit() and request.method == "POST":
  25. SettingModel.profile(form)
  26. return redirect(url_for('setting.setting'))
  27. else:
  28. if form.errors:
  29. flash_errors(form)
  30. return redirect(url_for('setting.setting'))
  31. infor = current_user.infor
  32. form.introduce.data = infor.introduce
  33. form.school.data = infor.school
  34. form.word.data = infor.word
  35. data = {'form': form, 'avatarform': avatarform}
  36. return render_template('setting/setting.html', **data)
  37. @login_required
  38. def password():
  39. form = PasswordForm()
  40. if form.validate_on_submit() and request.method == "POST":
  41. if SettingModel.password(form):
  42. flash('The password has been updated,Please login', 'info')
  43. return redirect(url_for('auth.login'))
  44. else:
  45. flash('password is error', 'danger')
  46. return redirect(url_for('setting.password'))
  47. else:
  48. if form.errors:
  49. flash_errors(form)
  50. return redirect(url_for('setting.password'))
  51. return render_template('setting/password.html', form=form)
  52. @login_required
  53. def privacy():
  54. form = PrivacyForm()
  55. if form.validate_on_submit() and request.method == "POST":
  56. SettingModel.privacy(form)
  57. return redirect(url_for('setting.privacy'))
  58. else:
  59. if form.errors:
  60. flash_errors(form)
  61. return redirect(url_for('setting.privacy'))
  62. setting = current_user.setting
  63. form.online_status.data = setting.online_status
  64. form.topic_list.data = setting.topic_list
  65. form.rep_list.data = setting.rep_list
  66. form.ntb_list.data = setting.ntb_list
  67. form.collect_list.data = setting.collect_list
  68. return render_template('setting/privacy.html', form=form)
  69. @login_required
  70. def babel():
  71. form = BabelForm()
  72. if form.validate_on_submit() and request.method == "POST":
  73. SettingModel.babel(form)
  74. return redirect(url_for('setting.babel'))
  75. else:
  76. if form.errors:
  77. flash_errors(form)
  78. return redirect(url_for('setting.babel'))
  79. setting = current_user.setting
  80. form.timezone.data = setting.timezone
  81. form.locale.data = setting.locale
  82. return render_template('setting/babel.html', form=form)