Esempio n. 1
0
def byCollection(req, gmId, dmuId, qualifier):
    gm = get_object_or_404(GeoMap, pk=gmId)
    dmu = get_object_or_404(DescriptionOfMapUnits, pk=dmuId)
    if dmu.owningmap != gm: return HttpResponseBadRequest("Invalid mapunit resource")
    
    if req.method == "GET":
        if qualifier == "age": response = dmu.geologicHistory()
        else: response = dmu.preferredAge()
        return HttpGeoJsonResponse(response, False)
    
    elif req.method == "POST":
        success, response = geoJsonToKwargs(GeologicEvents, req.raw_post_data, ["owningmap"])
        if not success: return HttpResponseBadRequest(response)
        response["owningmap"] = gm
        return createGeologicEvent(response, qualifier, gm, dmu)
    
    else:
        return HttpResponseNotAllowed(["GET", "POST"])
Esempio n. 2
0
def byResource(req, gmId, dmuId, qualifier, ageId):
    gm = get_object_or_404(GeoMap, pk=gmId)
    dmu = get_object_or_404(DescriptionOfMapUnits, pk=dmuId)
    if dmu.owningmap != gm: return HttpResponseBadRequest("Invalid age resource")
    
    if req.method == "GET":
        ge = get_object_or_404(GeologicEvents, pk=ageId)
        if dmu not in ge.mapunits(): return HttpResponseBadRequest("Invalid age resource")
        if (qualifier.lower() == "age" and ge.inGeologicHistory(dmu)) or (qualifier.lower() == "preferredage" and ge.isPreferredAge(dmu)):
            return HttpGeoJsonResponse([ge])
        else:
            return HttpResponseBadRequest("Invalid age resource")
    
    elif req.method == "PUT":
        success, response = geoJsonToKwargs(GeologicEvents, req.raw_post_data, ["owningmap"])
        if not success: return HttpResponseBadRequest(response)
        response["owningmap"] = gm
        response["id"] = ageId
        return createGeologicEvent(response, qualifier, gm, dmu)
    
    elif req.method == "DELETE":
        ge = get_object_or_404(GeologicEvents, pk=ageId)
        if dmu not in ge.mapunits(): return HttpResponseBadRequest("Invalid age resource")
        if qualifier.lower() == "age" and ge.inGeologicHistory(dmu):
            extAttrs = ExtendedAttributes.objects.filter(valuelinkid=ge.geologicevents_id, ownerid=dmu.descriptionofmapunits_id).exclude(property="preferredAge")
        elif qualifier.lower() == "preferredage" and  ge.isPreferredAge(dmu): 
            extAttrs = ExtendedAttributes.objects.filter(valuelinkid=ge.geologicevents_id, ownerid=dmu.descriptionofmapunits_id, property="preferredAge")
        else: return HttpResponseBadRequest("Invalid age resource")
        
        extAttrs.delete()
        if ExtendedAttributes.objects.filter(valuelinkid=ge.geologicevents_id).count() == 0:
            ge.delete()
            
        return HttpResponse(json.dumps({"success": True}), content_type="application/json")
    
    else:
        return HttpResponseNotAllowed(["GET", "PUT", "DELETE"])
Esempio n. 3
0
def byCollection(req, gmId, dmuId):
    gm = get_object_or_404(GeoMap, pk=gmId)
    dmu = get_object_or_404(DescriptionOfMapUnits, pk=dmuId)
    if dmu.owningmap != gm: return HttpResponseBadRequest("Invalid mapunit resource")
    
    if req.method == "GET":
        return HttpGeoJsonResponse(StandardLithology.objects.filter(mapunit=dmu), False)
    
    elif req.method == "POST":
        success, response = geoJsonToKwargs(StandardLithology, req.raw_post_data, ["owningmap", "mapunit"])
        if not success: return HttpResponseBadRequest(response)
        
        response["owningmap"] = gm
        response["mapunit"] = dmu
        
        try:
            newSl = StandardLithology(**response)
            newSl.save()
            return HttpGeoJsonResponse([newSl])
        except Exception as ex:
            return HttpResponseBadRequest(str(ex))
        
    else:
        return HttpResponseNotAllowed(["GET", "POST"])
Esempio n. 4
0
def byResource(req, gmId, dmuId, lithId):
    gm = get_object_or_404(GeoMap, pk=gmId)
    dmu = get_object_or_404(DescriptionOfMapUnits, pk=dmuId)
    if dmu.owningmap != gm: return HttpResponseBadRequest("Invalid mapunit resource")
    
    if req.method == "GET":
        sl = get_object_or_404(StandardLithology, pk=lithId)
        if sl.mapunit != dmu: return HttpResponseBadRequest("Invalid lithology resource")
        return HttpGeoJsonResponse([sl])
    
    elif req.method == "PUT":
        success, response = geoJsonToKwargs(StandardLithology, req.raw_post_data, ["owningmap", "mapunit"])
        if not success: return HttpResponseBadRequest(response)
        
        response["owningmap"] = gm
        response["mapunit"] = dmu
        response["id"] = lithId
        
        try:
            newSl = StandardLithology(**response)
            newSl.save()
            return HttpGeoJsonResponse([newSl])
        except Exception as ex:
            return HttpResponseBadRequest(str(ex))
        
    elif req.method == "DELETE":
        sl = get_object_or_404(StandardLithology, pk=lithId)
        if sl.mapunit != dmu: return HttpResponseBadRequest("Invalid lithology resource")
        try: sl.delete()
        except Exception (ex):
            return HttpResponseBadRequest(str(ex))
        else:
            return HttpResponse(json.dumps({ "success": True }), content_type="application/json")
        
    else:
        return HttpResponseNotAllowed(["GET", "PUT", "DELETE"])