Beispiel #1
0
    def post(self):
        action = self.get_argument('action', None)
        id = self.get_argument('id', None)
        if action=='widget':
            instance = WidgetInstance.get(id);
            forms = WidgetInstanceForms(instance=instance, handler=self)
            if forms.validate():
                forms.save();
                d = WidgetInstanceOption.getInstanceDict(instance_id=id)
                jsonoptions = {'instance_id':id, 'options':d}
                d = WidgetInstanceSensor.getInstanceDict(instance_id=id)
                jsonsensors = {'instance_id':id, 'sensors':d}
                d = WidgetInstanceCommand.getInstanceDict(instance_id=id)
                jsoncommands = {'instance_id':id, 'commands':d}
                for socket in socket_connections:
                    socket.sendMessage(['widgetinstance-options', jsonoptions]);
                    socket.sendMessage(['widgetinstance-sensors', jsonsensors]);
                    socket.sendMessage(['widgetinstance-commands', jsoncommands]);
                self.write("{success:true}")
            else:
                self.render('widgetConfiguration.html', instance=instance, forms=forms)
        elif action=='section':
            Section.update(id, self.get_argument('sectionName'), self.get_argument('sectionDescription', None))
            for p, v in self.request.arguments.iteritems():
                if p.startswith( 'params' ):
                    SectionParam.saveKey(section_id=id, key=p[6:], value=v[0])

            json = to_json(Section.get(id))
            json['params'] = dict ((p.key, p.value) for p in SectionParam.getSection(id))
            for socket in socket_connections:
                socket.sendMessage(['section-details', json])
            self.write("{success:true}")
Beispiel #2
0
 def WSWidgetInstanceGetoptions(self, data):
     d = WidgetInstanceOption.getInstanceDict(instance_id=data['instance_id'])
     json = {'instance_id':data['instance_id'], 'options':d}
     return ['widgetinstance-options', json];