Example #1
0
    def test_filter_polygons(self):

        def ids(objects):
            return set(ob.id for ob in objects)

        poly1 = save_polygon(json.dumps(poly_data_1))
        poly2 = save_polygon(json.dumps(poly_data_2))

        assert ids(filter_polygons(1, 1, 0, 0)) == ids([])
        assert ids(filter_polygons(100, 0, 100, 0)) == ids([poly1, poly2])
        assert ids(filter_polygons(15, 0, 100, 0)) == ids([poly1])
        assert ids(filter_polygons(19, 18, 100, 0)) == ids([])
        assert ids(filter_polygons(22, 15, 22, 12)) == ids([poly1, poly2])
Example #2
0
 def create(self, request):
     """ Save a polygon then attach it to a Lan """
     request.form.cleaned_data['geo'] = save_polygon(
                                         request.form.cleaned_data['geo'])
     lan = Lan(**request.form.cleaned_data)
     lan.save()
     return rc.CREATED
Example #3
0
 def test_create_poly(self):
     points_json = '[{"lat": 40, "lon": 15}, {"lat": 45, "lon": 10}]'
     poly = save_polygon(points_json)
     assert poly.bbox_top == 45
     assert poly.bbox_bottom == 40
     assert poly.bbox_left == 10
     assert poly.bbox_right == 15
Example #4
0
    def update(self, request, pk):
        """ Check if object exists then check if user has permission to edit it

        """
        try:
            lan = Lan.objects.get(pk=pk)
        except Lan.DoesNotExist:
            return rc.NOT_HERE
        if lan.lock == True and not request.user.is_staff():
            return rc.FORBIDDEN
        lan.name = request.form.cleaned_data['name']
        lan.info = request.form.cleaned_data['info']
        if request.form.cleaned_data['geo'] != lan.geo.points_json:
            lan.geo = save_polygon(request.form.cleaned_data['geo'])
        lan.save()