Exemplo n.º 1
0
def load_values_for_side():
    g.recent_entries = Entry.fetch_recent_entries(
        max(g.items_for_side, g.entries_per_page))
    g.recent_comments = Comment.fetch_recent_comments(
        max(g.items_for_side, g.entries_per_page))
    g.tag_counts = Tag.fetch_tag_counts()
    g.archives = Entry.fetch_archives()
Exemplo n.º 2
0
Arquivo: day.py Projeto: setomits/mow
def day_page(year, month, day, page = 1):
    if page < 1:
        return redirect(url_for('day_page',
                                year = year, month = month, day = day))

    try:
        posted_on = datetime(year, month, day)
    except ValueError:
        return abort(400)
    else:
        g.posted_on = posted_on
        g.page = page
        g.entries = Entry.fetch_day_entries(
            posted_on = posted_on,
            page = page,
            limit = g.entries_per_page)

        if g.entries_per_page * (page - 1) + len(g.entries) < \
           Entry.n_day_entries(posted_on):
            g.has_older = True
        else:
            g.has_older = False
        g.has_newer = True if page > 1 else False

        return render_template('day_page.html')
Exemplo n.º 3
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')
Exemplo n.º 4
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)
Exemplo n.º 5
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
Exemplo n.º 6
0
Arquivo: tag.py Projeto: setomits/mow
def tag_page(label, page = 1):
    if page < 1:
        return redirect(url_for('tag_page', label = label))

    g.label = label
    g.page = page
    g.entries = Entry.fetch_tagged_entries(
        label = label,
        page = page,
        limit = g.entries_per_page)

    if g.entries_per_page * (page - 1) + len(g.entries) < Tag.n_entries(label):
        g.has_older = True
    else:
        g.has_older = False
    g.has_newer = True if page > 1 else False

    return render_template('tag_page.html')
Exemplo n.º 7
0
def admin_top_page():
    g.active = {"top": True}
    g.sqlalchemy_database_uri = app.config["SQLALCHEMY_DATABASE_URI"].replace("sqlite:///", "")
    g.n_total_comments = Comment.n_total_count()
    g.n_total_entries = Entry.n_total_count()
    g.n_total_tags = Tag.n_total_count()
    g.n_total_users = User.n_total_count()
    g.db_updated_at = datetime.fromtimestamp(getmtime(g.sqlalchemy_database_uri))
    g.db_bytes = getsize(g.sqlalchemy_database_uri)

    g.mc_stats = {}
    for server, stats in g.mc.get_stats():
        d = dict(
            cmd_get=int(stats[b"cmd_get"]), get_hits=int(stats[b"get_hits"]), total_items=int(stats[b"total_items"])
        )
        d["hit_ratio"] = "%5.2lf %%" % (d["get_hits"] / d["cmd_get"] * 100)
        g.mc_stats[server.decode("utf-8")] = d

    return render_template("admin/top.html")
Exemplo n.º 8
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)