Ejemplo n.º 1
0
def entry_editing_page():
    g.active = {'entry': True}

    if request.method == 'GET':
        entry_id = request.args.get('entry_id', '').strip()
    else:
        entry_id = request.form.get('entry_id', '').strip()

    entry = Entry.get_by_id(int(entry_id)) if entry_id.isdigit() else None

    if request.method == 'POST':
        if entry is None:
            return abort(400)

        title = request.form.get('title', '').strip()
        subtitle = request.form.get('subtitle', '').strip()
        body = request.form.get('body', '').strip()
        extend = request.form.get('extend', '').strip()
        s_tags = request.form.get('tags', '').strip()

        to_save = False

        if title != entry.title:
            entry.title = title
            to_save = True

        if subtitle != entry.subtitle:
            entry.subtitle = subtitle
            to_save = True

        if body != entry.body:
            entry.body = body
            to_save = True

        if extend != entry.extend:
            entry.extend = extend
            to_save = True

        if to_save:
            entry.save()

        labels = list(set([t.strip() for t in s_tags.split(',')]))
        tags = [tag for tag in entry.tags]

        if labels != [tag.label for tag in tags]:
            for tag in tags:
                tag.delete()

            for label in labels:
                Tag(entry.id, label).save(clear_cache = False)

    g.entry = entry

    return render_template('admin/edit_entry_page.html')
Ejemplo n.º 2
0
def delete_entry():
    entry_id = request.form.get('entry_id', '').strip()

    if entry_id and entry_id.isdigit():
        entry = Entry.get_by_id(int(entry_id))
        if entry:
            entry.delete()
            return redirect(url_for('admin_top_page'))
        else:
            return abort(404)
    else:
        return abort(400)
Ejemplo n.º 3
0
def entry_page(entry_id):
    mc_key = 'Entry_%d' % entry_id

    html = g.mc.get(mc_key)
    if html is None:
        entry = Entry.get_by_id(entry_id)
        if entry:
            g.entry = entry
            html = render_template('entry_page.html')
            g.mc.set(mc_key, html)
        else:
            return abort(404)
    return html
Ejemplo n.º 4
0
def post_comment():
    entry_id = request.form.get('entry_id', '').strip()
    author_name = request.form.get('author_name', '').strip()
    title = request.form.get('comment_title', '').strip()
    body = request.form.get('comment_body', '').strip()

    if entry_id and entry_id.isdigit():
        entry = Entry.get_by_id(int(entry_id))
        if entry:
            pass
        else:
            return abort(400)
    else:
        return abort(400)

    if author_name and title and body:
        Comment(entry_id = entry.id,
                author_name = author_name,
                title = title,
                body = body).save(clear_cache = False)

        return redirect(url_for('entry_page', entry_id = entry.id))
    else:
        return abort(400)