1 from flask import request, abort, redirect, url_for, flash, render_template
3 import sqlalchemy as sa
5 import wrpylib.wrmwmarkup
6 import wrpylib.wrmwcache
7 import wrpylib.mwmarkup
9 import wradmin.model as model
12 class RodelbahnController:
15 """Lists all sled runs"""
16 q = model.meta.Session.query(model.WrSledrunCache)
17 q = q.order_by(model.WrSledrunCache.page_title)
18 paginator = paginate.Page(q.all(), page=int(request.args.get('page', 1)),
19 url_maker=lambda page: url_for('rodelbahn_list', page=page),
21 return render_template('rodelbahn_list.html', paginator=paginator)
24 """Displays a sled run"""
25 q = model.meta.Session.query(model.WrSledrunCache)
29 q = model.meta.Session.query(model.WrReport)
30 q = q.filter_by(page_id=id).order_by(sa.sql.expression.desc(model.WrReport.id))
31 paginator = paginate.Page(q.all(), page=int(request.args.get('page', 1)),
32 url_maker=lambda page: url_for('rodelbahn_view', id=id, page=page),
34 return render_template('rodelbahn_view.html', sledding=sledding, paginator=paginator)
37 """Updates the wrsledruncache table from the wiki"""
38 c = model.meta.Session.connection()
40 wrpylib.wrmwcache.update_wrsledruncache(c)
41 model.meta.Session.commit()
42 flash('Die Rodelbahnliste wurde erfolgreich aktualisiert.', 'info')
43 except wrpylib.wrmwcache.UpdateCacheError as e:
44 title = str(e.args[1])
45 title = wrpylib.mwmarkup.dbkey_to_title(title)
47 msg = msg.replace('\n', '; ')
49 flash("Fehler bei Rodelbahn '{0}': {1}".format(title, msg), 'error')
51 flash(str(e), 'error')
52 # Redirect to result page
53 return redirect(url_for('rodelbahn_list'))
55 def update_regioncache(self):
56 """Updates the wrregioncache table from the wiki"""
57 c = model.meta.Session.connection()
59 wrpylib.wrmwcache.update_wrregioncache(c)
60 model.meta.Session.commit()
61 flash('Die Rodelbahneinträge in den Regionslisten wurden erfolgreich aktualisiert.', 'info')
62 except wrpylib.wrmwcache.UpdateCacheError as e:
63 flash(str(e), 'error')
64 # Redirect to result page
65 return redirect(url_for('rodelbahn_list'))
67 def update_mapcache(self):
68 """Updates the wrmappointcache and wrmappathcache tables from the wiki."""
69 c = model.meta.Session.connection()
71 wrpylib.wrmwcache.update_wrmapcache(c)
72 model.meta.Session.commit()
73 flash('Die Landkarteninformationen aus dem Wiki wurden erfolgreich aktualisiesrt.', 'info')
74 except wrpylib.wrmwcache.UpdateCacheError as e:
75 flash(str(e), 'error')
76 # Redirect to result page
77 return redirect(url_for('rodelbahn_list'))