def admin_pages(route): if request.method == 'GET' and request.args.get('mode') == 'create': return render_template('admin/editor.html') if route and request.method == 'GET': page = Pages.query.filter_by(route=route).first() return render_template('admin/editor.html', page=page) if route and request.method == 'POST': page = Pages.query.filter_by(route=route).first() errors = [] html = request.form['html'] route = request.form['route'] if not route: errors.append('Missing URL route') if errors: page = Pages(html, "") return render_template('/admin/editor.html', page=page) if page: page.route = route page.html = html db.session.commit() return redirect(url_for('admin.admin_pages')) page = Pages(route, html) db.session.add(page) db.session.commit() return redirect(url_for('admin.admin_pages')) pages = Pages.query.all() return render_template('admin/pages.html', routes=pages, css=get_config('css'))
def admin_pages_view(): route = request.args.get('route') if request.method == 'GET' and request.args.get('mode') == 'create': return render_template('admin/editor.html') if route and request.method == 'GET': page = Pages.query.filter_by(route=route).first() return render_template('admin/editor.html', page=page) if request.method == 'POST': html = request.form['html'] route = request.form['route'].lstrip('/') page = Pages.query.filter_by(route=route).first() errors = [] if not route: errors.append('Missing URL route') if errors: page = Pages(html, route) return render_template('/admin/editor.html', page=page) if page: page.route = route page.html = html db.session.commit() db.session.close() with app.app_context(): cache.clear() return redirect(url_for('admin_pages.admin_pages_view')) page = Pages(route, html) db.session.add(page) db.session.commit() db.session.close() with app.app_context(): cache.clear() return redirect(url_for('admin_pages.admin_pages_view')) pages = Pages.query.all() return render_template('admin/pages.html', routes=pages, css=utils.get_config('css'))
def admin_pages_view(): page_id = request.args.get('id') page_op = request.args.get('operation') if request.method == 'GET' and page_op == 'preview': page = Pages.query.filter_by(id=page_id).first_or_404() return render_template('page.html', content=markdown(page.html)) if request.method == 'GET' and page_op == 'create': return render_template('admin/editor.html') if page_id and request.method == 'GET': page = Pages.query.filter_by(id=page_id).first() return render_template('admin/editor.html', page=page) if request.method == 'POST': page_form_id = request.form.get('id') title = request.form['title'] html = request.form['html'] route = request.form['route'].lstrip('/') auth_required = 'auth_required' in request.form if page_op == 'preview': page = Pages(title, route, html, draft=False) return render_template('page.html', content=markdown(page.html)) page = Pages.query.filter_by(id=page_form_id).first() errors = [] if not route: errors.append('Missing URL route') if errors: page = Pages(title, html, route) return render_template('/admin/editor.html', page=page) if page: page.title = title page.route = route page.html = html page.auth_required = auth_required if page_op == 'publish': page.draft = False db.session.commit() db.session.close() cache.clear() return jsonify({ 'result': 'success', 'operation': page_op }) if page_op == 'publish': page = Pages(title, route, html, draft=False, auth_required=auth_required) elif page_op == 'save': page = Pages(title, route, html, auth_required=auth_required) db.session.add(page) db.session.commit() db.session.close() cache.clear() return jsonify({ 'result': 'success', 'operation': page_op }) pages = Pages.query.all() return render_template('admin/pages.html', pages=pages)