2 # -*- coding: iso-8859-15 -*-
5 from pylons import request, response, session, url, tmpl_context as c
6 from pylons.controllers.util import abort, redirect
7 import webhelpers.paginate as paginate
9 from wradmin.lib.base import BaseController, render
10 import wradmin.model as model
11 import sqlalchemy as sa
15 import wrpylib.wrmwmarkup
16 import wrpylib.wrmwcache
18 from weberror import collector # Prevent a bug of weberror # See https://bitbucket.org/bbangert/weberror/issue/3/nameerror-global-name-fallback_encoding-is-not
19 collector.FALLBACK_ENCODING = 'utf-8' # --"--
21 log = logging.getLogger(__name__)
24 class RodelbahnController(BaseController):
27 return render('index.html')
32 q = model.meta.Session.query(model.WrSledrunCache)
33 q = q.order_by(model.WrSledrunCache.page_title)
34 c.paginator = paginate.Page(q, page=int(request.params.get('page', 1)), items_per_page = 25)
35 return render('rodelbahn_list.html')
40 q = model.meta.Session.query(model.WrSledrunCache)
41 c.sledding = q.get(id)
42 if c.sledding is None: abort(404)
43 q = model.meta.Session.query(model.WrReport)
44 q = q.filter_by(page_id=id).order_by(sa.sql.expression.desc(model.WrReport.id))
45 c.paginator = paginate.Page(q, page=int(request.params.get('page', 1)), items_per_page = 25)
46 return render('rodelbahn_view.html')
50 "Updates the wrsledruncache table from the wiki"
51 c = model.meta.Session.connection()
53 wrpylib.wrmwcache.update_wrsledruncache(c)
54 session['flash'] = u'Die Rodelbahnliste wurde erfolgreich aktualisiert.'
55 except wrpylib.wrmwcache.UpdateCacheError as e:
56 if len(e.args) == 3: session['flash'] = u"Fehler bei Rodelbahn '{0}': {1}".format(e.args[1], e.args[2])
57 else: session['flash'] = unicode(e)
59 # Redirect to result page
60 return redirect(url(controller='rodelbahn', action='list'))