map: export json in a lat/lon dict (#6933)

This commit is contained in:
Thomas NOËL 2015-04-12 16:34:49 +02:00 committed by Frédéric Péters
parent b88e56824b
commit 4f790b48a0
2 changed files with 18 additions and 0 deletions

View File

@ -133,3 +133,10 @@ def test_comment():
form = Form()
field.add_to_form(form)
assert '<p>Foobar</p>' in str(form.render())
def test_map():
assert fields.MapField().get_json_value('42.2;10.2') == {'lat': 42.2, 'lon': 10.2}
assert fields.MapField().get_json_value('-42.2;10.2') == {'lat': -42.2, 'lon': 10.2}
assert fields.MapField().get_json_value(' 42.2 ; 10.2 ') == {'lat': 42.2, 'lon': 10.2}
assert fields.MapField().get_json_value('') == None
assert fields.MapField().get_json_value('foobar') == None

View File

@ -1479,6 +1479,17 @@ class MapField(WidgetField):
def get_rst_view_value(self, value, indent=''):
return indent + value
def get_json_value(self, value):
if not value or ';' not in value:
return None
lat, lon = value.split(';')
try:
lat = float(lat)
lon = float(lon)
except ValueError:
return None
return {'lat': lat, 'lon': lon}
register_field_class(MapField)