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.tile import Tile, TileForm from app.controllers.crud_controller import CrudView class TileView(CrudView): model = Tile form = TileForm def where(self, query, args): graph_id = args.get('graph_id', default=None) if graph_id is not None: query = query.filter(Tile.graph_id == int(graph_id)) page_id = args.get('page_id', default=None) if page_id is not None: query = query.filter(Tile.page_id == int(page_id)) return query def on_create(self, session, form, item): item.settings = form['settings'] item.graph_id = int(form['graph_id']) item.page_id = int(form['page_id']) if 'target_page_id' in form and form['target_page_id']: item.target_page_id = int(form['target_page_id']) def on_update(self, session, form, item): item.settings = form['settings'] if 'target_page_id' in form and form['target_page_id']: item.target_page_id = int(form['target_page_id']) else: item.target_page_id = None