# -*- coding: utf-8 -*-
# try something like

def index():
    odb = odbs[request.args(0)]
    res = odb(odb.geometry_columns.geometry_column!=None).select(
        *[odb.geometry_columns[f] for f in odb.geometry_columns.fields if f!="id"]
    )
    return dict(tabinfos=res, odb=request.args(0))

def table():
    odb = odbs[request.args(0)]
    tn = request.args(1)
    geoms = odb(odb.geometry_columns.table_name==tn).select(odb.geometry_columns.table_name, odb.geometry_columns.geometry_column)
    _bbox = "ST_AsText(BOX2D(ST_Extent(%(table_name)s.%(geometry_column)s)))"
    envs = {row.geometry_column: odb(odb[tn]).select(_bbox % row).first() \
        for row in geoms}

    def _table(odb, tablename):
        return locals()
    return dict(_table(*request.args), envs=envs, bbox=_bbox)

def table2():
    return table()
