def edit(page_id): page = Page.objects.with_id(page_id) form = PageForm(request.form, page) if form.validate_on_submit(): form.populate_obj(page) page.save() return redirect('/wiki/') return render_template('wiki_edit.html', title="Wiki - edit page " + page.title, page=page, form=form)
def create(): page = Page() form = PageForm(request.form, page) if form.validate_on_submit(): form.populate_obj(page) page.save() return redirect('/wiki/') return render_template('wiki_create.html', title="Wiki - create new page", page=page, form=form)
def save_page(page_id=None): """Save Page to database If page_id is None a new Page will be inserted in the database. Otherwise the existing Page will be updated. """ message = 'Page updated' page_form = PageForm(request.form) if not page_form.validate(): flash('ERROR: errors detected. Page NOT saved!', category='error') return edit_page(page_id=page_id, page_form=page_form) if page_id is None: page = Page(request.form['title'], request.form['content']) page.status_id = 1 page.user_id = session['user_id'] page.createdate = datetime.now() else: page = get_page(page_id) page_form.populate_obj(page) page.lastmoddate = datetime.now() # compile input to html page.compile(app.config['REPL_TAGS']) # update pubdate if page's pubdate is None and its status is set # to public if request.form['status'] == 'public' and \ unicode(page.status) != 'public' and \ page.pubdate is None: page.pubdate = datetime.now() page.status = get_status(request.form['status']) if page.slug is None: page.slug = slugify(page.title) if page_id is None: db_session.add(page) message = 'New page was successfully added' db_session.commit() flash(message) return redirect(url_for('edit_page', page_id=page.id))