""" Collection of controllers to build reports """ from plugin_dbui import Selector def index(): """Main Controller handling report. """ return 'Report section' def report_1(): """First trial """ return "report_1" def report_2(): """Return the URL arguments """ import time selector = Selector(virtdb.foo1) # simulate a rather long processing time.sleep(5) # standard response with the selected values return dict(test=selector.as_dict(), vars=request.vars) def report_3(): """Return the URL arguments """ selector = Selector(virtdb.harvester_selector) response.view = 'reports/report_2.html' return dict(test=selector.as_dict()) def report_4(): """Execute a javascript in the view using python information """ import json from plugin_dbui import Store selector = Selector(virtdb.report4) cfg = Store() cfg.fields = [dict(name='controller', type='string'), dict(name='host', type='string'), dict(name='collections', type='string'), dict(name='ratio', type='number')] if selector.grouping or selector.grouping_summary: cfg.groupField = 'controller' cfg.data = [] for row in db().select(db.harvesters.ALL): di = dict(controller=row.controller, host='<a href="http://www.web2py.com">%s</a>' % row.host, collections=row.collections, ratio=row.ratio) cfg['data'].append(di) return dict(msg="Hello world", cfg_store=json.dumps(cfg), selector=json.dumps(selector))