diff --git a/mo/web/org.py b/mo/web/org.py
index bde5ffc810062d23c4a87a43d724cd06e398f982..5c811f78d2956c3b911096e49839cafcf29882f4 100644
--- a/mo/web/org.py
+++ b/mo/web/org.py
@@ -1,8 +1,55 @@
-from flask import render_template, g, redirect, url_for
+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)
diff --git a/mo/web/templates/main.html b/mo/web/templates/main.html
index c6ce30433ff3c8aff46376f8c4caacafeec52f8d..7d8921c0df2d441571e1ab58bef051acc0ac435b 100644
--- a/mo/web/templates/main.html
+++ b/mo/web/templates/main.html
@@ -4,6 +4,8 @@
 
 {% if g.user.is_org or g.user.is_admin %}
 	<p><a href='{{ url_for('org_place_root') }}'>Hierarchie míst</a>
+	<p>Export všech škol: <a href='{{ url_for('org_export_skoly', format='csv') }}'>CSV</a>,
+		<a href='{{ url_for('org_export_skoly', format='tsv') }}'>TSV</a>
 {% endif %}
 
 	<h3>Práva</h3>