#!/usr/bin/python3.4
#from pylons import request, response, session, url, tmpl_context as c
#from pylons.controllers.util import abort, redirect
-from flask import request
+from flask import request, abort, url_for
import paginate
import sqlalchemy as sa
import wrpylib.mwmarkup
import wradmin.model as model
-from wradmin.genshi import render_genshi_template
-
-
-class TemplateContext:
- pass
+from wradmin.genshi import render_genshi_template, TemplateContext
class RodelbahnController:
q = model.meta.Session.query(model.WrSledrunCache)
q = q.order_by(model.WrSledrunCache.page_title)
c = TemplateContext()
- c.paginator = paginate.Page(q.all(), page=int(request.args.get('page', 1)), items_per_page = 25)
+ c.paginator = paginate.Page(q.all(), page=int(request.args.get('page', 1)),
+ url_maker=lambda page: url_for('rodelbahn_list', page=page),
+ items_per_page=25)
return render_genshi_template('rodelbahn_list.html', c=c)
-
-
+
def view(self, id):
- "Displays a sled run"
+ """Displays a sled run"""
q = model.meta.Session.query(model.WrSledrunCache)
- c.sledding = q.get(id)
- if c.sledding is None: abort(404)
+ c = TemplateContext()
+ c.sledding = q.get(id)
+ if c.sledding is None:
+ abort(404)
q = model.meta.Session.query(model.WrReport)
q = q.filter_by(page_id=id).order_by(sa.sql.expression.desc(model.WrReport.id))
- c.paginator = paginate.Page(q, page=int(request.params.get('page', 1)), items_per_page = 25)
- return render('rodelbahn_view.html')
-
-
+ c.paginator = paginate.Page(q.all(), page=int(request.args.get('page', 1)),
+ url_maker=lambda page: url_for('rodelbahn_view', id=id, page=page),
+ items_per_page=25)
+ return render_genshi_template('rodelbahn_view.html', c=c)
+
def update(self):
"Updates the wrsledruncache table from the wiki"
c = model.meta.Session.connection()