diff options
author | QuentinAndre <quentin.andre@imt-atlantique.net> | 2021-07-26 14:43:05 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-07-08 09:58:48 +0200 |
commit | 2a8d2108f9d87f62db245895cc716e90f2225af6 (patch) | |
tree | 941848bc1ef3914c21e5606bc62b422b10b85c5b /archaeological_finds | |
parent | 92bd9026e0b6397103da83bffe64f3a53ee06742 (diff) | |
download | Ishtar-2a8d2108f9d87f62db245895cc716e90f2225af6.tar.bz2 Ishtar-2a8d2108f9d87f62db245895cc716e90f2225af6.zip |
url with get and display geo items
Diffstat (limited to 'archaeological_finds')
-rw-r--r-- | archaeological_finds/tests.py | 152 | ||||
-rw-r--r-- | archaeological_finds/urls.py | 38 | ||||
-rw-r--r-- | archaeological_finds/views.py | 12 |
3 files changed, 38 insertions, 164 deletions
diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py index 34d7e1b91..c3b4a8c41 100644 --- a/archaeological_finds/tests.py +++ b/archaeological_finds/tests.py @@ -2602,11 +2602,11 @@ class GeomaticTest(FindInit, TestCase): self.assertEqual(dic_pt_f, res) # test API with point - response = self.client.get(reverse("api-get-geo-point", kwargs={"pk": 0})) + url_pts = reverse("api-get-geo-points") + url_polys = reverse("api-get-geo-polygons") + response = self.client.get(url_pts + "?pk=0") self.assertEqual(response.status_code, 404) - response = self.client.get( - reverse("api-get-geo-point", kwargs={"pk": base_find_pt.pk}) - ) + response = self.client.get(url_pts + "?pk=" + str(base_find_pt.pk)) self.assertEqual(response.status_code, 200) self.assertIn(json.dumps(dic_pt_f).encode("utf-8"), response.content) @@ -2634,31 +2634,15 @@ class GeomaticTest(FindInit, TestCase): self.assertEqual(dic_pt_pt_t, cr_pt_pt.get_geo_items(True)) # test of API for point context record with point as base find - response = self.client.get( - reverse("api-get-geo-points-from-context", kwargs={"context_record_pk": 0}) - ) + response = self.client.get(url_pts + "?context_record_pk=0") self.assertEqual(response.status_code, 404) - response = self.client.get( - reverse( - "api-get-geo-points-from-context", - kwargs={"context_record_pk": cr_pt_pt.pk}, - ) - ) + response = self.client.get(url_pts + "?context_record_pk=" + str(cr_pt_pt.pk)) self.assertEqual(response.status_code, 200) self.assertIn(json.dumps(dic_pt_pt_f).encode("utf-8"), response.content) - response = self.client.get( - reverse( - "api-get-geo-polygons-from-context", kwargs={"context_record_pk": 0} - ) - ) + response = self.client.get(url_polys + "?context_record_pk=0") self.assertEqual(response.status_code, 404) - response = self.client.get( - reverse( - "api-get-geo-polygons-from-context", - kwargs={"context_record_pk": cr_pt_pt.pk}, - ) - ) + response = self.client.get(url_polys + "?context_record_pk=" + str(cr_pt_pt.pk)) self.assertEqual(response.status_code, 200) self.assertIn(json.dumps(dic_pt_pt_t).encode("utf-8"), response.content) @@ -2712,30 +2696,16 @@ class GeomaticTest(FindInit, TestCase): self.assertEqual(dic_poly_pt_f, cr_poly_pt.get_geo_items(False)) # test of API for point context record with multipolygon as base find - response = self.client.get( - reverse("api-get-geo-points-from-context", kwargs={"context_record_pk": 0}) - ) + response = self.client.get(url_pts + "?context_record_pk=0") self.assertEqual(response.status_code, 404) - response = self.client.get( - reverse( - "api-get-geo-points-from-context", - kwargs={"context_record_pk": cr_poly_pt.pk}, - ) - ) + response = self.client.get(url_pts + "?context_record_pk=" + str(cr_poly_pt.pk)) self.assertEqual(response.status_code, 200) self.assertIn(json.dumps(dic_poly_pt_f).encode("utf-8"), response.content) - response = self.client.get( - reverse( - "api-get-geo-polygons-from-context", kwargs={"context_record_pk": 0} - ) - ) + response = self.client.get(url_polys + "?context_record_pk=0") self.assertEqual(response.status_code, 404) response = self.client.get( - reverse( - "api-get-geo-polygons-from-context", - kwargs={"context_record_pk": cr_poly_pt.pk}, - ) + url_polys + "?context_record_pk=" + str(cr_poly_pt.pk) ) self.assertEqual(response.status_code, 200) self.assertIn(json.dumps(dic_poly_pt_t).encode("utf-8"), response.content) @@ -2757,22 +2727,12 @@ class GeomaticTest(FindInit, TestCase): self.assertEqual(dic_poly_f_from_poly, res_centroid) # test API with polygon - response = self.client.get(reverse("api-get-geo-polygons", kwargs={"pk": 0})) + response = self.client.get(url_polys + "?pk=0") self.assertEqual(response.status_code, 404) - response = self.client.get( - reverse( - "api-get-geo-polygons", - kwargs={"pk": base_find_poly.pk}, - ) - ) + response = self.client.get(url_polys + "?pk=" + str(base_find_poly.pk)) self.assertEqual(response.status_code, 200) self.assertEqual(dic_poly_t_from_poly, json.loads(response.content)) - response = self.client.get( - reverse( - "api-get-geo-point", - kwargs={"pk": base_find_poly.pk}, - ) - ) + response = self.client.get(url_pts + "?pk=" + str(base_find_poly.pk)) self.assertEqual(response.status_code, 200) self.assertEqual(dic_poly_f_from_poly, json.loads(response.content)) @@ -2821,30 +2781,18 @@ class GeomaticTest(FindInit, TestCase): ) # test of API for multipolygon context record with a multipolygon and a point as base find - response = self.client.get( - reverse("api-get-geo-points-from-context", kwargs={"context_record_pk": 0}) - ) + response = self.client.get(url_pts + "?context_record_pk=0") self.assertEqual(response.status_code, 404) response = self.client.get( - reverse( - "api-get-geo-points-from-context", - kwargs={"context_record_pk": cr_poly_poly_and_pt.pk}, - ) + url_pts + "?context_record_pk=" + str(cr_poly_poly_and_pt.pk) ) self.assertEqual(response.status_code, 200) self.assertEqual(dic_poly_poly_and_pt_f, json.loads(response.content)) - response = self.client.get( - reverse( - "api-get-geo-polygons-from-context", kwargs={"context_record_pk": 0} - ) - ) + response = self.client.get(url_polys + "?context_record_pk=0") self.assertEqual(response.status_code, 404) response = self.client.get( - reverse( - "api-get-geo-polygons-from-context", - kwargs={"context_record_pk": cr_poly_poly_and_pt.pk}, - ) + url_polys + "?context_record_pk=" + str(cr_poly_poly_and_pt.pk) ) self.assertEqual(response.status_code, 200) self.assertEqual(dic_poly_poly_and_pt_t, json.loads(response.content)) @@ -2891,30 +2839,18 @@ class GeomaticTest(FindInit, TestCase): self.assertEqual(dic_pt_poly_and_pt_f, cr_pt_poly_and_pt.get_geo_items(False)) # test of API for point context record with multipolygon as base find - response = self.client.get( - reverse("api-get-geo-points-from-context", kwargs={"context_record_pk": 0}) - ) + response = self.client.get(url_pts + "?context_record_pk=0") self.assertEqual(response.status_code, 404) response = self.client.get( - reverse( - "api-get-geo-points-from-context", - kwargs={"context_record_pk": cr_pt_poly_and_pt.pk}, - ) + url_pts + "?context_record_pk=" + str(cr_pt_poly_and_pt.pk) ) self.assertEqual(response.status_code, 200) self.assertEqual(dic_pt_poly_and_pt_f, json.loads(response.content)) - response = self.client.get( - reverse( - "api-get-geo-polygons-from-context", kwargs={"context_record_pk": 0} - ) - ) + response = self.client.get(url_polys + "?context_record_pk=0") self.assertEqual(response.status_code, 404) response = self.client.get( - reverse( - "api-get-geo-polygons-from-context", - kwargs={"context_record_pk": cr_pt_poly_and_pt.pk}, - ) + url_polys + "?context_record_pk=" + str(cr_pt_poly_and_pt.pk) ) self.assertEqual(response.status_code, 200) self.assertEqual(dic_pt_poly_and_pt_t, json.loads(response.content)) @@ -2979,28 +2915,15 @@ class GeomaticTest(FindInit, TestCase): self.assertEqual(dic_pt_pt_and_poly_pt_and_poly_f, ope_pt.get_geo_items(False)) self.assertEqual(dic_pt_pt_and_poly_pt_and_poly_t, ope_pt.get_geo_items(True)) - response = self.client.get( - reverse("api-get-geo-polygons-from-operation", kwargs={"operation_pk": 0}) - ) + response = self.client.get(url_polys + "?operation_pk=0") self.assertEqual(response.status_code, 404) - response = self.client.get( - reverse( - "api-get-geo-polygons-from-operation", - kwargs={"operation_pk": ope_pt.pk}, - ) - ) + response = self.client.get(url_polys + "?operation_pk=" + str(ope_pt.pk)) self.assertEqual(response.status_code, 200) self.assertEqual(dic_pt_pt_and_poly_pt_and_poly_t, json.loads(response.content)) - response = self.client.get( - reverse("api-get-geo-points-from-operation", kwargs={"operation_pk": 0}) - ) + response = self.client.get(url_pts + "?operation_pk=0") self.assertEqual(response.status_code, 404) - response = self.client.get( - reverse( - "api-get-geo-points-from-operation", kwargs={"operation_pk": ope_pt.pk} - ) - ) + response = self.client.get(url_pts + "?operation_pk=" + str(ope_pt.pk)) self.assertEqual(response.status_code, 200) self.assertEqual(dic_pt_pt_and_poly_pt_and_poly_f, json.loads(response.content)) @@ -3020,30 +2943,17 @@ class GeomaticTest(FindInit, TestCase): dic_poly_pt_and_poly_pt_and_poly_t, ope_poly.get_geo_items(True) ) - response = self.client.get( - reverse("api-get-geo-polygons-from-operation", kwargs={"operation_pk": 0}) - ) + response = self.client.get(url_polys + "?operation_pk=0") self.assertEqual(response.status_code, 404) - response = self.client.get( - reverse( - "api-get-geo-polygons-from-operation", - kwargs={"operation_pk": ope_pt.pk}, - ) - ) + response = self.client.get(url_polys + "?operation_pk=" + str(ope_poly.pk)) self.assertEqual(response.status_code, 200) self.assertEqual( dic_poly_pt_and_poly_pt_and_poly_t, json.loads(response.content) ) - response = self.client.get( - reverse("api-get-geo-points-from-operation", kwargs={"operation_pk": 0}) - ) + response = self.client.get(url_pts + "?operation_pk=0") self.assertEqual(response.status_code, 404) - response = self.client.get( - reverse( - "api-get-geo-points-from-operation", kwargs={"operation_pk": ope_pt.pk} - ) - ) + response = self.client.get(url_pts + "?operation_pk=" + str(ope_poly.pk)) self.assertEqual(response.status_code, 200) self.assertEqual( dic_poly_pt_and_poly_pt_and_poly_f, json.loads(response.content) diff --git a/archaeological_finds/urls.py b/archaeological_finds/urls.py index f02b548e5..50abd1f99 100644 --- a/archaeological_finds/urls.py +++ b/archaeological_finds/urls.py @@ -574,7 +574,7 @@ urlpatterns = [ ), url(r"api/public/find/$", views.PublicFindAPI.as_view(), name="api-public-find"), url( - r"api/ishtar/base-finds/geo/polygons/?pk=(?P<pk>[0-9]+)/?$", + r"api/ishtar/base-finds/geo/polygons$", check_rights(["view_find", "view_own_find"])( views.get_geo_items, ), @@ -582,43 +582,11 @@ urlpatterns = [ kwargs={"get_polygons": True}, ), url( - r"api/ishtar/base-finds/geo/point/?pk=(?P<pk>[0-9]+)/$", + r"api/ishtar/base-finds/geo/points$", check_rights(["view_find", "view_own_find"])( views.get_geo_items, ), - name="api-get-geo-point", - kwargs={"get_polygons": False}, - ), - url( - r"api/ishtar/base-finds/geo/polygons/?context-record=(?P<context_record_pk>[0-9]+)/$", - check_rights(["view_find", "view_own_find"])( - views.get_geo_items, - ), - name="api-get-geo-polygons-from-context", - kwargs={"get_polygons": True}, - ), - url( - r"api/ishtar/base-finds/geo/points/?context-record=(?P<context_record_pk>[0-9]+)/$", - check_rights(["view_find", "view_own_find"])( - views.get_geo_items, - ), - name="api-get-geo-points-from-context", - kwargs={"get_polygons": False}, - ), - url( - r"api/ishtar/base-finds/geo/polygons/?operation=(?P<operation_pk>[0-9]+)/$", - check_rights(["view_find", "view_own_find"])( - views.get_geo_items, - ), - name="api-get-geo-polygons-from-operation", - kwargs={"get_polygons": True}, - ), - url( - r"api/ishtar/base-finds/geo/points/?operation=(?P<operation_pk>[0-9]+)/$", - check_rights(["view_find", "view_own_find"])( - views.get_geo_items, - ), - name="api-get-geo-points-from-operation", + name="api-get-geo-points", kwargs={"get_polygons": False}, ), ] diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py index bba4efb13..4c1c3890b 100644 --- a/archaeological_finds/views.py +++ b/archaeological_finds/views.py @@ -1338,14 +1338,10 @@ class PublicFindAPI(APIView): return Response(serializer.data) -def get_geo_items( - request, - get_polygons, - pk=None, - context_record_pk=None, - operation_pk=None, - current_right=None, -): +def get_geo_items(request, get_polygons, current_right=None): + operation_pk = request.GET.get("operation_pk") + context_record_pk = request.GET.get("context_record_pk") + pk = request.GET.get("pk") if operation_pk: try: bf = Operation.objects.get(pk=operation_pk) |