def test_render_reproject(self): session = FakeSession() spot_fieldset = FieldSet(Spot, session=session) spot_fieldset.the_geom.set(options=[('map_srid', 900913)]) spot = Spot() spot.id = 1 spot.the_geom = PersistentSpatialElement(PersistentSpatialElement(WKBSpatialElement('010'))); spot_fieldset = spot_fieldset.bind(spot) spot_fieldset.render() ok_(isinstance(session.scalar_args[0], functions.wkt), 'The geometry was not queried as WKT'); ok_(isinstance(session.scalar_args[0].arguments[0], functions.transform), 'The geometry was not reprojected');
def bind(self, instances, session=None, data=None, request=None): """bind to instances""" _validate_iterable(instances) if not session: i = iter(instances) try: instance = i.next() except StopIteration: pass else: from sqlalchemy.orm import object_session session = object_session(instance) mr = FieldSet.bind(self, self.model, session, data) mr.rows = instances mr._request = request return mr
def bind(self, instances, session=None, data=None, request=None): """bind to instances""" _validate_iterable(instances) if not session: i = iter(instances) try: instance = i.next() except StopIteration: pass else: from sqlalchemy.orm import object_session session = object_session(instance) mr = FieldSet.bind(self, self.model, session, data, request) mr.rows = instances mr._request = request return mr
def test_render(self): session = FakeSession() spot_fieldset = FieldSet(Spot, session=session) spot = Spot() spot.id = 1 spot.the_geom = PersistentSpatialElement(PersistentSpatialElement(WKBSpatialElement('010'))); spot_fieldset = spot_fieldset.bind(spot) form = spot_fieldset.render() ok_("geoformalchemy.init_map(" in form, 'Template was not rendered') ok_("'Point'," in form, 'OpenLayers geometry was not mapped correctly ') ok_("false," in form, 'Geometry should not be a collection') ok_(isinstance(session.scalar_args[0], functions.wkt), 'The geometry was not queried as WKT');
def copy(self, *args): """return a copy of the fieldset. args is a list of field names or field objects to render in the new fieldset""" mr = FieldSet.bind(self, self.model, self.session) mr.rows = [] mr.readonly = self.readonly mr._errors = {} _fields = self._render_fields or self._fields _new_fields = [] if args: for field in args: if isinstance(field, basestring): if field in _fields: field = _fields.get(field) else: raise AttributeError('%r as not field named %s' % (self, field)) assert isinstance(field, fields.AbstractField), field field.bind(mr) _new_fields.append(field) mr._render_fields = OrderedDict([(field.key, field) for field in _new_fields]) return mr
def copy(self, *args): """return a copy of the fieldset. args is a list of field names or field objects to render in the new fieldset""" mr = FieldSet.bind(self, self.model, self.session) mr.rows = [] mr.readonly = self.readonly mr._errors = {} _fields = self._render_fields or self._fields _new_fields = [] if args: for field in args: if isinstance(field, basestring): if field in _fields: field = _fields.get(field) else: raise AttributeError('%r as not field named %s' % (self, field)) assert isinstance(field, fields.AbstractField), field field.bind(mr) _new_fields.append(field) mr._render_fields = OrderedDict([(field.key, field) for field in _new_fields]) return mr