Exemple #1
0
    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');
Exemple #2
0
 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
Exemple #3
0
 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
Exemple #4
0
    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');
Exemple #5
0
 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
Exemple #6
0
 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