Esempio n. 1
0
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__()))
Esempio n. 2
0
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__()))
Esempio n. 3
0
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__()))
Esempio n. 4
0
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__()))
Esempio n. 5
0
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__()))
Esempio n. 6
0
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__()))
Esempio n. 7
0
 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")
Esempio n. 8
0
 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))
Esempio n. 9
0
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__()))
Esempio n. 10
0
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__()))
Esempio n. 11
0
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__()))
Esempio n. 12
0
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__()))
Esempio n. 13
0
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__()))
Esempio n. 14
0
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__()))