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)
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)