def import_wordpress_xml(): """导入 wordpress xml 文件""" site = get_current_request_site() if site is None: return 'site binding error' if request.method != 'POST': return render_template('rp/site_tools/upload_wordpress_xml.html') file = request.files['file'] if file is None or not allowed_file(file.filename): return 'upload file error!' filename = os.path.join(UPLOAD_FOLDER, secure_filename(file.filename)) file.save(filename) response_msg = import_data_from_wordpress_xml( db_session=db.session, site=site, disable_convert_code_tag=False, filename=filename, is_cli_mode=False, is_skip_unknow_author=False ) db.session.commit() return response_msg
def _sidebar(): """""" site = get_current_request_site() #!!!应该传进来 categories = [] terms = Term.query.filter_by(site=site, type='category').order_by('name').all() for term in terms: categories.append({ 'name': term.name, 'desc': term.desc, 'link': url_for('post.post_term_category', term=term.name), }) tags = [] terms = Term.query.filter_by(site=site, type='tag').order_by('name').all() for term in terms: tags.append({ 'name': term.name, 'desc': term.desc, 'link': url_for('post.post_term_tag', term=term.name), }) widgets = { 'categories': categories, 'tags': tags, 'date_years': _widget_date_year(), } return widgets
def get_current_request_site_settings(): """""" site = get_current_request_site() if site is None: return None return get_site_settings(site)
def search(page_num=1): """""" site = get_current_request_site() keywords = request.args.get('keywords', '').strip(',') if not keywords: return redirect(url_for("post.index")) post_query = Post.query.search(site=site, keywords=keywords) #!!!!当前搜索多个关键字有bug if post_query.count() == 1: #only one result posts = post_query.all() post = posts[0] return redirect(url_for('post.post_uuid', uuid=post.uuid)) paginate = { 'title': keywords, 'key': keywords, 'desc': 'Search results for', 'curr_num': page_num, 'view_name': 'post.search', 'keywords': keywords, } return _render_post_paginate(post_query, paginate)
def term_list(type): """""" if type not in ['category', 'tag']: return #!!! site = get_current_request_site() terms = Term.query.filter_by(site=site, type=type).order_by(desc('name')).all() return render_template('rp/site_admin/term_list.html', terms=terms)
def _post_term(term, paginate): """""" site = get_current_request_site() query = Post.query.filter_by(site=site, type='blog', published=True).filter(Post.terms.any(Term.name==term)).order_by(desc('publish_date')) paginate['key'] = term paginate['title'] = term #!!!diaplay name? return _render_post_paginate(query, paginate)
def post_list(type): """""" if not is_valid_post_type(type): return #!!! site = get_current_request_site() posts = Post.query.filter_by(site=site, type=type).order_by(desc('publish_date')).all() return render_template("rp/site_admin/post_list.html", posts=posts, post_type=type)
def post_author(author, page_num=1): """""" site = get_current_request_site() query = Post.query.filter_by(site=site, type='blog', published=True).filter(Post.author.has(User.name==author)).order_by(desc('publish_date')) paginate = { 'title': author, #!!!display name 'curr_num': page_num, 'view_name': 'post.post_author', } return _render_post_paginate(query, paginate)
def post_paginate(page_num=1): """""" site = get_current_request_site() query = Post.query.filter_by(site=site, type='blog', published=True).order_by(desc('publish_date')) paginate = { 'title': 'Home', #!!!需要改为站点相关信息 'curr_num': page_num, 'view_name': 'post.post_paginate', } return _render_post_paginate(query, paginate)
def get_current_request_site_info(): """""" site = get_current_request_site() if site is None: return None site_info = { 'id': site.id, 'domain': site.domain, 'settings': get_site_settings(site), } return site_info
def post_new(type): """""" if not is_valid_post_type(type): return #!!! user = User.query.filter_by(id=current_user.id).first() if user is None: return #!!! site = get_current_request_site() post = Post(author=user, site=site, type=type) db.session.add(post) db.session.commit() return redirect(url_for('.post_edit', uuid=post.uuid))
def post_date(year, page_num=1): """""" site = get_current_request_site() query = Post.query.filter_by(site=site, type='blog', published=True) \ .filter(Post.publish_date>=datetime(year, 1, 1), Post.publish_date<datetime(year+1, 1, 1)) \ .order_by(desc('publish_date')) paginate = { 'title': year, 'key': year, 'desc': 'Viewing the date archives', 'curr_num': page_num, 'view_name': 'post.post_date', } return _render_post_paginate(query, paginate)
def setting_edit(key): """""" site = get_current_request_site() site_setting = SiteSetting.query.filter_by(site=site, key=key).first() if site_setting is None: site_setting = SiteSetting(site, key, None) form = SettingsForm(obj=site_setting) if form.validate_on_submit(): form.populate_obj(site_setting) db.session.add(site_setting) db.session.commit() flash("setting updated", "success") else: flash('setting edit error') return render_template("rp/site_admin/setting_edit.html", form=form, site_setting=site_setting)
def term_edit(name): """""" site = get_current_request_site() term = Term.query.filter_by(site=site, name=name).first_or_404() #!!! form = TermEditFrom(obj=term) if form.validate_on_submit(): form.populate_obj(term) db.session.add(term) db.session.commit() flash("term updated", "success") #return redirect(url_for('.blog')) else: flash('term edit error') pass return render_template("rp/site_admin/term_edit.html", form=form, term=term)
def page_name(name): """""" site = get_current_request_site() post = Post.query.filter_by(site=site, name=name, published=True, type='page').first_or_404() return _render_post(post)
def post_uuid(uuid): """""" site = get_current_request_site() post = Post.query.filter_by(site=site, uuid=str(uuid), published=True).first_or_404() return _render_post(post)