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
19 from weberror import collector # Prevent a bug of weberror # See https://bitbucket.org/bbangert/weberror/issue/3/nameerror-global-name-fallback_encoding-is-not
20 collector.FALLBACK_ENCODING = 'utf-8' # --"--
22 log = logging.getLogger(__name__)
25 class RodelbahnController(BaseController):
28 return render('index.html')
33 q = model.meta.Session.query(model.WrSledrunCache)
34 q = q.order_by(model.WrSledrunCache.page_title)
35 c.paginator = paginate.Page(q, page=int(request.params.get('page', 1)), items_per_page = 25)
36 return render('rodelbahn_list.html')
41 q = model.meta.Session.query(model.WrSledrunCache)
42 c.sledding = q.get(id)
43 if c.sledding is None: abort(404)
44 q = model.meta.Session.query(model.WrReport)
45 q = q.filter_by(page_id=id).order_by(sa.sql.expression.desc(model.WrReport.id))
46 c.paginator = paginate.Page(q, page=int(request.params.get('page', 1)), items_per_page = 25)
47 return render('rodelbahn_view.html')
51 "Updates the wrsledruncache table from the wiki"
52 c = model.meta.Session.connection()
54 wrpylib.wrmwcache.update_wrsledruncache(c)
55 model.meta.Session.commit()
56 session['flash'] = u'Die Rodelbahnliste wurde erfolgreich aktualisiert.'
57 except wrpylib.wrmwcache.UpdateCacheError as e:
58 title = unicode(e.args[1])
59 title = wrpylib.mwapi.to_title(title)
60 msg = unicode(e.args[2])
61 msg = msg.replace('\n', '; ')
62 if len(e.args) == 3: session['flash'] = u"Fehler bei Rodelbahn '{0}': {1}".format(title, msg)
63 else: session['flash'] = unicode(e)
65 # Redirect to result page
66 return redirect(url(controller='rodelbahn', action='list'))
69 def update_regioncache(self):
70 "Updates the wrregioncache table from the wiki"
71 c = model.meta.Session.connection()
73 wrpylib.wrmwcache.update_wrregioncache(c)
74 model.meta.Session.commit()
75 session['flash'] = u'Die Rodelbahneinträge in den Regionslisten wurden erfolgreich aktualisiert.'
76 except wrpylib.wrmwcache.UpdateCacheError as e:
77 session['flash'] = unicode(e)
79 # Redirect to result page
80 return redirect(url(controller='rodelbahn', action='list'))