Skip to content
Snippets Groups Projects
Select Git revision
  • 99ea6dcb7b478fed0157f1104fdea6bb3181e9e0
  • devel default
  • master
  • fo
  • jirka/typing
  • fo-base
  • mj/submit-images
  • jk/issue-96
  • jk/issue-196
  • honza/add-contestant
  • honza/mr7
  • honza/mrf
  • honza/mrd
  • honza/mra
  • honza/mr6
  • honza/submit-images
  • honza/kolo-vs-soutez
  • jh-stress-test-wip
  • shorten-schools
19 results

org.py

Blame
  • 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)