]> ToastFreeware Gitweb - philipp/winterrodeln/wradmin.git/blobdiff - wradmin/controllers/bericht.py
Simplify pagination.
[philipp/winterrodeln/wradmin.git] / wradmin / controllers / bericht.py
index ebaf37d8c8b3e0e74e2e53692922f705c218d436..fb3c23acc6498c2d7bda1f2b6ff1fa79922b68e1 100644 (file)
@@ -1,6 +1,7 @@
 #from pylons import request, response, session, url, tmpl_context as c
 #from pylons.controllers.util import abort, redirect
-from flask import request
+import datetime
+from flask import request, abort, url_for
 import paginate
 import sqlalchemy as sa
 
@@ -32,7 +33,7 @@ from wradmin.genshi import render_genshi_template, TemplateContext
 
 class BerichtController:
 
-    def _add_dates_to_c(self, date_invalid):
+    def _add_dates_to_c(self, c, date_invalid):
         now = datetime.datetime.today()
         if date_invalid is None: date_invalid = now
         c.date_now = now
@@ -44,12 +45,14 @@ class BerichtController:
         c.date_end_of_saison = datetime.datetime(now.year if now.month < 7 else now.year + 1, 7, 1)
     
     def view(self, id):
-        "Displays a report"
+        """Displays a report"""
         q = model.meta.Session.query(model.WrReport)
+        c = TemplateContext()
         c.wrreport =  q.get(id)
-        if c.wrreport is None: abort(404)
-        self._add_dates_to_c(c.wrreport.date_invalid)
-        return render('bericht_view.html')
+        if c.wrreport is None:
+            abort(404)
+        self._add_dates_to_c(c, c.wrreport.date_invalid)
+        return render_genshi_template('bericht_view.html', c=c)
 
     #@restrict('POST')
     #@validate(schema=ChangeDateInvalidForm(), form='view')
@@ -58,7 +61,7 @@ class BerichtController:
         wrreport_q = model.meta.Session.query(model.WrReport)
         wrreport =  wrreport_q.get(id)
         if wrreport is None: abort(404)
-        self._add_dates_to_c(wrreport.date_invalid)
+        self._add_dates_to_c(c, wrreport.date_invalid)
         date = self.form_result['date_invalid']
         if   date == 'tomorrow':      wrreport.date_invalid = c.date_tomorrow
         elif date == 'one_week':      wrreport.date_invalid = c.date_one_week
@@ -77,5 +80,7 @@ class BerichtController:
         q = model.meta.Session.query(model.WrReport)
         q = q.order_by(sa.sql.expression.desc(model.WrReport.id))
         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('bericht_list', page=page),
+                                    items_per_page=25)
         return render_genshi_template('bericht_list.html', c=c)