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
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
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))
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))
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))
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))
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))
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
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))
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))
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("没有更多内容加载了!")
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))
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))
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)
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
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))
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))
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))
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)
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))
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("没有更多内容加载了!")
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))
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
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))
def clear_cache(): cache.clear() return restful.success('删除成功!')