import wrpylib.mwmarkup
import wradmin.model as model
-from wradmin.genshi import render_genshi_template, TemplateContext
class RodelbahnController:
def view(self, id):
"""Displays a sled run"""
q = model.meta.Session.query(model.WrSledrunCache)
- c = TemplateContext()
- c.sledding = q.get(id)
- if c.sledding is None:
+ sledding = q.get(id)
+ if 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.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)
+ 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_template('rodelbahn_view.html', sledding=sledding, paginator=paginator)
def update(self):
"""Updates the wrsledruncache table from the wiki"""
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"
- xmlns:py="http://genshi.edgewall.org/"
- xmlns:xi="http://www.w3.org/2001/XInclude">
-<xi:include href="master.html" />
+{% extends "master.html" %}
+{% block title %}Rodelbahn {{sledding.page_title}}{% endblock %}
-<head>
- <title>Rodelbahn</title>
-</head>
-
-<body>
-<h2>Rodelbahn #${c.sledding.page_id}: ${c.sledding.page_title}</h2>
+{% block content %}
+<h2>Rodelbahn #{{sledding.page_id}}: {{sledding.page_title}}</h2>
<h3>Inhalt der Rodelbahnbox</h3>
<table>
<tr>
<th>ID</th>
- <td>${c.sledding.page_id}</td>
+ <td>{{sledding.page_id}}</td>
</tr>
<tr>
<th>Name</th>
- <td>${c.sledding.page_title}</td>
+ <td>{{sledding.page_title}}</td>
</tr>
<tr>
- <th>Länge</th>
- <td>${c.sledding.length}</td>
+ <th>Länge</th>
+ <td>{{sledding.length}}</td>
</tr>
<tr>
<th>Gehzeit</th>
- <td>${c.sledding.walkup_time}</td>
+ <td>{{sledding.walkup_time}}</td>
</tr>
<tr>
- <th>Höhe (oben)</th>
- <td>${c.sledding.top_elevation}</td>
+ <th>Höhe (oben)</th>
+ <td>{{sledding.top_elevation}}</td>
</tr>
<tr>
- <th>Höhe (unten)</th>
- <td>${c.sledding.bottom_elevation}</td>
+ <th>Höhe (unten)</th>
+ <td>{{sledding.bottom_elevation}}</td>
</tr>
<tr>
- <th>Aufstieg möglich</th>
- <td>${h.bool(c.sledding.walkup_possible)}</td>
+ <th>Aufstieg möglich</th>
+ <td>{{h.bool(sledding.walkup_possible)}}</td>
</tr>
<tr>
<th>Aufstieg getrennt</th>
- <td>${h.tristate_float(c.sledding.walkup_separate)}</td>
+ <td>{{h.tristate_float(sledding.walkup_separate)}}</td>
</tr>
<tr>
<th>Lift</th>
- <td>${h.bool(c.sledding.lift)}</td>
+ <td>{{h.bool(sledding.lift)}}</td>
</tr>
<tr>
<th>Licht</th>
- <td>${h.tristate_float(c.sledding.night_light)}</td>
+ <td>{{h.tristate_float(sledding.night_light)}}</td>
</tr>
<tr>
<th>Rodelverleih</th>
- <td>${h.bool(c.sledding.sled_rental)}</td>
+ <td>{{h.bool(sledding.sled_rental)}}</td>
</tr>
<tr>
- <th>Öffentliche Anreise</th>
- <td>${h.public_transport(c.sledding.public_transport)}</td>
+ <th>Öffentliche Anreise</th>
+ <td>{{h.public_transport(sledding.public_transport)}}</td>
</tr>
<tr>
<th>Bild</th>
- <td>${c.sledding.image}</td>
+ <td>{{sledding.image}}</td>
</tr>
<tr>
<th>Latitude</th>
- <td>${c.sledding.position_latitude}</td>
+ <td>{{sledding.position_latitude}}</td>
</tr>
<tr>
<th>Longitude</th>
- <td>${c.sledding.position_longitude}</td>
+ <td>{{sledding.position_longitude}}</td>
</tr>
<tr>
<th>Information</th>
- <td>${c.sledding.information_phone}</td>
+ <td>{{sledding.information_phone}}</td>
</tr>
<tr>
<th>Forum-ID</th>
- <td>${c.sledding.forum_id}</td>
+ <td>{{sledding.forum_id}}</td>
</tr>
<tr>
<th>In Arbeit</th>
- <td>${h.bool(c.sledding.under_construction)}</td>
+ <td>{{h.bool(sledding.under_construction)}}</td>
</tr>
<tr>
- <th>In Übersicht</th>
- <td>${h.bool(c.sledding.show_in_overview)}</td>
+ <th>In Übersicht</th>
+ <td>{{h.bool(sledding.show_in_overview)}}</td>
</tr>
</table>
<ul>
- <li><a href="${h.wiki(c.sledding.page_title)}">Zeige bei <tt>www.winterrodeln.org</tt></a></li>
- <li py:if="c.sledding.position_latitude and c.sledding.position_longitude"><a href="${h.google_maps(c.sledding.position_latitude, c.sledding.position_longitude)}">Zeige bei Google Maps</a></li>
- <li py:if="c.sledding.forum_id"><a href="${h.forum(c.sledding.forum_id)}">Zeige im Forum</a></li>
+ <li><a href="{{h.wiki(sledding.page_title)}}">Zeige bei <tt>www.winterrodeln.org</tt></a></li>
+ {% if sledding.position_latitude and sledding.position_longitude %}
+ <li><a href="{{h.google_maps(sledding.position_latitude, sledding.position_longitude)}}">Zeige bei Google Maps</a></li>
+ {% endif %}
+ {% if sledding.forum_id %}
+ <li><a href="{{h.forum(sledding.forum_id)}}">Zeige im Forum</a></li>
+ {% endif %}
</ul>
<h3>Rodelbahnberichte</h3>
-<py:if test="len(c.paginator) > 0">
-<p>${Markup(c.paginator.pager('$link_first $link_previous $first_item bis $last_item von $item_count $link_next $link_last'))}</p>
+{% if paginator %}
+<p>{{paginator.pager('$link_first $link_previous $first_item bis $last_item von $item_count $link_next $link_last') | safe}}</p>
<table>
<tr>
<th>ID</th>
<th>Datum Eintrag</th>
- <th>Datum Ungültig</th>
- <th>Datum für Bericht</th>
+ <th>Datum Ungültig</th>
+ <th>Datum für Bericht</th>
<th>Zustand (1 bis 5)</th>
<th>Beschreibung (WikiText)</th>
<th>Autor-Name</th>
- <th>Gelöscht</th>
- </tr>
- <tr py:for="r in c.paginator">
- <td><a href="${h.url(controller='bericht', action='view', id=r.id)}">${r.id}</a></td>
- <td>${r.date_entry}</td>
- <td>${r.date_invalid}</td>
- <td>${r.date_report}</td>
- <td>${r.condition}</td>
- <td>${r.description}</td>
- <td>${r.author_name}</td>
- <td>${r.delete_date}</td>
+ <th>Gelöscht</th>
+ </tr>
+ {% for r in paginator %}
+ <tr>
+ <td><a href="{{url_for('bericht_view', id=r.id)}}">{{r.id}}</a></td>
+ <td>{{r.date_entry}}</td>
+ <td>{{r.date_invalid}}</td>
+ <td>{{r.date_report}}</td>
+ <td>{{r.condition}}</td>
+ <td>{{r.description}}</td>
+ <td>{{r.author_name}}</td>
+ <td>{{r.delete_date}}</td>
</tr>
+ {% endfor %}
</table>
-<p>${Markup(c.paginator.pager('~2~'))}</p>
-</py:if>
-<py:if test="len(c.paginator) == 0">
+<p>{{paginator.pager('~2~') | safe}}</p>
+
+{% else %}
<p><em>Es sind keine Rodelbahnberichte zu dieser Rodelbahn vorhanden.</em></p>
-</py:if>
-</body>
-</html>
+{% endif %}
+
+{% endblock %}