Commit 5585a2a7 authored by Alex Kerney's avatar Alex Kerney

Passing 'data-widths' and 'data-height' to the Leaflet view if the keys are in `form_widget_args`

parent 6e333212
......@@ -37,7 +37,7 @@ class JSONField(TextAreaField):
class GeoJSONField(JSONField):
widget = LeafletWidget()
def __init__(self, label=None, validators=None, geometry_type="GEOMETRY", srid='-1', session=None, **kwargs):
super(GeoJSONField, self).__init__(label, validators, **kwargs)
self.web_srid = 4326
......@@ -48,20 +48,21 @@ class GeoJSONField(JSONField):
self.transform_srid = self.srid
self.geometry_type = geometry_type.upper()
self.session = session
def _value(self):
if self.raw_data:
return self.raw_data[0]
if type(self.data) is geoalchemy2.elements.WKBElement:
if self.srid is -1:
self.data = self.session.scalar(func.ST_AsGeoJson(self.data))
else:
self.data = self.session.scalar(func.ST_AsGeoJson(func.ST_Transform(self.data, self.web_srid)))
if self.srid is -1:
self.data = self.session.scalar(func.ST_AsGeoJson(self.data))
else:
self.data = self.session.scalar(func.ST_AsGeoJson(func.ST_Transform(self.data, self.web_srid)))
return super(GeoJSONField, self)._value()
def process_formdata(self, valuelist):
super(GeoJSONField, self).process_formdata(valuelist)
print type(self.data)
if str(self.data) is '':
self.data = None
if type(self.data) is not NoneType:
web_shape = self.session.scalar(func.ST_AsText(func.ST_Transform(func.ST_GeomFromText(shape(self.data).wkt, self.web_srid), self.transform_srid)))
self.data = 'SRID='+str(self.srid)+';'+str(web_shape)
......@@ -36,9 +36,10 @@ class LeafletWidget(TextArea):
kwargs.setdefault('data-geometry-type', gtype)
# set optional values from constructor
if self.width:
print kwargs
if not kwargs.has_key("data-width"):
kwargs["data-width"] = self.width
if self.height:
if not kwargs.has_key("data-height"):
kwargs["data-height"] = self.height
if self.center:
kwargs["data-lat"] = lat(self.center)
......@@ -67,4 +68,5 @@ class LeafletWidget(TextArea):
kwargs["data-max-bounds-ne-lat"] = maxx
kwargs["data-max-bounds-ne-lng"] = maxy
print kwargs
return super(LeafletWidget, self).__call__(field, **kwargs)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment