예제 #1
0
def setSettings(request):
    if request.user.is_authenticated():
        user = User.objects.get(username=request.user.username)
        terrain = Terrain.objects.get(pk=request.POST['terrainID'])
        query = Q(user=user) & Q(terrain=terrain)
        live = bool(request.POST['live'])
        vcolor = request.POST['color']
        sheight = float(request.POST['sheight'])
        vlen = float(request.POST['vlength'])
        vheight = float(request.POST['vheight'])
        try:
            settings = Setting.objects.get(query)
            settings.liveUpdate = live
            settings.vectorColor = vcolor
            settings.sceneHeight = sheight
            settings.vectorLength = vlen
            settings.vectorHeight = vheight
            settings.save()
        except:
            settings = Setting(vectorLength=vlen, vectorHeight=vheight, vectorColor=vcolor,
                               sceneHeight=sheight, liveUpdate=live, user=user, terrain=terrain)
            settings.save()
        return HttpResponse(status=status.HTTP_200_OK)
    else:
        return HttpResponse(status=status.HTTP_511_NETWORK_AUTHENTICATION_REQUIRED)
예제 #2
0
def getSettings(request):
    if request.user.is_authenticated():
        result = {}
        user = User.objects.get(username=request.user.username)
        terrain = Terrain.objects.get(pk=request.GET['terrainID'])
        query = Q(user=user) & Q(terrain=terrain)
        settings = Setting.objects.filter(query)
        # TODO: Replace this? its a bit of a hack to get things working...
        if len(settings) == 0:  # We need to create new settings for this terrain user and save them
            new_settings = Setting(user=user, terrain=terrain)
            new_settings.save()
            settings = new_settings
            #return HttpResponse(json.dumps(result), status=status.HTTP_204_NO_CONTENT)
        else:   # We get the settings for this terrain user
            settings = settings[0]
        result['VectorHeight'] = settings.vectorHeight
        result['VectorLength'] = settings.vectorLength
        result['SceneHeight'] = settings.sceneHeight
        result['ArrowColor'] = settings.vectorColor
        result['LiveUpdate'] = settings.liveUpdate
        return HttpResponse(json.dumps(result), status=status.HTTP_200_OK)
    else:
        return HttpResponse(status=status.HTTP_511_NETWORK_AUTHENTICATION_REQUIRED)