]> ToastFreeware Gitweb - philipp/winterrodeln/wradmin.git/commitdiff
bericht_list is rendered now.
authorphilipp <philipp@7aebc617-e5e2-0310-91dc-80fb5f6d2477>
Thu, 27 Jul 2017 22:01:26 +0000 (22:01 +0000)
committerphilipp <philipp@7aebc617-e5e2-0310-91dc-80fb5f6d2477>
Thu, 27 Jul 2017 22:01:26 +0000 (22:01 +0000)
git-svn-id: http://www.winterrodeln.org/svn/wradmin/trunk@2678 7aebc617-e5e2-0310-91dc-80fb5f6d2477

wradmin/__init__.py
wradmin/controllers/bericht.py
wradmin/genshi.py
wradmin/templates/bericht_list.html

index ea3b097d5e996a03eb194631cf90361f170902e0..0a2ef028cb688d210b935623dc2b5284eee33a3f 100644 (file)
@@ -7,6 +7,7 @@ import wradmin.model
 from wradmin.genshi import render_genshi_template
 from wradmin.controllers.rodelbahn import RodelbahnController
 from wradmin.controllers.gasthaus import GasthausController
+from wradmin.controllers.bericht import BerichtController
 
 
 app = Flask(__name__)
@@ -59,7 +60,14 @@ def rodelbahn_update_regioncache():
 
 @app.route("/bericht/list")
 def bericht_list():
-    pass
+    get_db()
+    return BerichtController().list()
+
+
+@app.route("/bericht/view/<int:id>")
+def bericht_view(id):
+    get_db()
+    return BerichtController().view(id)
 
 
 @app.route("/gasthaus/list")
index 6d95dfdc637d59cd965ffbf268bc5fe1b593ff2c..ebaf37d8c8b3e0e74e2e53692922f705c218d436 100644 (file)
@@ -1,44 +1,37 @@
-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
-from pylons.decorators.rest import restrict
-from pylons.decorators import validate
-import wradmin.model as model
+#from pylons import request, response, session, url, tmpl_context as c
+#from pylons.controllers.util import abort, redirect
+from flask import request
+import paginate
 import sqlalchemy as sa
-import datetime
-import formencode
-import wrpylib.wrvalidators
 
+import wrpylib.wrmwmarkup
+import wrpylib.wrmwcache
+import wrpylib.mwmarkup
 
-log = logging.getLogger(__name__)
-formencode.api.set_stdtranslation(domain="FormEncode", languages=["de"])
-
+import wradmin.model as model
+from wradmin.genshi import render_genshi_template, TemplateContext
 
-class RequireDateIfUserDefined(formencode.validators.FormValidator):
-    "requires that date_userdefined is not empty if date_invalid == 'userdefined'"
-    def _to_python(self, value_dict, state):
-        # if not value_dict.get('date_invalid'): ... # This is _not_ checked because this should be checked elsewhere
-        if value_dict.get('date_invalid') == 'userdefined' and not value_dict.get('date_userdefined'):
-            value = value_dict.get('date_userdefined')
-            raise formencode.Invalid('Es muss ein Wert eingegeben werden', value, state, error_dict={'date_userdefined': formencode.Invalid(self.message('empty', state), value, state)})
-        return value_dict
 
+# class RequireDateIfUserDefined(formencode.validators.FormValidator):
+#     "requires that date_userdefined is not empty if date_invalid == 'userdefined'"
+#     def _to_python(self, value_dict, state):
+#         # if not value_dict.get('date_invalid'): ... # This is _not_ checked because this should be checked elsewhere
+#         if value_dict.get('date_invalid') == 'userdefined' and not value_dict.get('date_userdefined'):
+#             value = value_dict.get('date_userdefined')
+#             raise formencode.Invalid('Es muss ein Wert eingegeben werden', value, state, error_dict={'date_userdefined': formencode.Invalid(self.message('empty', state), value, state)})
+#         return value_dict
+#
+#
+# class ChangeDateInvalidForm(formencode.Schema):
+#     allow_extra_fields = True
+#     filter_extra_fields = True
+#     date_invalid = formencode.validators.OneOf(['no_change', 'tomorrow', 'one_week', 'two_weeks', 'one_week_more', 'end_of_saison', 'now', 'userdefined'], not_empty=True)
+#     date_userdefined = wrpylib.wrvalidators.DateTimeNoSec
+#     chained_validators = [RequireDateIfUserDefined()]
 
-class ChangeDateInvalidForm(formencode.Schema):
-    allow_extra_fields = True
-    filter_extra_fields = True
-    date_invalid = formencode.validators.OneOf(['no_change', 'tomorrow', 'one_week', 'two_weeks', 'one_week_more', 'end_of_saison', 'now', 'userdefined'], not_empty=True)
-    date_userdefined = wrpylib.wrvalidators.DateTimeNoSec
-    chained_validators = [RequireDateIfUserDefined()]
 
+class BerichtController:
 
-class BerichtController(BaseController):
-    "Manages reports (table wrreport)"
-    
     def _add_dates_to_c(self, date_invalid):
         now = datetime.datetime.today()
         if date_invalid is None: date_invalid = now
@@ -50,7 +43,6 @@ class BerichtController(BaseController):
         c.date_one_week_more = date_invalid + datetime.timedelta(7)
         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"
         q = model.meta.Session.query(model.WrReport)
@@ -58,10 +50,9 @@ class BerichtController(BaseController):
         if c.wrreport is None: abort(404)
         self._add_dates_to_c(c.wrreport.date_invalid)
         return render('bericht_view.html')
-    
-    
-    @restrict('POST')
-    @validate(schema=ChangeDateInvalidForm(), form='view')
+
+    #@restrict('POST')
+    #@validate(schema=ChangeDateInvalidForm(), form='view')
     def change_date_invalid(self, id=None):
         if id is None: abort(404)
         wrreport_q = model.meta.Session.query(model.WrReport)
@@ -80,36 +71,11 @@ class BerichtController(BaseController):
         session['flash'] = 'Datum wurde erfolgreich geƤndert'
         session.save()
         return redirect(url(controller='bericht', action='view', id=id))
-    
-    
-    def new(self, id):
-        "Displays a form to create a new page"
-        return "Nicht implementiert."
-    
-    
-    def create(self):
-        "Saves the information submitted from new() and redirects to view()"
-        return "Nicht implementiert."
-    
-    
-    def edit(self, id):
-        "Displays a form for editing the page id"
-        return "Nicht implementiert."
-    
-    
-    def save(self, id):
-        "Saves the page id and redirects to view()"
-        return "Nicht implementiert."
-    
-    
+
     def list(self):
-        "Lists all reports"
+        """Lists all reports"""
         q = model.meta.Session.query(model.WrReport)
         q = q.order_by(sa.sql.expression.desc(model.WrReport.id))
-        c.paginator = paginate.Page(q, page=int(request.params.get('page', 1)), items_per_page = 25)
-        return render('bericht_list.html')
-    
-    
-    def delete(self, id):
-        "Deletes a page"
-        return "Nicht implementiert."
+        c = TemplateContext()
+        c.paginator = paginate.Page(q.all(), page=int(request.args.get('page', 1)), items_per_page = 25)
+        return render_genshi_template('bericht_list.html', c=c)
index ba62133e1d00dbde997c171897f7ce5818c4b2f5..6f1094c72f1d77d9b8b67f75dfc5c19801bf0e70 100644 (file)
@@ -51,6 +51,10 @@ class FakeSession:
         pass
 
 
+class TemplateContext:
+    pass
+
+
 def render_genshi_template(template, **kwargs):
     loader = genshi.template.TemplateLoader(os.path.join(os.path.dirname(__file__), 'templates'), auto_reload=True)
     tmpl = loader.load(template)
index c444005073bcbd1099fd6dbb87a5c011c4bbb14b..5642ab295cef7ca0674bcc32ab7df7dca68f8b07 100644 (file)
@@ -13,7 +13,7 @@
 <body>
 <h2>Rodelbahnberichte</h2>
 
-<p>${c.paginator.pager('$link_first $link_previous $first_item bis $last_item von $item_count $link_next $link_last', controller='bericht', action='list')}</p>
+<p>${HTML(c.paginator.pager('$link_first $link_previous $first_item bis $last_item von $item_count $link_next $link_last', url=h.url(controller='bericht', action='list') + '?page=$page'))}</p>
 
 <table>
     <tr>
@@ -40,7 +40,7 @@
     </tr>
 </table>
 
-<p>${c.paginator.pager('~2~', controller='bericht', action='list')}</p>
+<p>${HTML(c.paginator.pager('~2~', url=h.url(controller='bericht', action='list') + '?page=$page'))}</p>
 
 </body>
 </html>