map: export json in a lat/lon dict (#6933)
This commit is contained in:
parent
b88e56824b
commit
4f790b48a0
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue