コード例 #1
0
ファイル: views.py プロジェクト: Yanual/ezwebplatform
def createConnectable(var):
    #If var is and SLOT or and EVENT, a proper connectable object must be created!
    aspect = var.vardef.aspect
    name = var.vardef.name

    connectable = None

    if (aspect == 'SLOT'):
        connectable = Out(name=name, abstract_variable=var.abstract_variable)
    if (aspect == 'EVEN'):
        connectable = In(name=name, variable=var)

    if (connectable == None):
        return {}

    connectable.save()

    connectableId = {}

    connectableId['id'] = connectable.id
    connectableId['name'] = name

    return connectableId
コード例 #2
0
    def create(self, request, user_name, screen_id=None):
        user = user_authentication(user_name)

        # Gets all needed parameters from request
        if request.POST.has_key('json'):
            json = simplejson.loads(request.POST['json'])
        else:
            return HttpResponseBadRequest('json parameter expected')

        #TODO Remove this. Sets user screen by default
        if not screen_id:
            screen_id = 1

        try:
            #Gets current user screen
            screen = Screen.objects.get(user=user, code=screen_id)

            igadgets = json['iGadgetList']
            for igadget in igadgets:
                igadget_object = IGadget.objects.get(screen=screen,
                                                     code=igadget['id'])

                # Save all IGadget connections (in and out variables)
                for var in igadget['list']:
                    var_object = Variable.objects.get(uri=var['uri'],
                                                      vardef__name=var['name'],
                                                      igadget=igadget_object)

                    # Remove existed connections
                    Out.objects.filter(variable=var_object).delete()
                    In.objects.filter(variable=var_object).delete()

                    # Saves IN connection
                    if var['aspect'] == 'EVEN':
                        uri_in = "/user/%s/igadgets/%s/in/%s" % (
                            user_name, igadget_object.code, var['name'])
                        in_object = In(uri=uri_in,
                                       name=var['name'],
                                       variable=var_object)
                        in_object.save()

                    # Saves OUT connection
                    if var['aspect'] == 'SLOT':
                        uri_out = "/user/%s/igadgets/%s/out/%s" % (
                            user_name, igadget_object.code, var['name'])
                        out_object = Out(uri=uri_out,
                                         name=var['name'],
                                         variable=var_object)
                        out_object.save()

            # Delete channels
            InOut.objects.filter(user=user).delete()

            # Saves all channels
            for inout in json['inOutList']:
                inout_object = None
                inout_object = InOut(user=user,
                                     uri=inout['uri'],
                                     name=inout['name'],
                                     friend_code=inout['friend_code'],
                                     value=inout['value'])
                inout_object.save()

                # Saves all channel inputs
                for ins in inout['ins']:
                    igadget_object = IGadget.objects.get(screen=screen,
                                                         code=ins['igadget'])
                    var_object = Variable.objects.get(vardef__name=ins['name'],
                                                      igadget=igadget_object)
                    connected_in = In.objects.get(variable=var_object)
                    connected_in.inout.add(inout_object)

                # Saves all channel outputs
                for out in inout['outs']:
                    igadget_object = IGadget.objects.get(screen=screen,
                                                         code=out['igadget'])
                    var_object = Variable.objects.get(vardef__name=out['name'],
                                                      igadget=igadget_object)
                    connected_out = Out.objects.get(variable=var_object)
                    connected_out.inout.add(inout_object)

            transaction.commit()
            return HttpResponse('ok')
        except Screen.DoesNotExist:
            transaction.rollback()
            return HttpResponseBadRequest('refered screen (' + screen_id +
                                          ') doesn\'t exists.')
        except IGadget.DoesNotExist:
            transaction.rollback()
            return HttpResponseBadRequest('refered igadget doesn\'t exists.')
        except Variable.DoesNotExist:
            transaction.rollback()
            return HttpResponseBadRequest('refered variable doesn\'t exists.')
        except Exception, e:
            transaction.rollback()
            return HttpResponseBadRequest('connectables cannot be save: %s' %
                                          e)
コード例 #3
0
ファイル: views.py プロジェクト: conwetlab/ezwebplatform
    def create(self, request, user_name, screen_id=None):
        user = user_authentication(user_name)

        # Gets all needed parameters from request
        if request.POST.has_key('json'):
            json = simplejson.loads(request.POST['json'])
        else:
            return HttpResponseBadRequest (_(u'JSON parameter expected'))
        
        #TODO Remove this. Sets user screen by default 
        if not screen_id:
        		screen_id = 1

        try:
            #Gets current user screen
            screen = Screen.objects.get(user=user, code=screen_id)
            
            igadgets = json['iGadgetList']
            for igadget in igadgets:
                igadget_object = IGadget.objects.get(screen=screen, code=igadget['id'])

                # Save all IGadget connections (in and out variables)
                for var in igadget['list']:
                    var_object = Variable.objects.get(uri=var['uri'], vardef__name=var['name'], igadget=igadget_object)

                    # Remove existed connections
                    Out.objects.filter(variable=var_object).delete()
                    In.objects.filter(variable=var_object).delete()
        
                    # Saves IN connection
                    if var['aspect'] == 'EVEN':
                        uri_in = "/user/%s/igadgets/%s/in/%s" % (user_name, igadget_object.code, var['name'])
                        in_object = In(uri=uri_in, name=var['name'], variable=var_object)
                        in_object.save()

                    # Saves OUT connection
                    if var['aspect'] == 'SLOT':
                        uri_out = "/user/%s/igadgets/%s/out/%s" % (user_name, igadget_object.code, var['name'])
                        out_object = Out(uri=uri_out, name=var['name'], variable=var_object)
                        out_object.save()
            
            # Delete channels
            InOut.objects.filter(user=user).delete()

            # Saves all channels
            for inout in json['inOutList']:
                inout_object = None
                inout_object = InOut(user=user, uri=inout['uri'], name=inout['name'], friend_code=inout['friend_code'], value=inout['value'])
                inout_object.save()
                
                # Saves all channel inputs
                for ins in inout['ins']:            
                    igadget_object = IGadget.objects.get(screen=screen, code=ins['igadget'])
                    var_object = Variable.objects.get(vardef__name=ins['name'], igadget=igadget_object)
                    connected_in = In.objects.get(variable=var_object)
                    connected_in.inout.add(inout_object)
                    
                # Saves all channel outputs
                for out in inout['outs']:            
                    igadget_object = IGadget.objects.get(screen=screen, code=out['igadget'])
                    var_object = Variable.objects.get(vardef__name=out['name'], igadget=igadget_object)
                    connected_out = Out.objects.get(variable=var_object)
                    connected_out.inout.add(inout_object)
                                          
            transaction.commit()
            return HttpResponse ('ok')
        except Screen.DoesNotExist:
            transaction.rollback()
            return HttpResponseBadRequest(_('refered screen %(screen_id)s doesn\'t exists.') % {'screen_id': screen_id})
        except IGadget.DoesNotExist:
            transaction.rollback()
            return HttpResponseBadRequest(_('refered igadget doesn\'t exists.'))
        except Variable.DoesNotExist:
            transaction.rollback()
            return HttpResponseBadRequest(_('refered variable doesn\'t exists.'))
        except Exception, e:
            transaction.rollback()
            return HttpResponseBadRequest(_('connectables cannot be save: %(exc)s') % {'exc': e})