def create_app(config=None): app = Flask(__name__) if config is None: config = os.path.join( app.root_path, os.environ.get('FLASK_APPLICATION_SETTINGS') ) app.config.from_pyfile(config) app.secret_key = app.config['SECRET_KEY'] db.init_app(app) migrate.init_app(app, db) sec_state = security.init_app(app) admin.init_app(app) admin.add_view(UserAdmin(User, db.session, category="Accounts")) admin.add_view(RoleAdmin(Role, db.session, category="Accounts")) @sec_state.context_processor def security_context_processor(): return dict( admin_base_template=admin.base_template, admin_view=admin.index_view, h=admin_helpers, ) app.register_blueprint(cart) return app
import flask_login as login from app import db from app.admin import admin from app.models.antenna import Antenna from app.models.carrier import Carrier from app.models.city import City from app.models.ranking import Ranking from app.models.region import Region from app.models.report import Report from flask_admin.contrib.sqla import ModelView class StandardView(ModelView): def is_accessible(self): return login.current_user.is_authenticated column_display_pk = True can_delete = True can_create = False can_edit = True can_export = True admin.add_view(StandardView(Antenna, db.session)) admin.add_view(StandardView(Carrier, db.session)) admin.add_view(StandardView(Region, db.session)) admin.add_view(StandardView(City, db.session)) admin.add_view(StandardView(Report, db.session)) admin.add_view(StandardView(Ranking, db.session))
from app.models import db from app.admin import admin from app.admin import BaseModelView from app.university.models import Discipline from app.university.models import Group class DisciplineModelView(BaseModelView): column_list = ('title', 'year', 'visible') admin.add_view(DisciplineModelView(Discipline, db.session)) admin.add_view(BaseModelView(Group, db.session))
from .models import db, Maps, MapPoints from app.admin import admin, ModelView class MapsView(ModelView): list_columns = ('name', 'description') form_columns = list_columns class MapPointsView(ModelView): list_columns = ('map', 'symbol', 'name', 'description') form_columns = list_columns + ('comment', 'source', 'geom') admin.add_view(MapsView(Maps, db.session, endpoint="_maps", category="Maps")) admin.add_view(MapPointsView(MapPoints, db.session, category="Maps"))
#!/usr/bin/env python # -*- encoding:utf-8 -*- """ 微信配置管理 """ from app import app, db from app.admin import admin from .modules import ButtonType from .views import ButtonView from .views import SynchronizeView from .views import UpdateButtonMenuLink from .views import SyncButtonMenuLink # from .views import CustomView from .views import SyncCustomMenuLink admin.add_view(ButtonView(category=u'系统设置', name=u'菜单信息设置')) # admin.add_view(CustomView(category=u'系统设置', name=u'客服信息管理')) admin.add_link(UpdateButtonMenuLink(category=u'数据同步', name=u'应用菜单设置')) admin.add_view(SynchronizeView(category=u'数据同步', name=u'同步用户到本地')) admin.add_link(SyncButtonMenuLink(category=u'数据同步', name=u'同步菜单到本地')) admin.add_link(SyncCustomMenuLink(category=u'数据同步', name=u'同步客服到本地')) @app.before_first_request def init_button_type(): """ 初始化按钮类型 :return: """
class TrafficEventView(StandardView): column_sortable_list = ( "date", "app_version_code", "type", "network_type", "rx_bytes", "tx_bytes", "rx_packets", "tx_packets", "tcp_rx_bytes", "tcp_tx_bytes", ("sim", "sim.serial_number"), ("device", "device.device_id")) class ApplicationTrafficEventView(StandardView): column_sortable_list = ( "date", "app_version_code", "type", "network_type", "rx_bytes", "tx_bytes", "rx_packets", "tx_packets", "tcp_rx_bytes", "tcp_tx_bytes", ("sim", "sim.serial_number"), ("application", "application.id" ), ("device", "device.device_id")) # Add views # admin.add_view(UserView(User, db.session)) admin.add_view(AntennaView(Antenna, db.session)) admin.add_view(StandardView(Carrier, db.session)) admin.add_view(StandardView(Device, db.session)) admin.add_view(SimView(Sim, db.session)) admin.add_view(StandardView(Application, db.session)) # Events admin.add_view(EventView(Event, db.session)) admin.add_view(GsmEventView(GsmEvent, db.session)) admin.add_view(StandardView(CdmaEvent, db.session)) admin.add_view(ConnectivityEventView(ConnectivityEvent, db.session)) admin.add_view(StateChangeEventView(StateChangeEvent, db.session)) admin.add_view(TrafficEventView(TrafficEvent, db.session)) admin.add_view(ApplicationTrafficEventView(ApplicationTrafficEvent, db.session))
#!/usr/bin/env python # -*- encoding:utf-8 -*- """ 单位机构, 会员信息管理 """ from app.admin import admin from .views import MemberView admin.add_view(MemberView(category=u'用户管理', name=u'用户信息管理')) # End
# List of forums class ForumSectionsView(ModelView): list_columns = ('name', 'description', 'creation_date') form_columns = ('name', 'description') # List of all topics in all forums class ForumTopicsView(ModelView): list_columns = ('section', 'title', 'tags', 'user', 'creation_date') form_columns = ('section', 'title', 'tags', 'user', 'body') form_widget_args = { 'title': { 'class': 'wide' }, 'url': { 'class': 'wide' }, } #inline_models = (Comments,) # List of all available tags for topics class ForumTagsView(ModelView): column_list = ('name',) form_columns = ('name',) # List of all comments on all topics in all forums class ForumCommentsView(ModelView): column_list = ('topic', 'user', 'creation_date') form_columns = ('topic', 'user', 'body') admin.add_view(ForumSectionsView(ForumSections, db.session, category="Forum")) admin.add_view(ForumTopicsView(ForumTopics, db.session, category="Forum")) admin.add_view(ForumCommentsView(ForumComments, db.session, category="Forum")) admin.add_view(ForumTagsView(ForumTags, db.session, category="Forum"))
from .models import db, Users, UserLinks from app.admin import admin, ModelView def format_list(view, context, model, name): value = getattr(model, name) return ", ".join(map(str, value)) class UsersView(ModelView): column_list = ('handle', 'email', 'creation_date', 'links') form_columns = ('handle', 'email', 'links') inline_models = (UserLinks,) column_formatters = {'links': format_list} admin.add_view(UsersView(Users, db.session))
form_columns = ("user", "name", "text", "attachments") class AssignmentsAttachmentsView(ModelView): pass class AssignmentsSubmissionsView(ModelView): pass class AssignmentsSubmissionsAttachmentsView(ModelView): pass admin.add_view(AssignmentsView(Assignments, db.session, category="Assignments")) admin.add_view( AssignmentsAttachmentsView(AssignmentsAttachments, db.session, url="assignments-attachements", category="Assignments")) admin.add_view( AssignmentsSubmissionsView(AssignmentsSubmissions, db.session, url="assignments-submissions", category="Assignments")) admin.add_view( AssignmentsSubmissionsAttachmentsView( AssignmentsSubmissionsAttachments, db.session, url="assignments-submissions-attachments",