from flask import request, jsonify, redirect from flask_classful import route from werkzeug.datastructures import MultiDict from app.sql.common import db, Session from app.sql.models.page import Page, PageForm from app.sql.models.tile import Tile from app.controllers.crud_controller import CrudView class PageView(CrudView): model = Page form = PageForm def where(self, query, args): graph_id = args.get('graph_id', default=None) if graph_id is not None: query = query.filter(Page.graph_id == int(graph_id)) return query def on_create(self, session, form, item): item.settings = form['settings'] item.graph_id = int(form['graph_id']) def on_update(self, session, form, item): item.settings = form['settings'] def on_destroy(self, session, item): session.query(Tile).filter(Tile.page_id == item.id).delete(synchronize_session=False)