Esempio n. 1
0
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
Esempio n. 2
0
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
Esempio n. 3
0
def get_current_request_site_settings():
    """"""
    site = get_current_request_site()
    if site is None:
        return None

    return get_site_settings(site)
Esempio n. 4
0
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)
Esempio n. 5
0
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)
Esempio n. 6
0
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)
Esempio n. 7
0
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)
Esempio n. 8
0
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)
Esempio n. 9
0
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)
Esempio n. 10
0
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
Esempio n. 11
0
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))
Esempio n. 12
0
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)
Esempio n. 13
0
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)
Esempio n. 14
0
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)
Esempio n. 15
0
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)
Esempio n. 16
0
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)