Commit 01683b92 authored by Alex Kerney's avatar Alex Kerney

Trying to get session from AdminModelConverter, and modified test

parent 9db58cb0
......@@ -42,16 +42,17 @@ class GeoJSONField(JSONField):
self.web_srid = 4326
self.srid = 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:
self.data = db.session.scalar(func.ST_AsGeoJson(func.ST_Transform(self.data, self.web_srid)))
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)
web_shape = db.session.scalar(func.ST_AsText(func.ST_Transform(func.ST_GeomFromText(shape(self.data).wkt, self.web_srid), self.srid)))
web_shape = self.session.scalar(func.ST_AsText(func.ST_Transform(func.ST_GeomFromText(shape(self.data).wkt, self.web_srid), self.srid)))
if type(self.data):
self.data = 'SRID='+str(self.srid)+';'+web_shape
......@@ -7,4 +7,5 @@ class AdminModelConverter(SQLAAdminConverter):
@converts('Geometry')
def convert_geom(self, column, field_args, **extra):
field_args['geometry_type'] = column.type.geometry_type
field_args['session'] = self.session
return GeoJSONField(**field_args)
......@@ -2,7 +2,7 @@ from __future__ import unicode_literals
from nose.tools import eq_, ok_
from flask.ext.admin.contrib.geoa import ModelView
from flask.ext.admin.contrib.geoa.sqltypes import Geometry
from geoalchemy2 import Geometry
from flask.ext.admin.contrib.geoa.fields import GeoJSONField
from . import setup
......
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