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

setup.py
wradmin/__init__.py
wradmin/controllers/error.py [deleted file]
wradmin/controllers/rodelbahn.py
wradmin/genshi.py
wradmin/templates/rodelbahn_list.html

index faedb13a22657404f65fff865c477920d38b5cce..98e73dc215ea9b9254ebde40a86cdaeba14096c8 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -12,6 +12,7 @@ setup(
         "Genshi>=0.4",
         "lxml>=2.2",
         "Babel>=0.9",
+        "paginate>=0.5.6",
         "wrpylib>=0.6.0",
     ],
     package_data={'wradmin': ['i18n/*/LC_MESSAGES/*.mo']},
index f61da7b0fff53d62c8de3734bf824537a73ccfbf..225b39397946ebc7ac12ccc00d2f607797c13b45 100644 (file)
@@ -3,7 +3,9 @@
 # FLASK_APP=wradmin WRADMIN_SETTINGS=production.cfg python3 -m flask run
 from flask import Flask, send_from_directory, abort, g
 from sqlalchemy.engine import create_engine
+import wradmin.model
 from wradmin.genshi import render_genshi_template
+from wradmin.controllers.rodelbahn import RodelbahnController
 
 
 app = Flask(__name__)
@@ -16,6 +18,7 @@ def get_db():
     """
     if not hasattr(g, 'db'):
         g.db_engine = create_engine(app.config['DATABASE_URI'])
+        wradmin.model.init_model(g.db_engine)
         g.db = g.db_engine.connect()
     return g.db
 
@@ -34,6 +37,22 @@ def index():
 
 @app.route("/rodelbahn/list")
 def rodelbahn_list():
+    get_db()
+    return RodelbahnController().list()
+
+
+@app.route("/rodelbahn/update")
+def rodelbahn_update():
+    pass
+
+
+@app.route("/rodelbahn/view/<int:id>")
+def rodelbahn_view(id):
+    pass
+
+
+@app.route("/rodelbahn/update_regioncache")
+def rodelbahn_update_regioncache():
     pass
 
 
diff --git a/wradmin/controllers/error.py b/wradmin/controllers/error.py
deleted file mode 100644 (file)
index aa94b38..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-import cgi
-
-from paste.urlparser import PkgResourcesParser
-from pylons import request
-from pylons.controllers.util import forward
-from pylons.middleware import error_document_template
-from webhelpers.html.builder import literal
-
-from wradmin.lib.base import BaseController
-
-class ErrorController(BaseController):
-
-    """Generates error documents as and when they are required.
-
-    The ErrorDocuments middleware forwards to ErrorController when error
-    related status codes are returned from the application.
-
-    This behaviour can be altered by changing the parameters to the
-    ErrorDocuments middleware in your config/middleware.py file.
-
-    """
-
-    def document(self):
-        """Render the error document"""
-        resp = request.environ.get('pylons.original_response')
-        content = literal(resp.body) or cgi.escape(request.GET.get('message', ''))
-        page = error_document_template % \
-            dict(prefix=request.environ.get('SCRIPT_NAME', ''),
-                 code=cgi.escape(request.GET.get('code', str(resp.status_int))),
-                 message=content)
-        return page
-
-    def img(self, id):
-        """Serve Pylons' stock images"""
-        return self._serve_file('/'.join(['media/img', id]))
-
-    def style(self, id):
-        """Serve Pylons' stock stylesheets"""
-        return self._serve_file('/'.join(['media/style', id]))
-
-    def _serve_file(self, path):
-        """Call Paste's FileApp (a WSGI application) to serve the file
-        at the specified path
-        """
-        request.environ['PATH_INFO'] = '/%s' % path
-        return forward(PkgResourcesParser('pylons', 'pylons'))
index 7aea8f2e8224b24dec01c70103b0f5899a11a534..142c6b51ef4f09f471d52bc0caccb11e691fa166 100644 (file)
@@ -1,38 +1,31 @@
 #!/usr/bin/python3.4
-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
+#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 formencode
-import re
 
 import wrpylib.wrmwmarkup
 import wrpylib.wrmwcache
 import wrpylib.mwmarkup
 
-from weberror import collector        # Prevent a bug of weberror # See https://bitbucket.org/bbangert/weberror/issue/3/nameerror-global-name-fallback_encoding-is-not
-collector.FALLBACK_ENCODING = 'utf-8' # --"--
-
-log = logging.getLogger(__name__)
+import wradmin.model as model
+from wradmin.genshi import render_genshi_template
 
 
-class RodelbahnController(BaseController):
+class TemplateContext:
+    pass
 
-    def index(self):
-        return render('index.html')
 
+class RodelbahnController:
 
     def list(self):
-        "Lists all sled runs"
+        """Lists all sled runs"""
         q = model.meta.Session.query(model.WrSledrunCache)
         q = q.order_by(model.WrSledrunCache.page_title)
-        c.paginator = paginate.Page(q, page=int(request.params.get('page', 1)), items_per_page = 25)
-        return render('rodelbahn_list.html')
+        c = TemplateContext()
+        c.paginator = paginate.Page(q.all(), page=int(request.args.get('page', 1)), items_per_page = 25)
+        return render_genshi_template('rodelbahn_list.html', c=c)
     
     
     def view(self, id):
index 5267e7b17f0db05c19d048f289b146c0c74c6f79..bf318f7af6bb1fbdf7e86b9b94b12d8234019cf0 100644 (file)
@@ -1,17 +1,19 @@
 import os
 import genshi.template
+from genshi import HTML
 from flask import url_for
+import wrpylib.wrvalidators
 
 
 class PylonsHelper:
-    def url(self, filename=None, controller=None, action=None):
+    def url(self, filename=None, controller=None, action=None, **kwargs):
         if filename is not None and filename.startswith('/'):
             filename = filename[1:]
             return url_for('static', filename=filename)
         if controller == 'rodelbahn':
             if action == 'index':
                 return url_for('index')
-        return url_for('{}_{}'.format(controller, action))
+        return url_for('{}_{}'.format(controller, action), **kwargs)
 
     def wiki(self, page_title=None):
         """Creates a link to the specified page in the www.winterrodeln.org wiki"""
@@ -25,6 +27,17 @@ class PylonsHelper:
             return 'http://winterrodeln-forum.org/'
         return 'http://winterrodeln-forum.org/viewforum.php?f={}'.format(forum)
 
+    def bool(self, value):
+        """Takes a bool value and creates a German representation"""
+        return wrpylib.wrvalidators.opt_bool_german_to_str(value)
+
+    def tristate_float(self, value):
+        """Takes a German representation of a tristate value"""
+        return wrpylib.wrvalidators.opt_tristate_german_to_str(value)
+
+    def public_transport(self, value):
+        return wrpylib.wrvalidators.opt_public_transport_german_to_str(value)
+
 
 class FakeSession:
     def has_key(self, key):
@@ -37,6 +50,6 @@ class FakeSession:
 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)
-    genshi_kwargs = {'h': PylonsHelper(), 'session': FakeSession()}
+    genshi_kwargs = {'h': PylonsHelper(), 'session': FakeSession(), 'HTML': HTML}
     genshi_kwargs.update(kwargs)
     return tmpl.generate(**genshi_kwargs).render('html', doctype='html')
index bb733606c9ca5cd5353f0f800c15279f0295b702..6bb762f6c45a698e139b6f300a1fbffc74d51039 100644 (file)
@@ -18,7 +18,7 @@
 <a href="${h.url(controller='rodelbahn', action='update')}" class="button">(1) Rodelbahnboxen auslesen und DB aktualisieren</a>
 <a href="${h.url(controller='rodelbahn', action='update_regioncache')}" class="button">(2) Rodelbahnen in den Regionslisten aktualisieren</a>
 
-<p>${c.paginator.pager('$link_first $link_previous $first_item bis $last_item von $item_count $link_next $link_last', controller='rodelbahn', 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='rodelbahn', action='list')+'?page=$page'))}</p>
 
 <table>
     <tr>
@@ -65,7 +65,7 @@
     </tr>
 </table>
 
-<p>${c.paginator.pager('~2~', controller='rodelbahn', action='list')}</p>
+<p>${HTML(c.paginator.pager('~2~', url=h.url(controller='rodelbahn', action='list')+'?page=$page'))}</p>
 
 </body>
 </html>