Skip to content
Snippets Groups Projects
Commit 5d2e97e8 authored by Martin Mareš's avatar Martin Mareš
Browse files

Export odsunut do samostatného zdrojáku

parent 44088797
Branches
No related tags found
No related merge requests found
......@@ -252,6 +252,7 @@ import mo.web.menu
import mo.web.misc
import mo.web.org
import mo.web.org_contest
import mo.web.org_export
import mo.web.org_jobs
import mo.web.org_log
import mo.web.org_place
......
......@@ -3,17 +3,16 @@ from dataclasses import dataclass, field
from flask import render_template, redirect, url_for, request, flash, g
import re
from sqlalchemy import and_, or_, tuple_, not_
from sqlalchemy.orm import aliased, joinedload
from sqlalchemy.orm import joinedload
from typing import List, Set, Optional, Tuple, DefaultDict
import mo.config as config
import mo.db as db
import mo.rights
import mo.users
import mo.rights
from mo.web import app
from mo.web.jinja import user_url
import mo.web.org_round
from mo.web.table import Table, Row, Column
@dataclass
......@@ -201,22 +200,6 @@ def want_create_contest(o: OrgOverview) -> bool:
return False
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='okres_code', name='kod_okresu'),
Column(key='kraj_code', name='kod_kraje'),
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'),
)
def magic_search(query: str):
search = re.fullmatch(r'([cpru])(\d{1,9})', request.args['search'])
if not search:
......@@ -244,44 +227,3 @@ def magic_search(query: str):
flash('Nenalezeno', 'danger')
return None
@app.route('/org/export/schools')
def org_export_schools():
sess = db.get_session()
format = request.args.get('format', 'en_csv')
def gen_rows():
town = aliased(db.Place)
okres = aliased(db.Place)
kraj = aliased(db.Place)
for p, s, t, o, k in (
sess.query(db.Place, db.School, town, okres, kraj)
.filter(db.Place.type == db.PlaceType.school)
.filter(db.Place.place_id == db.School.place_id)
.filter(db.Place.parent == town.place_id)
.filter(town.parent == okres.place_id)
.filter(okres.parent == kraj.place_id)
.yield_per(100)):
yield Row(keys={
'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,
'okres_code': o.get_code(),
'kraj_code': k.get_code(),
})
table = Table(
id="skoly",
columns=school_export_columns,
rows=gen_rows(),
filename='skoly',
)
return table.send_as(format, streaming=True)
from flask import request
from sqlalchemy.orm import aliased
import mo.db as db
from mo.web import app
from mo.web.table import Table, Row, Column
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='okres_code', name='kod_okresu'),
Column(key='kraj_code', name='kod_kraje'),
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/schools')
def org_export_schools():
sess = db.get_session()
format = request.args.get('format', 'en_csv')
def gen_rows():
town = aliased(db.Place)
okres = aliased(db.Place)
kraj = aliased(db.Place)
for p, s, t, o, k in (
sess.query(db.Place, db.School, town, okres, kraj)
.filter(db.Place.type == db.PlaceType.school)
.filter(db.Place.place_id == db.School.place_id)
.filter(db.Place.parent == town.place_id)
.filter(town.parent == okres.place_id)
.filter(okres.parent == kraj.place_id)
.yield_per(100)):
yield Row(keys={
'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,
'okres_code': o.get_code(),
'kraj_code': k.get_code(),
})
table = Table(
id="skoly",
columns=school_export_columns,
rows=gen_rows(),
filename='skoly',
)
return table.send_as(format, streaming=True)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment