summaryrefslogtreecommitdiff
path: root/archaeological_finds
diff options
context:
space:
mode:
authorQuentinAndre <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
commit2a8d2108f9d87f62db245895cc716e90f2225af6 (patch)
tree941848bc1ef3914c21e5606bc62b422b10b85c5b /archaeological_finds
parent92bd9026e0b6397103da83bffe64f3a53ee06742 (diff)
downloadIshtar-2a8d2108f9d87f62db245895cc716e90f2225af6.tar.bz2
Ishtar-2a8d2108f9d87f62db245895cc716e90f2225af6.zip
url with get and display geo items
Diffstat (limited to 'archaeological_finds')
-rw-r--r--archaeological_finds/tests.py152
-rw-r--r--archaeological_finds/urls.py38
-rw-r--r--archaeological_finds/views.py12
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)