コード例 #1
0
ファイル: piki.py プロジェクト: aostrega/piki
def write():
    """ Renders a list of the user's wikis and a small form to create them,
            and handles creation of new wikis.
    -] title - new wiki title
    """
    if request.method == 'POST':
        f = request.form
        title_slug = slugify(f['title'])
        # If a wiki with this title has already been made, redirect to it.
        for wiki in g.user.wikis:
            if title_slug == wiki.title_slug:
                return redirect('wiki', user_slug=g.user_name_slug, 
                    title_slug=title_slug)
        # If not, create a new wiki and redirect to it.
        wiki = Wiki(title=f['title'], title_slug=title_slug, author=g.user,
            publicity=0)
        page = Page(wiki=wiki, title=f['title'], title_slug=title_slug, 
            content="<h1>%s</h1><p></p>" % f['title'], next_page_id=-1)
        models.session.commit()
        wiki.first_page_id = page.id
        models.session.commit()
        return redirect(url_for('wiki', user_slug=wiki.author.name_slug,
            wiki_slug=wiki.title_slug))
    else:
        if not g.user:
            flash("You must be logged in to do that.")
            return redirect(url_for('main'))
        return render_template('write.html', wikis=g.user.wikis)