Exemplo n.º 1
0
def have_not_found(error):
    navigation = get_navigation_info(title="404 NOT FOUND",
                                     sub_title="服务器上没有这个页面",
                                     tag="not_found")
    return render_template('admin/404.html',
                           navigation=navigation,
                           error=error), 404
Exemplo n.º 2
0
def have_not_permission(error):
    navigation = get_navigation_info(title="无法访问",
                                     sub_title="权限不足,请联系管理员",
                                     tag="authority")
    return render_template('admin/403.html',
                           navigation=navigation,
                           error=error), 403
Exemplo n.º 3
0
Arquivo: post.py Projeto: ciel002/blog
def alter_post(post_id, post_title):
    """
    修改文章页面
    通过  文章页面传递过来的post ID和TITLE  查询相应的文章,并将文章的内容显示在页面中供用户修改
    :param post_id:
    :param post_title:
    :return:
    """
    navigation = get_navigation_info(title="修改文章", sub_title="修改已发布的文章", tag="alter_post")
    form = PostForm()
    if request.method == 'GET':
        post = Post.query.filter_by(id=post_id).first()
        form.alter_post(post.title, post.abstract, post.content, post.category_id
                        , post.rank, post.is_top, post.post_property, post.status)
        return render_template("admin/edit_post.html", navigation=navigation, form=form)
    if request.method == 'POST':
        """
        method为POST
        通过传递的post ID 查询相应的post  更新post内容
        """
        post = Post.query.filter_by(id=post_id).first()
        post.update_post(form.title.data, form.abstract.data, current_user.id, form.content.data,
                         form.category_id.data, form.rank.data, form.is_top.data,
                         form.post_property.data, form.status.data)
        if form.status.data == STATUS_DRAFT:
            return redirect(url_for('admin.draft_post'))
        elif form.status.data == STATUS_PUBLISH:
            return redirect(url_for('admin.post'))
        elif form.status.data == STATUS_DELETED:
            return redirect(url_for('admin.dustbin_post'))
Exemplo n.º 4
0
def setting(type):
    if "home" in type:
        box_title = "主页设置"
        navigation = get_navigation_info(title="主页设置", tag="home")
    elif "admin" in type:
        box_title = "后台设置"
        navigation = get_navigation_info(title="后台设置", tag="admin")
    elif "mail" in type:
        box_title = "邮件设置"
        navigation = get_navigation_info(title="邮件设置", tag="mail")
    elif "system" in type:
        box_title = "系统设置"
        navigation = get_navigation_info(title="系统设置", tag="system")

    # 获取特定类型的配置项
    config = Config.get_config_type(type)
    # 获取所有类型的配置项
    all_config = Config.get_config()

    # 清空SettingForm表单中原有的配置项
    for item in all_config:
        if hasattr(SettingForm, item):
            delattr(SettingForm, item)

    # 添加新的配置项
    for item in config:
        setattr(
            SettingForm, item[2],
            StringField(item[1],
                        render_kw={
                            "class": "form-control",
                            'placeholder': item[1]
                        },
                        default=item[3]))
    form = SettingForm()
    if request.method == 'GET':
        return render_template('admin/setting.html',
                               navigation=navigation,
                               form=form,
                               box_title=box_title)
    if request.method == 'POST':
        if Config.set_config(request.form.to_dict()):
            return redirect(request.url)
Exemplo n.º 5
0
Arquivo: auth.py Projeto: ciel002/blog
def auth():
    navigation = get_navigation_info(title="权限列表", tag="auth")
    auths = GroupAuthority.get_all_auths(status=STATUS_USEFUL)
    if request.method == 'GET':
        delete_id = request.args.get("delete_id")
        if delete_id:
            auth = GroupAuthority.query.filter_by(id=delete_id).first()
            auth.update_status(status=STATUS_USELESS)
            return  redirect(url_for('admin.auth'))
        return render_template('admin/auth.html', navigation=navigation, auths=auths)
Exemplo n.º 6
0
def group():
    navigation = get_navigation_info(title="用户组管理", sub_title="控制台", tag="group")
    groups = UserGroup.query.all()
    groups_total = UserGroup.get_groups_total()
    if request.method == 'GET':
        if request.args.get('group_id') is not None:
            group = UserGroup.query.filter_by(id=request.args.get('group_id')).first()
            group.real_delete()
            return redirect(url_for('admin.group'))
        return render_template('admin/group.html', navigation=navigation,
                               groups=groups, groups_total=groups_total)
Exemplo n.º 7
0
def add_group():
    navigation = get_navigation_info(title="用户组", sub_title="新的用户组", tag="add_group")
    GroupForm.init_auths_radio()
    form = GroupForm()
    if request.method == 'POST':
        auths = GroupAuthority.result_to_str(form)
        group = UserGroup(name=form.name.data, status=form.status.data, authority=auths)
        group.add_one()
        return redirect(url_for('admin.group'))
    if request.method == 'GET':
        return render_template('admin/edit_group.html', navigation=navigation, form=form)
Exemplo n.º 8
0
def dustbin_category():
    navigation = get_navigation_info(title="垃圾箱", tag="dustbin_category")
    if request.method == 'GET':
        if request.args.get('category_id') is not None:
            category = Category.query.filter_by(
                id=request.args.get('category_id')).first()
            category.real_delete()
            return redirect(url_for('admin.dustbin_category'))
        categories = Category.get_categories_info(STATUS_USELESS)
        return render_template('admin/dustbin_category.html',
                               navigation=navigation,
                               categories=categories)
Exemplo n.º 9
0
def alter_group(group_id):
    navigation = get_navigation_info(title="修改用户组", sub_title="修改已存在的用户组", tag="alter_group")
    GroupForm.init_auths_radio(group_id)
    form = GroupForm()
    if request.method == 'GET':
        group = UserGroup.query.filter_by(id=group_id).first()
        form.init_form(group.name, group.status)
        return render_template('admin/edit_group.html', navigation=navigation, form=form)
    if request.method == 'POST':
        auths = GroupAuthority.result_to_str(form)
        group = UserGroup.query.filter_by(id=group_id).first()
        group.update_group(name=form.name.data, status=form.status.data, authority=auths)
        return redirect(url_for('admin.group'))
Exemplo n.º 10
0
Arquivo: post.py Projeto: ciel002/blog
def draft_post(page=1):
    """
    草稿箱页面
    :return:
    """
    navigation = get_navigation_info(title="草稿箱", sub_title="修改未发布的文章", tag="draft_post")
    if request.method == 'GET':
        pagination = get_admin_posts_paginate(page, per_page=int(get_config("web_admin_post_per_page")), status=STATUS_DRAFT)
        if request.args.get('post_id') is not None:
            post = Post.query.filter_by(id=request.args.get('post_id')).first()
            post.delete()
            return redirect(url_for('admin.post'))
        return render_template("admin/post.html", navigation=navigation, posts=pagination.items, pagination=pagination,
                               posts_total=len(pagination.items))
Exemplo n.º 11
0
def add_category():
    navigation = get_navigation_info(title="添加类别", tag="add_category")
    form = CategoryForm()
    if request.method == 'GET':
        return render_template('admin/edit_category.html',
                               navigation=navigation,
                               form=form)
    if request.method == 'POST':
        category = Category(name=form.name.data,
                            sub_name=form.sub_name.data,
                            sort=form.sort.data,
                            status=form.status.data,
                            description=form.description.data)
        category.add_one()
        return redirect(url_for('admin.category'))
Exemplo n.º 12
0
def index():
    posts_count = Post.get_posts_count()
    comments_count = PostComment.get_comments_count()
    users_count = User.get_users_count(0)
    explore_count = get_explore_count()
    context = {
        'posts_count': posts_count,
        'comments_count': comments_count,
        'users_count': users_count,
        'explore_count': explore_count,
    }
    navigation = get_navigation_info(title="仪表盘", sub_title="控制器", tag="index")
    return render_template("admin/index.html",
                           navigation=navigation,
                           **context)
Exemplo n.º 13
0
Arquivo: post.py Projeto: ciel002/blog
def dustbin_post(page=1):
    """
    垃圾箱页面
    在此页面删除的文章将会在数据库中真正的删除,无法找回
    :return:
    """
    navigation = get_navigation_info(title="垃圾箱", sub_title="被删除的文章", tag="dustbin_post")
    if request.method == 'GET':
        pagination = get_admin_posts_paginate(page, per_page=int(get_config("web_admin_post_per_page")), status=STATUS_DELETED)
        if request.args.get('post_id') is not None:
            post = Post.query.filter_by(id=request.args.get('post_id')).first()
            post.real_delete()
            return redirect(url_for('admin.post'))
        return render_template("admin/post.html", navigation=navigation, posts=pagination.items, pagination=pagination,
                               posts_total=len(pagination.items))
Exemplo n.º 14
0
Arquivo: user.py Projeto: ciel002/blog
def user(gid=0, page=1):
    navigation = get_navigation_info(title="用户管理", sub_title="控制台", tag="user")
    pagination = get_admin_users_paginate(
        page, int(get_config("web_admin_user_per_page")), gid)
    groups = UserGroup.get_groups_name()
    if request.method == 'GET':
        if request.args.get('user_id') is not None:
            user = User.query.filter_by(id=request.args.get('user_id')).first()
            user.real_delete()
            return redirect(url_for('admin.user'))
        return render_template('admin/user.html',
                               navigation=navigation,
                               pagination=pagination,
                               users=pagination.items,
                               users_total=len(pagination.items),
                               groups=groups,
                               group_id=int(gid))
Exemplo n.º 15
0
def post_reply(page=1):
    navigation = get_navigation_info(title="文章回复列表", tag="post_reply")
    pagination = get_admin_post_replies_paginate(
        page,
        per_page=int(get_config("web_admin_comment_reply_per_page")),
        status=STATUS_PUBLISH)
    if request.method == 'GET':
        delete_id = request.args.get("delete_id")
        if delete_id:
            reply = PostReply.query.filter_by(id=delete_id).first()
            reply.update_status(status=STATUS_DELETED)
            return redirect(url_for('admin.post_reply'))
        return render_template("admin/post_reply.html",
                               navigation=navigation,
                               replies=pagination.items,
                               pagination=pagination,
                               replies_count=len(pagination.items))
Exemplo n.º 16
0
def comment(page=1):
    navigation = get_navigation_info(title="评论列表", tag="comment")
    pagination = get_admin_comments_paginate(
        page,
        per_page=int(get_config("web_admin_comment_per_page")),
        status=STATUS_PUBLISH)
    if request.method == 'GET':
        delete_id = request.args.get("delete_id")
        if delete_id:
            comment = PostComment.query.filter_by(id=delete_id).first()
            comment.update_status(status=STATUS_DELETED)
            return redirect(url_for('admin.comment'))
        return render_template("admin/comment.html",
                               navigation=navigation,
                               comments=pagination.items,
                               pagination=pagination,
                               comments_count=len(pagination.items))
Exemplo n.º 17
0
Arquivo: user.py Projeto: ciel002/blog
def add_user():
    navigation = get_navigation_info(title="添加用户",
                                     sub_title="新的用户",
                                     tag="add_user")
    form = UserForm()
    if request.method == 'GET':
        return render_template('admin/edit_user.html',
                               navigation=navigation,
                               form=form)
    if request.method == 'POST':
        user = User(name=form.name.data,
                    password=form.password.data,
                    group_id=form.group_id.data,
                    email=form.email.data,
                    wechat=form.wechat.data,
                    signature=form.signature.data)
        user.add_one()
        return redirect(url_for('admin.user'))
Exemplo n.º 18
0
def status():
    navigation = get_navigation_info(title="状态", tag="status")
    form = StatusForm()
    if request.method == 'GET':
        if request.args.get('item_id') is not None:
            status = Status.query.filter_by(
                id=request.args.get('item_id')).first()
            status.real_delete_by_id()
            return redirect(url_for('admin.status'))
        status_list = Status.query.all()
        return render_template('admin/status.html',
                               navigation=navigation,
                               form=form,
                               status_list=status_list)
    if request.method == 'POST':
        stat = Status(name=form.name.data, description=form.description.data)
        stat.add_one()
        return redirect(url_for('admin.status'))
Exemplo n.º 19
0
Arquivo: user.py Projeto: ciel002/blog
def alter_user_avatar(uid):
    if request.method == 'GET':
        navigation = get_navigation_info(title="修改头像", tag="alter_user")
        return render_template('admin/edit_user_avatar.html',
                               navigation=navigation,
                               uid=uid)
    if request.method == 'POST':
        # 获取ajax传来的头像文件
        file = request.files.get("avatar")
        if alter_avatar(file, uid):
            return json.dumps({
                "error": 1,
                "msg": "成功",
            })
        return json.dumps({
            "error": 0,
            "msg": "失败",
        })
Exemplo n.º 20
0
def property():
    user = current_user
    navigation = get_navigation_info(title="属性", tag="property")
    form = PropertyForm()
    if request.method == 'GET':
        if request.args.get('item_id') is not None:
            property = Property.query.filter_by(
                id=request.args.get('item_id')).first()
            property.real_delete_by_id()
            return redirect(url_for('admin.property'))
        properties = Property.query.all()
        return render_template('admin/property.html',
                               navigation=navigation,
                               user=user,
                               form=form,
                               properties=properties)
    if request.method == 'POST':
        property = Property(name=form.name.data,
                            description=form.description.data)
        property.add_one()
        return redirect(url_for('admin.property'))
Exemplo n.º 21
0
def alter_category(category_id, category_sub_name):
    navigation = get_navigation_info(title="修改类别", tag="alter_category")
    form = CategoryForm()
    if request.method == 'GET':
        category = Category.query.filter_by(id=category_id).first()
        form.alter_category(name=category.name,
                            sub_name=category.sub_name,
                            sort=category.sort,
                            status=category.status,
                            description=category.description)
        return render_template('admin/edit_category.html',
                               navigation=navigation,
                               form=form)
    if request.method == 'POST':
        category = Category.query.filter_by(id=category_id).first()
        category.update_category(name=form.name.data,
                                 sub_name=form.sub_name.data,
                                 sort=form.sort.data,
                                 status=form.status.data,
                                 description=form.description.data)
        return redirect(url_for('admin.category'))
Exemplo n.º 22
0
Arquivo: user.py Projeto: ciel002/blog
def alter_user(uid):
    navigation = get_navigation_info(title="修改用户",
                                     sub_title="已存在的用户",
                                     tag="alter_user")
    form = UserForm()
    if request.method == 'GET':
        user = User.query.filter_by(id=uid).first()
        form.alter_user(name=user.name,
                        group=user.group_id,
                        phone=user.phone,
                        email=user.email,
                        wechat=user.wechat,
                        signature=user.signature)
        return render_template('admin/edit_user.html',
                               navigation=navigation,
                               form=form,
                               uid=uid)
    if request.method == 'POST':
        user = User.query.filter_by(id=uid).first()
        user.update_user(request.form)
        return redirect(url_for('admin.user'))
Exemplo n.º 23
0
Arquivo: post.py Projeto: ciel002/blog
def add_post():
    """
    写文章页面
    :return:
    """
    navigation = get_navigation_info(title="写文章", sub_title="写一篇新的文章", tag="add_post")
    form = PostForm()
    if request.method == 'GET':
        return render_template("admin/edit_post.html", navigation=navigation, form=form)
    if request.method == 'POST':
        post = Post(
            title=form.title.data,
            abstract=form.abstract.data,
            content=form.content.data,
            uid=current_user.id,
            category_id=form.category_id.data,
            rank=form.rank.data,
            is_top=form.is_top.data,
            post_property=form.post_property.data,
            status=form.status.data)
        post.add_one()
        return redirect(url_for('admin.post'))