]> ToastFreeware Gitweb - philipp/winterrodeln/wradmin.git/blob - wradmin/controllers/coordtool.py
d0629d9cbe9dca4bfd1c8b7d9cb82fb0ff444dc9
[philipp/winterrodeln/wradmin.git] / wradmin / controllers / coordtool.py
1 #!/usr/bin/python2.6
2 # -*- coding: iso-8859-15 -*-
3
4 import logging
5
6 from pylons import request, response, session, url, tmpl_context as c
7 from pylons.controllers.util import abort, redirect
8 import formencode
9
10 from wradmin.lib.base import BaseController, render
11 import wrpylib.wrvalidators
12
13 log = logging.getLogger(__name__)
14
15 class CoordtoolController(BaseController):
16
17     def index(self):
18         c.result = None
19         return render('coordtool.html')
20     
21
22     def convert(self):
23         input = request.POST['input']
24         no_elevation = 'no_elevation' in request.POST
25         simplify = 'simplify' in request.POST
26         swap_latlon = 'swap_latlon' in request.POST
27         c.no_geoformat = 'no_geoformat' in request.POST
28         c.no_gpxformat = 'no_gpxformat' in request.POST
29         c.no_gmapsformat = 'no_gmapsformat' in request.POST
30         c.no_geocachingformat = 'no_geocachingformat' in request.POST
31         
32         if input is None or len(input.strip()) == 0: 
33             c.result = None
34             return redirect(url(controller='coordtool', action='index'))
35         
36         geo = wrpylib.wrvalidators.MultiGeo()
37         try: c.result = geo.to_python(input)
38         except formencode.Invalid as e:
39             session['flash'] = str(e)
40             session.save()
41             return redirect(url(controller='coordtool', action='index'))
42         
43         if swap_latlon:
44             c.result = [(latitude, longitude, elevation) for (longitude, latitude, elevation) in c.result]
45         
46         if no_elevation:
47             c.result = [(longitude, latitude, None) for (longitude, latitude, elevation) in c.result]
48         
49         c.geo_winterrodeln = wrpylib.wrvalidators.MultiGeo(output_format = geo.FORMAT_WINTERRODELN)
50         c.geo_gmapplugin = wrpylib.wrvalidators.MultiGeo(output_format = geo.FORMAT_GMAPPLUGIN)
51         c.geo_gpx = wrpylib.wrvalidators.MultiGeo(output_format = geo.FORMAT_GPX)
52         c.geo_geocaching = wrpylib.wrvalidators.MultiGeo(output_format = geo.FORMAT_GEOCACHING)
53         
54         return render('coordtool.html')