Example #1
0
def delete():
    ids = request.form.get('id')
    try:
        if id is not None:
            res = Posts.query.filter(Posts.id.in_(
                ids.split(','))).delete(synchronize_session=False)
            mks = [
                'termtaxonomy_category_posts_id',
                'feature_img_resources_posts_id',
                'feature_img_resources_posts_id'
            ]
            pms = PostMeta.query.filter(
                or_(PostMeta.meta_key.in_(mks),
                    PostMeta.meta_value.in_(ids))).all()
            if pms:
                for v in pms:
                    if v.terms.all():
                        for vv in v.terms.all():
                            vv.count -= 1
                        v.terms = []
                        v.resources = []
                    db.session.delete(v)
            db.session.commit()
            write_log(log_type='delete', log_detail='删除文章成功')
            return restful.success('删除成功!', url=url_for('adminposts.index'))
    except Exception as e:
        write_log(log_type='delete', log_detail="行为:删除文章;错误:" + str(e))
        return restful.server_error(message=str(e))
    pass
Example #2
0
def ajax_add_menu():
    form = NameForm(request.form)
    try:
        if form.validate():
            name = request.form.get('name')
            res = db.session.query(TermTaxonomy, Terms).filter(
                and_(TermTaxonomy.taxonomy == 3, Terms.name == name,
                     TermTaxonomy.term_id == Terms.id)).all()
            #没有当前菜单
            if any(res) == False:
                t = Terms(name=request.form.get('name'),
                          slug=request.form.get('name'),
                          term_order=99)
                db.session.add(t)
                db.session.flush()
                t.term_taxonomy = TermTaxonomy(term_id=t.id,
                                               taxonomy=3,
                                               img="",
                                               parent=0,
                                               count=0)
                db.session.commit()
            write_log(log_type='add', log_detail='添加菜单成功')
            return restful.success('添加成功',
                                   data={
                                       "id": t.term_taxonomy.id,
                                       "name": t.name
                                   })
        else:
            raise ValueError(form.get_err_one())
    except Exception as e:
        write_log(log_type='add', log_detail="行为:添加菜单;错误:" + str(e))
        return restful.server_error(message=str(e))
    pass
Example #3
0
 def post(self):
     try:
         if len(request.form) == 2:
             for v in request.form:
                 if v != 'id':
                     object_name = get_str_upper(v, '_') + "Form"
                     form = eval(object_name)(request.form)
         else:
             form = RoleInfoForm(request.form)
         if form.validate():
             role = Role.query.get(request.form.get('id'))
             if request.form.getlist('role_pri'):
                 role.role_pri = request.form.getlist('role_pri')
             if request.form.get('role_name') is not None:
                 role.role_name = request.form.get('role_name')
             if request.form.get('role_type') is not None:
                 role.role_type = request.form.get('role_type')
             if request.form.get('describe') is not None:
                 role.describe = request.form.get('describe')
             db.session.commit()
             write_log(log_type='edit', log_detail='修改角色成功')
             return restful.success(message="操作成功",
                                    url=url_for('adminrole.index'))
         else:
             raise ValueError(form.get_err_one())
     except Exception as e:
         write_log(log_type='edit', log_detail="行为:修改角色;错误:" + str(e))
         return restful.server_error(message=str(e))
Example #4
0
 def post(self):
     try:
         if len(request.form) == 2:
             for v in request.form:
                 if v != 'id':
                     object_name = get_str_upper(v, '_') + "Form"
                     form = eval(object_name)(request.form)
         else:
             form = AdminForm(request.form)
         if form.validate():
             admin = Admin.query.get(request.form.get('id'))
             if request.form.getlist('admin_name'):
                 admin.admin_name = request.form.getlist('admin_name')
             if request.form.get('password') is not None:
                 admin.password = request.form.get('password')
             if request.form.get('img') is not None:
                 admin.img = request.form.get('img')
             if request.form.get('account') is not None:
                 admin.account = request.form.get('account')
             if request.form.get('sex') is not None:
                 admin.sex = request.form.get('sex')
             if request.form.get('state') is not None:
                 admin.state = request.form.get('state')
             if request.form.get('role_id') is not None:
                 role = Role.query.get(request.form.get('role_id'))
                 admin.roles = [role]
             db.session.commit()
             write_log(log_type='edit', log_detail='修改操作员成功')
             return restful.success(message="操作成功",
                                    url=url_for('adminadmin.index'))
         else:
             raise ValueError(form.get_err_one())
     except Exception as e:
         write_log(log_type='edit', log_detail="行为:修改操作员;错误:" + str(e))
         return restful.server_error(message=str(e))
Example #5
0
 def post(self):
     try:
         form = Config_FieldForm(request.form)
         if form.validate():
             c = ConfigField(
                 v=request.form.get('v'),
                 k=request.form.get('k'),
                 desc=request.form.get('desc'),
                 prompt=request.form.get('prompt'),
                 sorts=request.form.get('sorts'),
                 state=request.form.get('state'),
                 texttype=request.form.get('texttype'),
                 textvalue=request.form.get('textvalue'),
                 type=request.form.get('type'),
                 create_time=time.time(),
             )
             db.session.add(c)
             db.session.commit()
             write_log(log_type='add', log_detail='增加配置字段成功')
             return restful.success(message="操作成功",
                                    url=url_for('adminconfig_field.index'))
         else:
             raise ValueError(form.get_err_one())
     except Exception as e:
         write_log(log_type='add', log_detail="行为:增加配置字段;错误:" + str(e))
         return restful.server_error(message=str(e))
Example #6
0
 def post(self):
     try:
         taxonomy = request.args.get('taxonomy')
         if taxonomy is None: raise ValueError('参数错误!')
         form = TermsForm(request.form)
         if form.validate():
             if request.form.get('id'):
                 t = Terms.query.get(request.form.get('id'))
                 if request.form.get('name') is not None:
                     t.name = request.form.get('name')
                 if request.form.get('slug') is not None:
                     t.slug = request.form.get('slug')
                 term_taxonomy = TermTaxonomy.query.filter(
                     TermTaxonomy.term_id == t.id).one()
                 if request.form.get('img') is not None:
                     term_taxonomy.img = request.form.get('img')
                 if request.form.get('parent') is not None:
                     term_taxonomy.parent = request.form.get('parent')
                 t.term_taxonomy = term_taxonomy
                 db.session.commit()
             else:
                 t = Terms(name=request.form.get('name'),
                           slug=request.form.get('slug'),
                           term_order=99)
                 db.session.add(t)
                 db.session.flush()
                 t.term_taxonomy = TermTaxonomy(
                     term_id=t.id,
                     taxonomy=TAXONOMY.get(taxonomy),
                     img=request.form.get('img')
                     if request.form.get('img') is not None else "",
                     parent=int(request.form.get('parent'))
                     if request.form.get('parent') is not None else 0,
                     count=0)
                 db.session.commit()
             if request.form.get('id'):
                 log_type = 'edit'
                 log_detail = '修改' + TAXONOMY_CN.get(taxonomy) + '成功'
             else:
                 log_type = 'add'
                 log_detail = '新增' + TAXONOMY_CN.get(taxonomy) + '成功'
             write_log(log_type=log_type, log_detail=log_detail)
             return restful.success(message="操作成功",
                                    url=url_for('adminterms.edit',
                                                taxonomy=taxonomy))
         else:
             raise ValueError(form.get_err_one())
     except Exception as e:
         if request.form.get('id'):
             log_type = "edit"
             log_detail = "行为:修改" + TAXONOMY_CN.get(
                 taxonomy) + ";错误:" + str(e)
         else:
             log_type = "add"
             log_detail = "行为:新增" + TAXONOMY_CN.get(
                 taxonomy) + ";错误:" + str(e)
         write_log(log_type=log_type, log_detail=log_detail)
         return restful.server_error(message=str(e))
Example #7
0
def ajax_unjoin_menu():
    try:
        pm_id = request.form.get('id')
        join_object = PostMeta.query.filter(PostMeta.id == pm_id).first()
        join_object.terms = []
        db.session.delete(join_object)
        db.session.commit()
        return restful.success('取消菜单关联成功', url=url_for('adminterms.menu'))
    except Exception as e:
        write_log(log_type='join', log_detail="行为:取消菜单关联;错误:" + str(e))
        return restful.server_error(str(e))
Example #8
0
def delete():
    ids = request.form.get('id')
    try:
        if id is not None:
            res = Admin.query.filter(Admin.id.in_(
                ids.split(','))).delete(synchronize_session=False)
            db.session.commit()
            write_log(log_type='delete', log_detail='删除操作员成功')
            return restful.success('删除成功!', url=url_for('adminadmin.index'))
    except Exception as e:
        write_log(log_type='delete', log_detail="行为:删除操作员;错误:" + str(e))
        return restful.server_error(message=str(e))
    pass
Example #9
0
def delete():
    filename = request.form.get('id')
    try:
        if filename is not None:
            b = Baksql(
                save_path=os.path.join(APP_ROOT_PATH, 'static', 'databases'))
            result = b.delfilename(filename)
            return restful.success(message=result,
                                   url=url_for('admindatabase.reduction'))
        else:
            raise ValueError('未选择删除的文件')
    except Exception as e:
        write_log(log_type='delete', log_detail="行为:删除备份文件;错误:!")
        return restful.server_error(message=str(e))
Example #10
0
def ajax_commit_comment():
    try:
        form = CommentForm(request.form)
        if form.validate():
            c = Comment(comment_content=request.form.get('comment_content'),
                        post_id=request.form.get('post_id'),
                        ip=request.remote_addr,
                        create_time=time.time())
            db.session.add(c)
            db.session.commit()
            return restful.success(message="评论成功")
        else:
            raise ValueError(form.get_err_one())
    except Exception as e:
        return restful.server_error(str(e))
Example #11
0
def ajax_get_posts():
    order = "id asc"
    get_page = request.form.get('page')
    if get_page is not None and get_page.isdigit(
    ) == True and int(get_page) > 1:
        page = int(get_page)
    else:
        page = 1
    p = db.session.query(Posts.id, Posts.post_title).filter(
        Posts.post_status == 1).order_by(order).limit(PAGE_SIZE).offset(
            (page - 1) * PAGE_SIZE).all()
    if p:
        return restful.success('请求成功!', data=p)
    else:
        return restful.server_error("没有更多内容加载了!")
Example #12
0
 def post(self):
     try:
         if len(request.form) == 2:
             for v in request.form:
                 if v != 'id':
                     v_old_name = v
                     object_name = get_str_upper(v, '_') + "Form"
                     form = eval(object_name)(request.form)
         else:
             form = PostsForm(request.form)
         if form.validate():
             posts = Posts.query.get(request.form.get('id'))
             if len(request.form) == 2:
                 setattr(posts, v_old_name, form.data[v_old_name])
             else:
                 posts.post_content = request.form.get('post_content')
                 posts.post_title = request.form.get('post_title')
                 posts.post_excerpt = request.form.get('post_excerpt')
                 posts.post_status = request.form.get('post_status')
                 posts.comment_status = request.form.get('comment_status')
                 posts.post_name = request.form.get(
                     'post_name') if request.form.get('post_name') else ""
                 posts.update_time = time.time(),
                 posts.menu_order = request.form.get(
                     'menu_order') if request.form.get('menu_order') else 0
                 if request.form.get(
                         'img') != posts.feature_img and request.form.get(
                             'img') != '/static/global/face/default.png':
                     posts.feature_img = [
                         request.form.get('img'),
                         request.form.get('file_size'),
                         request.form.get('old_name')
                     ]
                 # 分类
                 posts.category = request.form.getlist('category')
                 # step3 标签
                 posts.label = request.form.getlist('label')
             db.session.commit()
             write_log(log_type='add', log_detail='修改文章成功')
             return restful.success(message="操作成功",
                                    url=url_for('adminposts.index'))
         else:
             raise ValueError(form.get_err_one())
     except Exception as e:
         write_log(log_type='edit', log_detail="行为:修改文章;错误:" + str(e))
         return restful.server_error(message=str(e))
Example #13
0
def ajax_terms_slug():
    try:
        id = request.form.get('id')
        type = request.form.get('type')
        value = request.form.get('new_name')
        if type == 'category':
            c = TermTaxonomy.query.get(id)
            c.terms[0].slug = value
        elif type == 'posts':
            p = Posts.query.get(id)
            p.post_name = value
        elif type == 'url':
            l = Link.query.get(id)
            l.slug = value
        db.session.commit()
        return restful.success('编辑成功')
    except Exception as e:
        return restful.server_error(str(e))
Example #14
0
 def post(self):
     form = LoginForm(request.form)
     if form.validate():
         account = form.account.data
         password = form.password.data
         admin_data = Admin.query.filter(Admin.account == account).first()
         if admin_data and admin_data.check_pwd(password):
             admin_data.last_time = time.time()
             db.session.commit()
             session[ADMIN_SESSION_ID] = admin_data.id
             write_log('login', '登录成功')
             return restful.success(message='登陆成功',
                                    url=url_for('adminindex.index'))
         else:
             return restful.params_error(message='输入帐号密码错误')
     else:
         message = form.get_err_one()
         return restful.params_error(message=message)
Example #15
0
 def post(self):
     form = PostsForm(request.form)
     try:
         if form.validate():
             posts = Posts(
                 post_author=g.admin.id,
                 create_time=time.time(),
                 post_content=request.form.get('post_content'),
                 post_title=request.form.get('post_title'),
                 post_excerpt=request.form.get('post_excerpt'),
                 post_status=request.form.get('post_status'),
                 comment_status=request.form.get('comment_status'),
                 post_name=request.form.get('post_name')
                 if request.form.get('post_name') is not None else '',
                 update_time=time.time(),
                 menu_order=request.form.get('menu_order')
                 if request.form.get('menu_order') is not None else 1,
                 post_type=1,
                 comment_count=0)
             db.session.add(posts)
             db.session.flush()
             # step1  看是否有特色图片
             if request.form.get(
                     'img') != "/static/global/face/default.png":
                 posts.feature_img = [
                     request.form.get('img'),
                     request.form.get('file_size'),
                     request.form.get('old_name')
                 ]
             # 分类
             posts.category = request.form.getlist('category')
             # step3 标签
             posts.label = request.form.getlist('label')
             db.session.commit()
             write_log(log_type='add', log_detail='增加文章成功')
             return restful.success(message="操作成功",
                                    url=url_for('adminposts.index'))
         else:
             raise ValueError(form.get_err_one())
     except Exception as e:
         write_log(log_type='add', log_detail="行为:新增文章;错误:" + str(e))
         return restful.server_error(message=str(e))
     pass
Example #16
0
def restore():
    '''
    还原数据库
    :return:
    '''
    try:
        filename = request.form.get('id')
        if filename is not None:
            b = Baksql(
                save_path=os.path.join(APP_ROOT_PATH, 'static', 'databases'))
            result = b.restore(filename)
            write_log(log_type='restore', log_detail="还原备份成功!")
            return restful.success(message=result,
                                   url=url_for('admindatabase.reduction'))
        else:
            raise ValueError("未选择文件!")
    except Exception as e:
        write_log(log_type='restore', log_detail="行为:还原数据库;错误:" + str(e))
        return restful.server_error(message=str(e))
Example #17
0
 def post(self):
     try:
         form = RoleInfoForm(request.form)
         if form.validate():
             r = Role(role_name=form.role_name.data,
                      role_type=request.form.get('role_type'),
                      describe=form.describe.data,
                      role_pri=request.form.getlist('role_pri'),
                      create_time=time.time())
             db.session.add(r)
             db.session.commit()
             write_log(log_type='add', log_detail='增加角色成功')
             return restful.success(message="操作成功",
                                    url=url_for('adminrole.index'))
         else:
             raise ValueError(form.get_err_one())
     except Exception as e:
         write_log(log_type='add', log_detail="行为:新增角色;错误:" + str(e))
         return restful.server_error(message=str(e))
Example #18
0
def ajax_join_menu():
    try:
        menu_id = request.form.get('id')
        menu_value = request.form.getlist('value[]')
        menu_type = request.form.get('type')
        #获取菜单
        tm = TermTaxonomy.query.filter(TermTaxonomy.id == menu_id).first()
        if tm:
            if menu_type == 'url':
                tm.menu_url = menu_value
            elif menu_type == 'category':
                tm.menu_category = menu_value
            elif menu_type == 'posts':
                tm.menu_posts = menu_value
            db.session.commit()
        return restful.success('关联菜单成功', url=url_for('adminterms.menu'))
    except Exception as e:
        write_log(log_type='join', log_detail="行为:菜单关联;错误:" + str(e))
        return restful.server_error(str(e))
Example #19
0
def save():
    type = request.form.get('type')
    if type is not None:
        data = request.form.to_dict()
        data.pop('type')
        try:
            for v in data:
                if data.get(v) is not None:
                    cf = ConfigField.query.filter(ConfigField.k == v).first()
                    cf.v = data.get(v)
                    db.session.commit()
            write_log(log_type='edit', log_detail='修改配置字段成功')
            return restful.success('修改成功!',
                                   url=url_for('adminconfig_field.' + type))
        except Exception as e:
            write_log(log_type='edit', log_detail="行为:修改配置字段;错误:" + str(e))
            return restful.server_error(message=str(e))
    else:
        abort(404)
Example #20
0
def backup():
    '''
    备份
    :return:
    '''
    try:
        table_names = request.form.get('id')
        if table_names is not None and len(table_names) > 0:
            table_names = table_names.split(',')
            b = Baksql(
                save_path=os.path.join(APP_ROOT_PATH, 'static', 'databases'))
            result = b.backup(table_names)
            write_log(log_type='backup', log_detail="备份成功!")
            return restful.success(message=result,
                                   url=url_for('admindatabase.index'))
        else:
            raise ValueError("没有选择的备份文件!")
    except Exception as e:
        write_log(log_type='backup', log_detail="行为:备份数据库文件;错误:" + str(e))
        return restful.server_error(message=str(e))
Example #21
0
def ajax_get_comments():
    id = request.args.get('post_id')
    get_page = request.args.get('page')
    if get_page is not None and get_page.isdigit(
    ) == True and int(get_page) > 1:
        page = int(get_page)
    else:
        page = 1
    comments = Comment.query.filter(
        Comment.post_id == id).order_by('id desc').limit(int(
            g.page_size)).offset((page - 1) * int(g.page_size)).all()
    data = []
    if comments:
        for v in comments:
            data.append({
                "ip": v.ip,
                'content': v.comment_content,
                'time': v.create_time
            })
        return restful.success('请求成功!', data=data)
    else:
        return restful.server_error("没有更多内容加载了!")
Example #22
0
 def post(self):
     try:
         if len(request.form) == 2:
             for v in request.form:
                 if v != 'id':
                     object_name = get_str_upper(v, '_') + "Form"
                     form = eval(object_name)(request.form)
         else:
             form = Config_FieldForm(request.form)
         if form.validate():
             cf = ConfigField.query.get(request.form.get('id'))
             if request.form.get('v') is not None:
                 cf.v = request.form.get('v')
             if request.form.get('k') is not None:
                 cf.k = request.form.get('k')
             if request.form.get('desc') is not None:
                 cf.desc = request.form.get('desc')
             if request.form.get('prompt') is not None:
                 cf.prompt = request.form.get('prompt')
             if request.form.get('sorts') is not None:
                 cf.sorts = request.form.get('sorts')
             if request.form.get('state') is not None:
                 cf.state = request.form.get('state')
             if request.form.get('texttype') is not None:
                 cf.texttype = request.form.get('texttype')
             if request.form.get('textvalue') is not None:
                 cf.textvalue = request.form.get('textvalue')
             if request.form.get('type') is not None:
                 cf.type = request.form.get('type')
             db.session.commit()
             write_log(log_type='edit', log_detail='修改配置字段成功')
             return restful.success(message="操作成功",
                                    url=url_for('adminconfig_field.index'))
         else:
             raise ValueError(form.get_err_one())
     except Exception as e:
         write_log(log_type='edit', log_detail="行为:修改配置字段;错误:" + str(e))
         return restful.server_error(message=str(e))
Example #23
0
def delete():
    ids = request.form.get('id')
    taxonomy = request.args.get('taxonomy')
    try:
        if id is not None:
            if taxonomy == 'post_tag':
                Terms.query.filter(Terms.id.in_(
                    ids.split(','))).delete(synchronize_session=False)
                TermTaxonomy.query.filter(
                    TermTaxonomy.term_id.in_(
                        ids.split(','))).delete(synchronize_session=False)
                db.session.commit()
            elif taxonomy == 'category':
                for id_ in ids.split(','):
                    tt = TermTaxonomy.query.filter(
                        TermTaxonomy.taxonomy == 1).all()
                    ids = getChildren(tt, int(id_), ret=[])
                    ids.append(int(id_))
                    ids_ = db.session.query(TermTaxonomy.term_id).filter(
                        TermTaxonomy.id.in_(ids)).all()
                    ids_ = list(map(lambda data: data[0], ids_))
                    TermTaxonomy.query.filter(
                        TermTaxonomy.id.in_(ids_)).delete(
                            synchronize_session=False)
                    Terms.query.filter(
                        Terms.id.in_(ids)).delete(synchronize_session=False)
                    db.session.commit()
            write_log(log_type='delete',
                      log_detail='删除' + TAXONOMY_CN.get(taxonomy) + '成功')
            return restful.success('删除成功!',
                                   url=url_for('adminterms.edit',
                                               taxonomy=taxonomy))
    except Exception as e:
        write_log(log_type='delete',
                  log_detail="行为:删除" + TAXONOMY_CN.get(taxonomy) + ";错误:" +
                  str(e))
        return restful.server_error(message=str(e))
    pass
Example #24
0
 def post(self):
     form = AdminForm(request.form)
     try:
         if form.validate():
             a = Admin(admin_name=request.form.get('admin_name'),
                       password=request.form.get('password'),
                       img=request.form.get('img'),
                       account=request.form.get('account'),
                       sex=request.form.get('sex'),
                       state=request.form.get('state'),
                       create_time=time.time(),
                       last_time=time.time())
             role = Role.query.get(request.form.get('role_id'))
             a.roles = [role]
             db.session.add(a)
             db.session.commit()
             write_log(log_type='add', log_detail='增加操作员成功')
             return restful.success(message="操作成功",
                                    url=url_for('adminadmin.index'))
         else:
             raise ValueError(form.get_err_one())
     except Exception as e:
         write_log(log_type='add', log_detail="行为:新增操作员;错误:" + str(e))
         return restful.server_error(message=str(e))
Example #25
0
def clear_cache():
    cache.clear()
    return restful.success('删除成功!')