123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- """
- Backend
- """
- from flask_login import login_required, current_user
- from flask_menu import register_menu
- from flask import render_template, request, redirect, url_for, flash, Blueprint
- from app import db
- from app.models import Page
- BLUEPRINT = Blueprint(
- 'backend_file',
- __name__,
- template_folder='templates'
- )
- @BLUEPRINT.route('/create', methods=["GET", "POST"])
- @register_menu(BLUEPRINT, 'create_file', 'Create file')
- @login_required
- def create():
- """Page creating"""
- pages = Page.query.all()
- if request.method == 'POST':
- page = Page()
- page.title = request.form['title']
- page.source = request.form['source']
- page.user_id = current_user.id
- page.parent_id = request.form['parent_id'] if request.form['parent_id'] else None
- db.session.add(page)
- db.session.commit()
- flash('Page "%s" successfully created' % page.title, 'success')
- return render_template('page/create.j2', pages=pages)
- @BLUEPRINT.route('/edit/<int:page_id>', methods=["GET", "POST"])
- @login_required
- def edit(page_id):
- """Page editing"""
- page = Page.query.get(page_id)
- pages = Page.query.filter(Page.id != page.id).all()
- if request.method == 'POST':
- page.title = request.form['title']
- page.source = request.form['source']
- page.parent_id = request.form['parent_id'] if request.form['parent_id'] else None
- page.user_id = current_user.id
- db.session.add(page)
- db.session.commit()
- flash('Page "%s" successfully edit' % page.title, 'success')
- return render_template(
- 'page/edit.j2',
- page=page,
- pages=pages
- )
- @BLUEPRINT.route('/remove/<int:page_id>')
- @login_required
- def remove(page_id):
- """Page removing"""
- page = Page.query.get(page_id)
- db.session.delete(page)
- db.session.commit()
- flash('Page "%s" successfully remove' % page.title, 'success')
- return redirect(url_for('backend.index'))
- @BLUEPRINT.route('/view/<int:page_id>')
- @login_required
- def view(page_id):
- """Display page"""
- page = Page.query.get(page_id)
- return render_template('page/view.j2', page=page)
|