1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- # **************************************************************************
- # Copyright © 2016 jianglin
- # File Name: user.py
- # Author: jianglin
- # Email: xiyang0807@gmail.com
- # Created: 2016-12-17 11:57:11 (CST)
- # Last Update:星期六 2017-4-1 21:21:49 (CST)
- # By:
- # Description:
- # **************************************************************************
- from .views import BaseView
- from forums.extension import db
- from forums.api.user.models import User, UserInfo, UserSetting
- from wtforms import PasswordField
- from wtforms.validators import DataRequired
- STATUS = UserSetting.STATUS
- def display_status(column):
- return lambda v, c, m, p: m.get_choice_display(column, 'STATUS')
- class UserView(BaseView):
- column_exclude_list = ['password', 'info', 'setting']
- column_searchable_list = ['username', 'email']
- column_filters = ['email', 'is_superuser', 'is_confirmed', 'register_time']
- column_editable_list = ['is_confirmed', 'is_superuser']
- form_columns = ('username', 'email', 'password', 'is_confirmed',
- 'is_superuser')
- # inline_models = (UserInfo, UserSetting)
- # form_extra_fields = {
- # 'password': PasswordField('Password', [DataRequired()])
- # }
- class UserInfoView(BaseView):
- pass
- class UserSettingView(BaseView):
- column_formatters = dict(
- online_status=display_status('online_status'),
- topic_list=display_status('topic_list'),
- rep_list=display_status('rep_list'),
- ntb_list=display_status('ntb_list'),
- collect_list=display_status('collect_list'),
- locale=lambda v, c, m, p: m.get_choice_display('locale', 'LOCALE'),
- timezone=lambda v, c, m, p: m.get_choice_display('timezone', 'TIMEZONE'),
- )
- column_editable_list = column_formatters.keys()
- form_choices = {
- 'online_status': UserSetting.STATUS,
- 'topic_list': UserSetting.STATUS,
- 'rep_list': UserSetting.STATUS,
- 'ntb_list': UserSetting.STATUS,
- 'collect_list': UserSetting.STATUS,
- 'locale': UserSetting.LOCALE,
- 'timezone': UserSetting.TIMEZONE
- }
- def register_user(admin):
- admin.add_view(
- UserView(
- User,
- db.session,
- name='管理用户',
- endpoint='admin_user',
- category='管理用户'))
- admin.add_view(
- UserInfoView(
- UserInfo,
- db.session,
- name='管理用户信息',
- endpoint='admin_userinfo',
- category='管理用户'))
- admin.add_view(
- UserSettingView(
- UserSetting,
- db.session,
- name='管理用户设置',
- endpoint='admin_usersetting',
- category='管理用户'))
|