Select Git revision
-
Martin Mareš authoredMartin Mareš authored
org.py 1.67 KiB
from flask import render_template, g, redirect, url_for, request
from sqlalchemy.orm import aliased
import mo.db as db
from mo.web.table import Table, Column
from mo.web import app
@app.route('/org/')
def org_index():
return render_template('org_index.html')
school_export_columns = (
Column(key='code', name='kod'),
Column(key='name', name='nazev'),
Column(key='town_code', name='kod_obce'),
Column(key='town', name='obec'),
Column(key='red_izo', name='red_izo'),
Column(key='ico', name='ico'),
Column(key='official_name', name='ofic_nazev'),
Column(key='address', name='adresa'),
Column(key='is_zs', name='typ_zs'),
Column(key='is_ss', name='typ_ss'),
)
@app.route('/org/export/skoly')
def org_export_skoly():
sess = db.get_session()
format = request.args.get('format', 'csv')
def gen_rows():
town = aliased(db.Place)
for p, s, t in (
sess.query(db.Place, db.School, town)
.filter(db.Place.type == db.PlaceType.school)
.filter(db.Place.place_id == db.School.place_id)
.filter(db.Place.parent == town.place_id)
.yield_per(100)):
yield {
'code': p.get_code(),
'name': p.name,
'red_izo': s.red_izo,
'ico': s.ico,
'official_name': s.official_name,
'address': s.address,
'is_zs': int(s.is_zs),
'is_ss': int(s.is_ss),
'town_code': t.get_code(),
'town': t.name,
}
table = Table(school_export_columns, gen_rows(), 'skoly')
return table.send_as(format, streaming=True)