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])
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
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
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()