diff options
author | QuentinAndre <quentin.andre@imt-atlantique.net> | 2021-07-10 08:37:57 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-09-01 12:36:46 +0200 |
commit | c683ae15a9346a94068265c0ae10060988448d32 (patch) | |
tree | 37b1874957feaa42ff79af589f06ac6e5e9c1645 /archaeological_finds/views.py | |
parent | 5c5de8cb55e777df371b914e4f7978f19dc20dbc (diff) | |
download | Ishtar-c683ae15a9346a94068265c0ae10060988448d32.tar.bz2 Ishtar-c683ae15a9346a94068265c0ae10060988448d32.zip |
api for geo_get_items for context records + tests
Diffstat (limited to 'archaeological_finds/views.py')
-rw-r--r-- | archaeological_finds/views.py | 34 |
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")) |