def post(self):
        vals = {}
        for k,v in request.form.iteritems():
            base = vals
            keys = k.split(".")
            for i in range(len(keys)-1):
                base = base.setdefault(keys[i], {})
            base[keys[len(keys)-1]] = v

        loc_data = vals.pop("location")
        id = loc_data.pop("_id")
        if id:
            loc = Location(id=id)
            loc._map(loc_data)
        else:
            loc = Location(data=loc_data)
        for k,v in vals.iteritems():
            if not v.get('_enabled'): v['_enabled'] = False
            for i in loc.interfaces:
                inter = i.interface
                if inter.__class__.__name__ == k:
                    inter._map(v)
                    inter.save()
                    break
            else:
                i = interfaces.get(k)(data=v)
                i.save()
                li = LocationInterface()
                li.interface = i
                loc.interfaces.append(li)

        loc.save()
        logging.info(loc.json())
        flash("Saved!", "success")
        return redirect(url_for('.location', id=loc._id))
예제 #2
0
    def post(self):
        vals = {}
        for k, v in request.form.iteritems():
            base = vals
            keys = k.split(".")
            for i in range(len(keys) - 1):
                base = base.setdefault(keys[i], {})
            base[keys[len(keys) - 1]] = v

        loc_data = vals.pop("location")
        id = loc_data.pop("_id")
        if id:
            loc = Location(id=id)
            loc._map(loc_data)
        else:
            loc = Location(data=loc_data)
        for k, v in vals.iteritems():
            if not v.get('_enabled'): v['_enabled'] = False
            for i in loc.interfaces:
                inter = i.interface
                if inter.__class__.__name__ == k:
                    inter._map(v)
                    inter.save()
                    break
            else:
                i = interfaces.get(k)(data=v)
                i.save()
                li = LocationInterface()
                li.interface = i
                loc.interfaces.append(li)

        loc.save()
        logging.info(loc.json())
        flash("Saved!", "success")
        return redirect(url_for('.location', id=loc._id))
예제 #3
0
파일: location.py 프로젝트: entone/LabLog
def location_data(location_id):
    loc = Location(id=location_id)
    data = loc.get_interface_data(g.INFLUX)
    return jsonify({'location':loc.json(), 'data':data})
예제 #4
0
def location_data(location_id):
    loc = Location(id=location_id)
    data = loc.get_interface_data(g.INFLUX)
    return jsonify({'location': loc.json(), 'data': data})