]> ToastFreeware Gitweb - philipp/winterrodeln/wradmin.git/commitdiff
First version of the wrgpx tool page.
authorphilipp <philipp@7aebc617-e5e2-0310-91dc-80fb5f6d2477>
Fri, 4 Dec 2009 21:31:59 +0000 (21:31 +0000)
committerphilipp <philipp@7aebc617-e5e2-0310-91dc-80fb5f6d2477>
Fri, 4 Dec 2009 21:31:59 +0000 (21:31 +0000)
git-svn-id: http://www.winterrodeln.org/svn/servermediawiki/trunk/wradmin@538 7aebc617-e5e2-0310-91dc-80fb5f6d2477

wradmin/setup.py
wradmin/wradmin/controllers/wrgpxtool.py
wradmin/wradmin/lib/helpers.py
wradmin/wradmin/templates/index.html
wradmin/wradmin/templates/wrgpxtool.html

index c630452d0d02e775b48b20cc4ff7224b43af3e5b..222067a20257274f358c1e0bf573d453b516fd0d 100644 (file)
@@ -17,7 +17,8 @@ setup(
         "Genshi>=0.4",
         "MySQL-python>=1.2",
         "AuthKit>=0.4.3,<=0.4.99",
-        "SQLAlchemy>=0.5"
+        "SQLAlchemy>=0.5",
+        "lxml>=2.2"
     ],
     setup_requires=["PasteScript>=1.6.3"],
     packages=find_packages(exclude=['ez_setup']),
index 171eb25b5873f70ada3321ae4f23350136aabebe..27654e844cb26d507ec34d67932304677e1cf9ce 100644 (file)
@@ -7,10 +7,30 @@ from pylons import request, response, session, tmpl_context as c
 from pylons.controllers.util import abort, redirect_to
 
 from wradmin.lib.base import BaseController, render
+from wradmin.lib.wrgpx import parse_wrgpx, etree
 
 log = logging.getLogger(__name__)
 
 class WrgpxtoolController(BaseController):
 
     def index(self):
+        c.validated = False
         return render('wrgpxtool.html')
+
+
+    def upload(self):
+        gpxfile = request.POST['gpxfile']
+        try:
+            (gpx, hints) = parse_wrgpx(string = gpxfile.value)            
+            if len(hints) > 0: session['flash'] = u" Die Datei '%s' ist zwar eine gültige GPX 1.1 Datei, entspricht aber nicht den zusätzlichen Winterrodeln-Anforderungen. :-(" % gpxfile.filename
+            else: session['flash'] = u"Die Datei '%s' ist eine gültige GPX 1.1 Datei und entspricht zusätzlich den Winterrodeln Anforderungen (WRGPX). :-)" % gpxfile.filename
+            c.validation_exception = None
+            c.validation_hints = hints
+        except etree.XMLSyntaxError, e:
+            c.validation_exception = e
+            c.validation_hints = []
+            session['flash'] = u"Die Datei '%s' ist keine gültige GPX 1.1 Datei. :-(" % gpxfile.filename
+        session.save()
+        c.validated = True
+        c.filename = gpxfile.filename
+        return render('wrgpxtool.html')
\ No newline at end of file
index 646a03634e263bfbd060849a861625bd41b2f329..8693d70be4e9985adfa7efc0a19a04fa2f1fba75 100644 (file)
@@ -8,6 +8,7 @@ available to Controllers. This module is available to templates as 'h'.
 
 from routes import url_for
 import wradmin.model.validators
+from webhelpers.html.tags import file, form, end_form, submit
 
 def wiki(page_title=None):
     "Creates a link to the specified page in the www.winterrodeln.org wiki"
index 7c842dda283991fb08719f748303de5b966d7ffe..2ff6aeb78c131c6744a5eb16669aaebd01b5f050 100644 (file)
@@ -21,7 +21,7 @@
     <li><a href="${h.url_for(controller='gasthaus', action='list')}">Gasthäuser</a></li>
     <li><a href="${h.url_for(controller='maptool', action='index')}">Maptool</a></li>
     <li><a href="${h.url_for(controller='coordtool', action='index')}">Koordinaten-Rechner</a></li>
-    <!-- <li><a href="${h.url_for(controller='wrgpxtool', action='index')}">Winterrodeln-GPX Datei Werkzeuge</a></li> -->
+    <li><a href="${h.url_for(controller='wrgpxtool', action='index')}">Winterrodeln-GPX Datei Werkzeuge</a></li>
 </ul>
 
 <ul>
index 092b73b9913a39b2fb15d4a23dc9924cf4dd8f2d..f07c78c717a1057cb08584a8d904534c6e78097a 100644 (file)
 
 <h2>WRGPX-Werkzeug</h2>
 
-<p>WRGPX steht für "Winterrodeln GPX".</p>
+<py:if test="not c.validated">
+<p>WRGPX steht für "Winterrodeln GPX". Hier können Sie eine .gpx Datei auf ihre Gültigkeit untersuchen.</p>
 
+${h.form(h.url_for(controller='wrgpxtool', action='upload'), multipart=True)}
+GPX-Datei zum Untersuchen: ${h.file('gpxfile')}<br/>
+${h.submit('submit', 'Raufladen')}
+${h.end_form()}
+</py:if>
+
+<py:if test="c.validated">
+<h3>Ergebnis der Validierung</h3>
+
+<py:if test="c.validation_exception is None">
+<p> Die Datei <em>${c.filename}</em> ist eine gültige GPX 1.1 Datei. :-)</p>
+
+<py:if test="len(c.validation_hints) != 0">
+<p>Die Datei entspricht allerdings nicht den zusätzlichen Anforderungen von Winterrodeln an GPX Dateien (WRGPX):</p>
+<ul>
+    <li py:for="hint in c.validation_hints">${hint.message}</li>
+</ul>
+</py:if>
+
+<p py:if="len(c.validation_hints) == 0">Sie entspricht außerdem den zusätzlichen Anforderungen von Winterrodeln an GPX Dateien (WRGPX).</p>
+
+</py:if>
+
+<py:if test="not c.validation_exception is None">
+<p>Die Datei <em>${c.filename}</em> ist <strong>keine</strong> gülte GPX 1.1 Datei. :-(<br/>
+Der validierende XML-Parser lieferte folgende Fehlermeldung:</p>
+<p><em>${str(c.validation_exception)}</em></p>
+</py:if>
+
+<p><a href="${h.url_for(controller='wrgpxtool', action='index')}">Andere/geänderte GPX-Datei untersuchen</a></p>
+</py:if>
+
+
+<h3>Links</h3>
+<ul>
+    <li><a href="http://www.topografix.com/gpx.asp">Informationen über das GPX-Format</a></li>
+    <li><a href="http://www.topografix.com/GPX/1/1/">Kommentierte GPX 1.1 Definition</a></li>
+    <li><a href="http://www.winterrodeln.org/trac/wiki/WrGpx">Zusätzliche Anforderungen an das GPX-Format, um es bei Winterrodeln verwenden zu können</a></li>
+</ul>
 
 </body>
 </html>