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): ...@@ -42,16 +42,17 @@ class GeoJSONField(JSONField):
self.web_srid = 4326 self.web_srid = 4326
self.srid = srid self.srid = srid
self.geometry_type = geometry_type.upper() self.geometry_type = geometry_type.upper()
self.session = session
def _value(self): def _value(self):
if self.raw_data: if self.raw_data:
return self.raw_data[0] return self.raw_data[0]
if type(self.data) is geoalchemy2.elements.WKBElement: 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() return super(GeoJSONField, self)._value()
def process_formdata(self, valuelist): def process_formdata(self, valuelist):
super(GeoJSONField, self).process_formdata(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): if type(self.data):
self.data = 'SRID='+str(self.srid)+';'+web_shape self.data = 'SRID='+str(self.srid)+';'+web_shape
...@@ -7,4 +7,5 @@ class AdminModelConverter(SQLAAdminConverter): ...@@ -7,4 +7,5 @@ class AdminModelConverter(SQLAAdminConverter):
@converts('Geometry') @converts('Geometry')
def convert_geom(self, column, field_args, **extra): def convert_geom(self, column, field_args, **extra):
field_args['geometry_type'] = column.type.geometry_type field_args['geometry_type'] = column.type.geometry_type
field_args['session'] = self.session
return GeoJSONField(**field_args) return GeoJSONField(**field_args)
...@@ -2,7 +2,7 @@ from __future__ import unicode_literals ...@@ -2,7 +2,7 @@ from __future__ import unicode_literals
from nose.tools import eq_, ok_ from nose.tools import eq_, ok_
from flask.ext.admin.contrib.geoa import ModelView 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 flask.ext.admin.contrib.geoa.fields import GeoJSONField
from . import setup 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