"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']),
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
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"
<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>
<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>