summaryrefslogtreecommitdiff
path: root/archaeological_finds/views.py
diff options
context:
space:
mode:
authorQuentinAndre <quentin.andre@imt-atlantique.net>2021-07-10 08:37:57 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2021-11-16 17:04:41 +0100
commite57bd74364d5163fe456739bb2aa8fd2e873d07c (patch)
treed9f78eaa01a81a5db6eb63ba040928cec7de7ffd /archaeological_finds/views.py
parent223a5ba37e834f46b47ceb47e1550c8006357b95 (diff)
downloadIshtar-e57bd74364d5163fe456739bb2aa8fd2e873d07c.tar.bz2
Ishtar-e57bd74364d5163fe456739bb2aa8fd2e873d07c.zip
api for geo_get_items for context records + tests
Diffstat (limited to 'archaeological_finds/views.py')
-rw-r--r--archaeological_finds/views.py34
1 files changed, 27 insertions, 7 deletions
diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py
index d0ac01305..06bbfe632 100644
--- a/archaeological_finds/views.py
+++ b/archaeological_finds/views.py
@@ -30,6 +30,8 @@ from django.core.urlresolvers import reverse
from django.db.models import Q
from django.http import HttpResponseRedirect, HttpResponse, Http404
from django.shortcuts import redirect
+
+from archaeological_context_records.models import ContextRecord
from ishtar_common.utils import ugettext_lazy as _
from django.views.generic import TemplateView
from django.views.generic.edit import CreateView, FormView
@@ -37,7 +39,7 @@ from django.views.generic.edit import CreateView, FormView
from ishtar_common.serializers import PublicSerializer
from ishtar_common.models import IshtarUser, get_current_profile
-from archaeological_operations.models import AdministrativeAct
+from archaeological_operations.models import AdministrativeAct, Operation
from archaeological_finds import models
from ishtar_common.forms import FinalForm
@@ -1318,10 +1320,28 @@ class PublicFindAPI(APIView):
return Response(serializer.data)
-def get_geo_items(request, pk, get_polygons, current_right=None):
- try:
- base_find = models.BaseFind.objects.get(pk=pk)
- except models.BaseFind.DoesNotExist:
- raise Http404()
- dic = base_find.get_geo_items(get_polygons=get_polygons)
+def get_geo_items(
+ request,
+ get_polygons,
+ pk=None,
+ context_record_pk=None,
+ operation_pk=None,
+ current_right=None,
+):
+ if operation_pk:
+ try:
+ bf = Operation.objects.get(pk=operation_pk)
+ except Operation.DoesNotExist:
+ raise Http404()
+ elif context_record_pk:
+ try:
+ bf = ContextRecord.objects.get(pk=context_record_pk)
+ except ContextRecord.DoesNotExist:
+ raise Http404()
+ else:
+ try:
+ bf = models.BaseFind.objects.get(pk=pk)
+ except models.BaseFind.DoesNotExist:
+ raise Http404()
+ dic = bf.get_geo_items(get_polygons=get_polygons)
return HttpResponse(json.dumps(dic).encode("utf-8"))