summaryrefslogtreecommitdiff
path: root/cli/app/controllers/tile_controller.py
blob: 3fddbec0397f5985ee4c593bad189b92431c1696 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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