Exemplo n.º 1
0
def create_app(config_name='dev'):
    app = Flask(__name__)
    # sifn = show if none
    app.jinja_env.filters['sifn'] = lambda it: '无' if not it else it
    app.jinja_env.filters['with_site'] = lambda title: title + ' - pkyx'
    # 导入配置
    app.config.from_object(config[config_name])
    config[config_name].init_app(app)
    # 初始化flask_admin
    admin.init_app(app)
    admin.add_view(FileView(os.path.join(os.path.dirname(__file__), 'static'), '/static/'))
    # 初始化MongoDB
    mongo.init_app(app)
    with app.app_context():
        mongo.db['items'].create_index('title', background=True)
    # 初始化Celery
    celery.init_app(app)
    # 初始化Flask-mail
    mail.init_app(app)
    # 初始化Flask-Login
    login_manager.init_app(app)
    login_manager.login_view = 'main.register'
    login_manager.login_message = '请先登录或注册'

    @login_manager.user_loader
    def load_user(user_id):
        user = None
        db_user = mongo.db.users.find_one({"_id": bson_obj_id(user_id)})
        if db_user is not None:
            user_id = db_user.pop('_id')
            user = User(user_id, extras=db_user)
        return user

    # @login_manager.unauthorized_handler
    # def unauthorized():
    #   pass


    from app.main import main as main_blueprint
    app.register_blueprint(main_blueprint)

    from app.users import users as users_blueprint
    app.register_blueprint(users_blueprint)

    from app.api import api as api_blueprint
    app.register_blueprint(api_blueprint)

    return app
Exemplo n.º 2
0
# coding=utf-8
from flask_admin.menu import MenuLink

from app.utils.admin import CommonModelView
from app.user.models import Role, User
from app.extensions import admin, db
from flask import current_app

admin.add_view(CommonModelView(User, db.session, name=u'用户', category=u'用户管理'))
admin.add_view(CommonModelView(Role, db.session, name=u'角色', category=u'用户管理'))

admin.add_menu_item(MenuLink(name=u'返回', endpoint=current_app.config["HOME_VIEW"]))
Exemplo n.º 3
0

class CustomerListView(ProtectedModelView):
    """ Customers are only listed and can be edited but not created """
    form_excluded_columns = ['registered_on', 'reservations']
    column_list = [
        'id', 'first_name', 'last_name', 'street', 'zip_code', 'city', 'tel',
        'email'
    ]

    column_editable_list = [
        'first_name', 'last_name', 'street', 'zip_code', 'city', 'tel', 'email'
    ]


class ReservationListView(ProtectedModelView):
    form_excluded_columns = ['timestamp']

    column_editable_list = [
        'confirmed',
    ]


# Register ModelViews

admin.add_view(CustomerListView(Customer, db.session,
                                name="Kunden"))  # Customer
admin.add_view(
    ReservationListView(Reservation, db.session,
                        name="Reservierungen"))  # Customer
Exemplo n.º 4
0
from flask_admin.contrib.sqla import ModelView
from app.extensions import db, admin
from app.models import User, Post, Tag
from app.admin_backup import AdminBackupModelViewMixin


class UserModelView(AdminBackupModelViewMixin,
                    ModelView):
    column_list = ('id', 'name', 'username')
    column_default_sort = 'id'

    can_delete = False
    can_export = True
    export_max_rows = 1000
    export_types = ['csv', 'xls']

    can_set_page_size = True


admin.add_view(UserModelView(User, db.session))
Exemplo n.º 5
0

class CommentAdmin(ModelView):
    column_exclude_list = ['disabled']

    def __init__(self, session):
        super(CommentAdmin, self).__init__(Comment, session)


class MessageAdmin(ModelView):

    def __init__(self, session):
        super(MessageAdmin, self).__init__(Message, session)


class NoticeAdmin(ModelView):
    def __init__(self, session):
        super(NoticeAdmin, self).__init__(Notice, session)


admin.add_view(BulletinAdmin(db.session))
admin.add_view(UserAdmin(db.session))
admin.add_view(FollowAdmin(db.session))
admin.add_view(PostAdmin(db.session))
admin.add_view(VoteAdmin(db.session))
admin.add_view(TopicAdmin(db.session))
admin.add_view(CommentAdmin(db.session))
admin.add_view(MessageAdmin(db.session))
admin.add_view(NoticeAdmin(db.session))
admin.add_view(FileAdmin(db.app.config['UPLOAD_FOLDER'], '/uploads/', name='uploaded files'))
Exemplo n.º 6
0
            collects.append({
                "id": u.id,
                "imgurl": p.icon,
                "top_img": u.top_img,
                "top_title": u.top_title,
                "username": p.nickname,
                "house_type": u.house_type,
                "usable_area": u.usable_area
            })
        return jsonify({'ret': 'true', 'data': collects})
    else:
        return jsonify({'ret': 'true', 'data': {'state': 0}})  # 查询失败


from flask.ext.admin.contrib.sqla import ModelView

admin.add_view(ModelView(Personal, db.session, name='个人资料'))
admin.add_view(ModelView(Collects, db.session, name='收藏'))
admin.add_view(ModelView(Design, db.session, name='设计'))
admin.add_view(ModelView(Diary, db.session, name='日记'))
admin.add_view(ModelView(Information, db.session, name='系统消息'))
admin.add_view(ModelView(Posts, db.session, name='问题'))
admin.add_view(ModelView(Styles, db.session, name='灵感'))
admin.add_view(ModelView(Topics, db.session, name='文章'))
admin.add_view(ModelView(Topics_one, db.session, name='话题标题'))
admin.add_view(ModelView(Topics_udcontent, db.session, name='话题内容'))
admin.add_view(ModelView(UnderDiscussion, db.session, name='讨论标题'))
admin.add_view(ModelView(Udcontent, db.session, name='讨论内容'))
admin.add_view(ModelView(Users, db.session, name='用户密码'))
admin.add_view(FileAdmin(base_dir, '/static/upload/', name='文件管理'))
Exemplo n.º 7
0
    ]

    column_descriptions = dict(
        sync_term=
        ("If true, the nightly sync will update the terms courses, outcome results, grades, etc. "
         "Only select columns that need to be synced for performance. Multiple terms can be selected"
         ),
        current_term=
        "The term that will be displayed in the student/observer view. ONLY ONE can be selected at a time.",
    )


class GradeCriteriaView(CblModelView):
    column_descriptions = dict(
        grade_rank=
        "1 = Highest grade. This order must be correct for grades to calculate correctly"
    )


class TaskView(CblModelView):
    column_editable_list = ["complete"]
    column_descriptions = dict(
        complete=
        "If a job is clearly dead, but isn't showing as complete (i.e. It's been running for over 4 hours). Change this to `true` to allow a new job."
    )


admin.add_view(EnrollmentTermView(EnrollmentTerm, db.session))
admin.add_view(GradeCriteriaView(GradeCalculation, db.session))
admin.add_view(TaskView(Task, db.session))
Exemplo n.º 8
0
try:
    reload(sys)
    sys.setdefaultencoding('UTF8')
except NameError as e:
    print('>>>> Use linux btw')


handler = RotatingFileHandler('app.log', maxBytes=10000, backupCount=3)
logger = logging.getLogger(__name__)
logger.setLevel(logging.ERROR)
logger.addHandler(handler)


blueprint = Blueprint('ar', 'ar')
login_manager.login_view = '/ar/login'
admin.add_view(ModelView(Quest, db.session))


@blueprint.route('/quests', methods=['GET'])
def get_quests():
    all_quests = db.session.query(Quest).all()

    quests_response = []
    for i in range(len(all_quests)):
        quests_response.append({
            'id': all_quests[i].id,
            'name': all_quests[i].name,
            # ToDo: put code to Quest class
            'code': hashlib.md5(str(i).encode('utf-8')).hexdigest()[:8],
            'description': all_quests[i].description,
            'thumbnailUrl': all_quests[i].thumbnailUrl
Exemplo n.º 9
0
from flask_admin.contrib.sqla import ModelView

from app.database import db
from app.user.models import User
from app.report.models import Report
from app.extensions import admin

admin.add_view(ModelView(User, db.session))
admin.add_view(ModelView(Report, db.session))
Exemplo n.º 10
0
def configure_admin(app):
    class AuthenticatedModelView(ModelView):
        def is_accessible(self):
            return login.current_user.is_authenticated(
            ) and login.current_user.role == ROLE_ADMIN

    admin.add_view(AuthenticatedModelView(User, db.session, endpoint='myuser'))
    admin.add_view(AuthenticatedModelView(Follow, db.session))
    admin.add_view(AuthenticatedModelView(SocialMediaAccount, db.session))
    admin.add_view(AuthenticatedModelView(FacebookAccount, db.session))
    admin.add_view(AuthenticatedModelView(TwitterAccount, db.session))
    admin.add_view(AuthenticatedModelView(Post, db.session))
    admin.add_view(AuthenticatedModelView(TwitterPost, db.session))
    admin.init_app(app)
Exemplo n.º 11
0
def configure_admin(app):
    class AuthenticatedModelView(ModelView):
        def is_accessible(self):
            return login.current_user.is_authenticated() and login.current_user.role == ROLE_ADMIN

    admin.add_view(AuthenticatedModelView(User, db.session, endpoint='myuser'))
    admin.add_view(AuthenticatedModelView(Follow, db.session))
    admin.add_view(AuthenticatedModelView(SocialMediaAccount, db.session))
    admin.add_view(AuthenticatedModelView(FacebookAccount, db.session))
    admin.add_view(AuthenticatedModelView(TwitterAccount, db.session))
    admin.add_view(AuthenticatedModelView(Post, db.session))
    admin.add_view(AuthenticatedModelView(TwitterPost, db.session))
    admin.init_app(app)
Exemplo n.º 12
0
from flask_babelex import lazy_gettext

from Documents.patient import Patient
from Documents.testdata import Testdata
from app.user.models import User, Role
from app.extensions import admin
from app.user.admin import UserView, RoleView
from Documents.admin import PatientView, TestdataView

for model in (User, Role, Patient, Testdata):
    admin.add_view(locals()[model.__name__ + 'View'](model,
                                                     name=lazy_gettext(
                                                         model.__name__)))
Exemplo n.º 13
0
        user = getattr(g, 'user', None)
        if user is not None:
            return user.timezone
        return app.config['BABEL_DEFAULT_TIMEZONE']


app = Flask(__name__)
app.config.from_object(Config())
app.logger.debug('app created')

admin.init_app(app)
db.init_app(app)
init_i18n(app)
oid.init_app(app)

admin.add_view(BookmarkAdmin(Bookmark, db.session, endpoint='bookmarkadmin'))
admin.add_view(TagAdmin(Tag, db.session, endpoint='tagadmin'))
admin.add_view(UserAdmin(User, db.session, endpoint='useradmin'))

app.register_blueprint(links)


@app.before_first_request
def before_first_request():
    db.create_all()


@app.template_filter('unicode')
def unicode_filter(value):
    try:
        return unicode(value, encoding='UTF-8')
Exemplo n.º 14
0
def register_admin(app, db):
    admin.init_app(app)
    admin.add_view(EventView(Event, db.session))
    admin.add_view(TeamView(Team, db.session))
    admin.add_view(PlayerView(Player, db.session))
    admin.add_view(CustomModelView(Task, db.session))