]> ToastFreeware Gitweb - philipp/winterrodeln/wradmin.git/blobdiff - wradmin/controllers/coordtool.py
Additional cleanup.
[philipp/winterrodeln/wradmin.git] / wradmin / controllers / coordtool.py
diff --git a/wradmin/controllers/coordtool.py b/wradmin/controllers/coordtool.py
new file mode 100644 (file)
index 0000000..e8180ee
--- /dev/null
@@ -0,0 +1,54 @@
+#!/usr/bin/python2.6
+# -*- coding: iso-8859-15 -*-
+
+import logging
+
+from pylons import request, response, session, url, tmpl_context as c
+from pylons.controllers.util import abort, redirect
+import formencode
+
+from wradmin.lib.base import BaseController, render
+import wrpylib.wrvalidators
+
+log = logging.getLogger(__name__)
+
+class CoordtoolController(BaseController):
+
+    def index(self):
+        c.result = None
+        return render('coordtool.html')
+    
+
+    def convert(self):
+        input = request.POST['input']
+        no_elevation = request.POST.has_key('no_elevation')
+        simplify = request.POST.has_key('simplify')
+        swap_latlon = request.POST.has_key('swap_latlon')
+        c.no_geoformat = request.POST.has_key('no_geoformat')
+        c.no_gpxformat = request.POST.has_key('no_gpxformat')
+        c.no_gmapsformat = request.POST.has_key('no_gmapsformat')
+        c.no_geocachingformat = request.POST.has_key('no_geocachingformat')
+        
+        if input is None or len(input.strip()) == 0: 
+            c.result = None
+            return redirect(url(controller='coordtool', action='index'))
+        
+        geo = wrpylib.wrvalidators.MultiGeo()
+        try: c.result = geo.to_python(input)
+        except formencode.Invalid, e:
+            session['flash'] = unicode(e)
+            session.save()
+            return redirect(url(controller='coordtool', action='index'))
+        
+        if swap_latlon:
+            c.result = [(latitude, longitude, elevation) for (longitude, latitude, elevation) in c.result]
+        
+        if no_elevation:
+            c.result = [(longitude, latitude, None) for (longitude, latitude, elevation) in c.result]
+        
+        c.geo_winterrodeln = wrpylib.wrvalidators.MultiGeo(output_format = geo.FORMAT_WINTERRODELN)
+        c.geo_gmapplugin = wrpylib.wrvalidators.MultiGeo(output_format = geo.FORMAT_GMAPPLUGIN)
+        c.geo_gpx = wrpylib.wrvalidators.MultiGeo(output_format = geo.FORMAT_GPX)
+        c.geo_geocaching = wrpylib.wrvalidators.MultiGeo(output_format = geo.FORMAT_GEOCACHING)
+        
+        return render('coordtool.html')