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)