def update_page(bookId, pageId): errors = ["An error occurred while updating your page."] the_page = Page.query.get(pageId) form = PageForm() form['csrf_token'].data = request.cookies['csrf_token'] if form.validate_on_submit(): the_page.update_page_data(form.data['title'], form.data["text"]) db.session.add(the_page) db.session.commit() return {the_page.get_id(): the_page.to_dict()} return {"errors": errors}
def create_page(bookId): errors = ["An error occurred while creating a new page."] form = PageForm() form['csrf_token'].data = request.cookies['csrf_token'] if form.validate_on_submit(): new_page = Page(title=form.data['title'], text=form.data["text"], book_id=bookId) db.session.add(new_page) db.session.commit() return {new_page.get_id(): new_page.to_dict()} return {"errors": errors}
def submit_page(path): path = decode_path(path) form = PageForm() if form.validate_on_submit(): photo = form.img.data filename = photos.save(photo) if photo else DEFAULT_IMAGE page = Page(path=path, title=form.title.data, text=form.text.data, img=filename, author=current_user) db.session.add(page) db.session.commit() return redirect(url_for('submit')) info = { 'title': 'SUBMIT: PAGE', 'homepage': False, 'banner_img': DEFAULT_IMAGE, 'form': form, 'path': path } return render_template('submit/page.html', info=info)
def edit_page(path=''): if not ModuleAPI.can_write('page'): return abort(403) page = Page.get_by_path(path) form = request.form if page: revision = page.get_latest_revision() # Add the `needs_paid` option to the revision, so it will be inside # the form. revision.needs_paid = revision.page.needs_paid form = PageForm(form, revision) else: form = PageForm() groups = Group.query.all() # on page submit (edit or create) if form.validate_on_submit(): # if there was no page we want to create an entire new page (and not # just a revision) if not page: page = Page(path) page.needs_paid = form['needs_paid'].data db.session.add(page) db.session.commit() custom_form_id = int(form.custom_form_id.data) if custom_form_id == 0: custom_form_id = None new_revision = PageRevision(page, form.nl_title.data.strip(), form.en_title.data.strip(), form.comment.data.strip(), current_user, form.nl_content.data.strip(), form.en_content.data.strip(), 'filter_html' in form, custom_form_id) db.session.add(new_revision) db.session.commit() # Enter permission in db for form_entry, group in zip(form.permissions, groups): permission_entry = PagePermission.query\ .filter(PagePermission.group_id == group.id, PagePermission.page_id == page.id).first() permission_level = form_entry.select.data if permission_entry: permission_entry.permission = permission_level else: permission_entry = PagePermission(group.id, page.id, permission_level) db.session.add(permission_entry) db.session.commit() flash(_('The page has been saved'), 'success') # redirect newly created page return redirect(url_for('page.get_page', path=path)) else: flash_form_errors(form) for group in groups: permission = None if page: permission = PagePermission.query\ .filter(PagePermission.group_id == group.id, PagePermission.page_id == page.id)\ .first() if permission: form.permissions\ .append_entry({'select': permission.permission}) else: form.permissions.append_entry({}) return render_template('page/edit_page.htm', page=page, form=form, path=path, groups=zip(groups, form.permissions))