#!/usr/bin/python2.6 # -*- coding: iso-8859-15 -*- import logging from pylons import request, response, session, url, tmpl_context as c from pylons.controllers.util import abort, redirect import webhelpers.paginate as paginate from wradmin.lib.base import BaseController, render import wradmin.model as model import sqlalchemy as sa import formencode import re import wrpylib.wrmwmarkup import wrpylib.wrmwcache import wrpylib.mwmarkup log = logging.getLogger(__name__) class GasthausController(BaseController): def list(self): "Lists all inns" q = model.meta.Session.query(model.WrInnCache) q = q.order_by(model.WrInnCache.page_title) c.paginator = paginate.Page(q, page=int(request.params.get('page', 1)), items_per_page = 25) return render('gasthaus_list.html') def view(self, id): "Displays an inn" q = model.meta.Session.query(model.WrInnCache) c.inn = q.get(id) if c.inn is None: abort(404) return render('gasthaus_view.html') def update(self): "Updates the wrinncache table from the wiki" c = model.meta.Session.connection() try: wrpylib.wrmwcache.update_wrinncache(c) model.meta.Session.commit() session['flash'] = 'Die Gasthausliste wurde erfolgreich aktualisiert.' except wrpylib.wrmwcache.UpdateCacheError as e: title = str(e.args[1]) title = wrpylib.mwmarkup.to_title(title) msg = str(e.args[2]) msg = msg.replace('\n', '; ') if len(e.args) == 3: session['flash'] = "Fehler bei Gasthaus '{0}': {1}".format(title, msg) else: session['flash'] = str(e) session.save() # Redirect to result page return redirect(url(controller='gasthaus', action='list'))