admin_user.py 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #!/usr/bin/env python
  2. # -*- coding=UTF-8 -*-
  3. # **************************************************************************
  4. # Copyright © 2016 jianglin
  5. # File Name: users.py
  6. # Author: jianglin
  7. # Email: xiyang0807@gmail.com
  8. # Created: 2016-07-02 20:12:26 (CST)
  9. # Last Update:星期六 2016-7-30 13:44:11 (CST)
  10. # By:
  11. # Description:
  12. # **************************************************************************
  13. from maple import db
  14. from .admin import BaseModelView
  15. from maple.user.models import User, UserInfor, UserSetting, Role
  16. from wtforms import PasswordField
  17. from wtforms.validators import DataRequired
  18. class UserModelView(BaseModelView):
  19. column_exclude_list = ['password', 'infor', 'setting']
  20. column_searchable_list = ['username', 'email']
  21. column_filters = ['email', 'is_superuser', 'is_confirmed', 'register_time']
  22. column_editable_list = ['is_confirmed', 'is_superuser']
  23. column_details_exclude_list = ['infor', 'setting']
  24. form_columns = ('username', 'email', 'roles', 'is_confirmed')
  25. # inline_models = (UserInfor, UserSetting, Role)
  26. form_extra_fields = {'password': PasswordField('Password',
  27. [DataRequired()])}
  28. class UserInforModelView(BaseModelView):
  29. column_list = ['user', 'avatar', 'word', 'school', 'introduce']
  30. column_filters = ['user.username', 'school']
  31. column_searchable_list = ['school']
  32. # inline_models = [(User, dict(form_columns=['username']))]
  33. class UserRoleModelView(BaseModelView):
  34. column_list = ['name', 'description', 'users']
  35. column_filters = ['users.username']
  36. column_searchable_list = ['name']
  37. class UserSettingModelView(BaseModelView):
  38. column_list = ['user', 'online_status', 'topic_list', 'rep_list',
  39. 'ntb_list', 'collect_list', 'locale', 'timezone']
  40. column_sortable_list = (('user', 'user.username'), )
  41. def admin_user(admin):
  42. admin.add_view(UserModelView(User,
  43. db.session,
  44. name='管理用户',
  45. endpoint='admin_users',
  46. url='user',
  47. category='管理用户'))
  48. admin.add_view(UserInforModelView(UserInfor,
  49. db.session,
  50. name='用户信息',
  51. endpoint='admin_user_info',
  52. category='管理用户'))
  53. admin.add_view(UserSettingModelView(UserSetting,
  54. db.session,
  55. name='用户设置',
  56. endpoint='admin_user_setting',
  57. category='管理用户'))
  58. admin.add_view(UserRoleModelView(Role,
  59. db.session,
  60. name='用户组',
  61. endpoint='admin_user_role',
  62. category='管理用户'))