def new(request): """The new-question form.""" form = QuestionForm() if request.method == 'POST' and form.validate(): topic = form.create_topic() session.commit() request.flash(_(u'Your question was posted.')) return redirect(url_for(topic)) return render_template('kb/new.html', form=form.as_widget())
def edit_post(request, id): post, revision = _load_post_and_revision(request, id) if not request.user.can_edit(post): raise Forbidden() if post.is_question: form = QuestionForm(post.topic, revision=revision) else: form = ReplyForm(post=post, revision=revision) if request.method == 'POST' and form.validate(): form.save_changes() session.commit() request.flash(_('The post was edited.')) return redirect(url_for(post)) def _format_entry(author, date, extra=u''): return _(u'%s (%s)') % (author, format_datetime(date)) + extra post_revisions = [(revision is None, '', _format_entry( (post.editor or post.author).display_name, post.updated, u' [%s]' % _(u'Current revision')))] + \ [(revision == entry, entry.id, _format_entry( entry.editor.display_name, entry.date)) for entry in post.revisions.order_by(PostRevision.date.desc())] return render_template('kb/edit_post.html', form=form.as_widget(), post=post, all_revisions=post_revisions)