def submit(request): """ submit new object description, expected data: id, class, description (human readable), object_description and an arbitrary number of binary files.""" if not request.user.is_authenticated(): return HttpResponseRedirect("/login") if request.method == 'POST': try: # Hbase row and upload files files = {} for k,v in request.FILES.items(): files[request.POST[k]] = v if transaction.set(id_=request.POST['id'], author=request.user.username, class_=request.POST['class'], description=request.POST['description'], object_description=request.POST['object_description'], files=files): return HttpResponse(views.success(request)) else: return HttpResponse(views.error(request, nextPage="/objects", errorType=2, errorMessage="Object already exist. Please choose another Identifier")) except (roboearth.DBWriteErrorException, roboearth.DBException), err: return HttpResponse(views.error(request, nextPage="/objects", errorType=2, errorMessage=err.__str__()))
def update(request): """ update existing object description, expected data: complete id (class.id), object description and/or human readable description """ if not request.user.is_authenticated(): return HttpResponseRedirect("/login") if request.method == 'POST': try: if transaction.update(id_=request.POST['id'], author=request.user.username, data=request.POST): return HttpResponse(views.success(request)) else: return HttpResponse( views.error( request, nextPage="/", errorType=2, errorMessage= "Object already exist. Please choose another Identifier" )) except (roboearth.DBWriteErrorException, roboearth.DBException), err: return HttpResponse( views.error(request, nextPage="/", errorType=2, errorMessage=err.__str__()))
def submit(request): """ submit new action recipe, expected data: id, class, (human readable) description, recipe """ if not request.user.is_authenticated(): return HttpResponseRedirect("/login") if request.method == "POST": try: if transaction.set( id_=request.POST["id"], class_=request.POST["class"], description=request.POST["description"], recipe=request.POST["recipe"], author=request.user.username, ): return HttpResponse(views.success(request)) else: return HttpResponse( views.error( request, nextPage="/recipes", errorType=2, errorMessage="Recipe already exist. Please choose another Identifier", ) ) except (roboearth.DBWriteErrorException, roboearth.DBException), err: return HttpResponse(views.error(request, nextPage="/recipes", errorType=2, errorMessage=err.__str__()))
def submit(request): """ submit new action recipe, expected data: id, class, (human readable) description, recipe """ if not request.user.is_authenticated(): return HttpResponseRedirect("/login") if request.method == 'POST': try: if transaction.set(id_=request.POST['id'], class_=request.POST['class'], description=request.POST['description'], recipe=request.POST['recipe'], author=request.user.username): return HttpResponse(views.success(request)) else: return HttpResponse( views.error( request, nextPage="/recipes", errorType=2, errorMessage= "Recipe already exist. Please choose another Identifier" )) except (roboearth.DBWriteErrorException, roboearth.DBException), err: return HttpResponse( views.error(request, nextPage="/recipes", errorType=2, errorMessage=err.__str__()))
def submit(request): """ submit new environment, expected data: id, class, (human readable) description, environment, lat (optional), lng (optional) For the class "osm" the database will perfom osm based geocoding based on the "id" string""" if not request.user.is_authenticated(): return HttpResponseRedirect("/login") if request.method == 'POST': try: lat = None lng = None if request.POST.has_key('addGeodata'): lat = request.POST['lat'] lng = request.POST['lng'] files = {} for k,v in request.FILES.items(): files[request.POST[k]] = v if transaction.set(id_=request.POST['id'], class_=request.POST['class'], description=request.POST['description'], environment=request.POST['environment'], lat = lat, lng = lng, author=request.user.username, files = files): return HttpResponse(views.success(request)) else: return HttpResponse(views.error(request, nextPage="/recipes", errorType=2, errorMessage="Environment already exist. Please choose another Identifier")) except (roboearth.DBWriteErrorException, roboearth.DBException, roboearth.FormInvalidException), err: return HttpResponse(views.error(request, nextPage="/environments", errorType=2, errorMessage=err.__str__()))
def submit(request): """ submit new robot location, expected data: id, complete id of an already stored environment, description and a picture of the robot""" if not request.user.is_authenticated(): return HttpResponseRedirect("/login") if request.method == 'POST': try: transaction.set(id_=request.POST['id'], author=request.user.username, description=request.POST['description'], srdl=request.POST['srdl'], picture=request.FILES['picture']) return HttpResponse(views.success(request)) except (roboearth.DBWriteErrorException, roboearth.DBException), err: return HttpResponse( views.error(request, nextPage="/robots", errorType=2, errorMessage=err.__str__())) except (roboearth.FormInvalidException, roboearth.NoDBEntryFoundException), err: return HttpResponse( views.error(request, nextPage="/robots", errorType=1, errorMessage=err.__str__()))
def change_email(request): """ change e-mail address of the authenticated user """ if request.POST['email_new'] != request.POST['email_old']: request.user.email = request.POST['email_new'] request.user.save() return HttpResponse(views.success(request)) else: return HttpResponseRedirect("/profile")
def change_password(request): """ change password of the authenticated user """ if request.user.check_password(request.POST['password_old']) and request.POST['password_new0'] == request.POST['password_new1']: request.user.set_password(request.POST['password_new0']) request.user.save() return HttpResponse(views.success(request)) else: return HttpResponse(views.error(request, nextPage="/profile", errorType=0, errorMessage="Couldn't change your password, please try again!"+request.user.password))
def unsubscribe(request): """ subscribe to a datum """ if not request.user.is_authenticated(): return HttpResponseRedirect("/login") try: transaction.unsubscribe(username = request.user.username, table = request.POST['table'], uid = request.POST['rowKey']) return HttpResponse(views.success(request)) except Exception, err: return HttpResponse(views.error(request, nextPage="/", errorType=2, errorMessage=err.__str__()))
def submit(request): """ submit new environment, expected data: id, class, (human readable) description, environment, lat (optional), lng (optional) For the class "osm" the database will perfom osm based geocoding based on the "id" string""" if not request.user.is_authenticated(): return HttpResponseRedirect("/login") if request.method == 'POST': try: lat = None lng = None if request.POST.has_key('addGeodata'): lat = request.POST['lat'] lng = request.POST['lng'] files = {} for k, v in request.FILES.items(): files[request.POST[k]] = v if transaction.set(id_=request.POST['id'], class_=request.POST['class'], description=request.POST['description'], environment=request.POST['environment'], lat=lat, lng=lng, author=request.user.username, files=files): return HttpResponse(views.success(request)) else: return HttpResponse( views.error( request, nextPage="/recipes", errorType=2, errorMessage= "Environment already exist. Please choose another Identifier" )) except (roboearth.DBWriteErrorException, roboearth.DBException, roboearth.FormInvalidException), err: return HttpResponse( views.error(request, nextPage="/environments", errorType=2, errorMessage=err.__str__()))
def update(request): """ update existing object description, expected data: complete id (class.id), object description and/or human readable description """ if not request.user.is_authenticated(): return HttpResponseRedirect("/login") if request.method == 'POST': try: if transaction.update(id_=request.POST['id'], author=request.user.username, data=request.POST): return HttpResponse(views.success(request)) else: return HttpResponse(views.error(request, nextPage="/", errorType=2, errorMessage="Object already exist. Please choose another Identifier")) except (roboearth.DBWriteErrorException, roboearth.DBException), err: return HttpResponse(views.error(request, nextPage="/", errorType=2, errorMessage=err.__str__()))
def submit(request): """ submit new object location, expected data """ if not request.user.is_authenticated(): return HttpResponseRedirect("/login") if request.method == 'POST': try: transaction.setLocation(environment=request.POST['environment'], author=request.user.username, room_number = request.POST['room_number'], posX=request.POST['posX'], posY=request.POST['posY'], posZ=request.POST['posZ'], delta=request.POST['delta'], object_=request.POST['object']) return HttpResponse(views.success(request)) except (roboearth.DBWriteErrorException, roboearth.DBException), err: return HttpResponse(views.error(request, nextPage="/locations/objects", errorType=2, errorMessage=err.__str__()))
def submit(request): """ submit new object description, expected data: id, class, description (human readable), object_description and an arbitrary number of binary files.""" if not request.user.is_authenticated(): return HttpResponseRedirect("/login") if request.method == 'POST': try: # Hbase row and upload files files = {} for k, v in request.FILES.items(): files[request.POST[k]] = v if transaction.set( id_=request.POST['id'], author=request.user.username, class_=request.POST['class'], description=request.POST['description'], object_description=request.POST['object_description'], files=files): return HttpResponse(views.success(request)) else: return HttpResponse( views.error( request, nextPage="/objects", errorType=2, errorMessage= "Object already exist. Please choose another Identifier" )) except (roboearth.DBWriteErrorException, roboearth.DBException), err: return HttpResponse( views.error(request, nextPage="/objects", errorType=2, errorMessage=err.__str__()))
def submit(request): """ submit new object location, expected data """ if not request.user.is_authenticated(): return HttpResponseRedirect("/login") if request.method == 'POST': try: transaction.setLocation(environment=request.POST['environment'], author=request.user.username, room_number=request.POST['room_number'], posX=request.POST['posX'], posY=request.POST['posY'], posZ=request.POST['posZ'], delta=request.POST['delta'], object_=request.POST['object']) return HttpResponse(views.success(request)) except (roboearth.DBWriteErrorException, roboearth.DBException), err: return HttpResponse( views.error(request, nextPage="/locations/objects", errorType=2, errorMessage=err.__str__()))