def dellistofsensors():
    error = None
    list = []
    sensor_database = do.load_obj(shared.sensor_database)

    if request.method == 'POST':

        if request.form != {}:

            for value in request.form.values():
                list.append(value)

            message = do.delete_list_of_sensors(list)

            if message == 0:
                flash("Sensors successfully deleted")
                return redirect(url_for('messages'))
            else:
                error = "There was an error processing your request"
        else:
            error = "Must choose at least one sensor"

    return render_template("dellistofsensors.html",
                           error=error,
                           sensor_database=sensor_database)
def updatesensorinfo(sensor):
    error = None
    sensor_database = do.load_obj(shared.sensor_database)
    sensor_info = sensor_database[sensor]

    if request.method == 'POST':
        if 0 == do.update_sensor_info(sensor, request.form):
            flash(sensor + " info successfully updated")
            return redirect(url_for('messages'))
        else:
            error = "Error"

    return render_template("updatesensorinfo.html",
                           error=error,
                           sensor_info=sensor_info)
def getnodedata(node):
    node_database = do.load_obj(shared.node_database)
    sensor_database = do.load_obj(shared.sensor_database)

    node_sensor_list = node_database[node]['sensor_list']
    message = node + " sensor data: || "
    for item in node_sensor_list:
        sensor_type = sensor_database[item]['sensor_type']

        if sensor_type == 'temp':
            temp = get.temperature()
            message += "Temperature: " + str(temp) + " degF || "
        if sensor_type == 'pressure':
            pressure = get.pressure()
            message += "Pressure: " + str(pressure) + " mbar || "
        if sensor_type == 'humidity':
            humidity = get.humidity()
            message += "Humidity: " + str(humidity) + " % || "
        if sensor_type == 'light':
            light = get.light()
            message += "Light: " + str(light) + " lux || "

    flash(message)
    return redirect(url_for('reqdatanode'))
def getclusterdata(cluster):
    cluster_database = do.load_obj(shared.cluster_database)
    sensor_database = do.load_obj(shared.sensor_database)

    cluster_sensor_list = cluster_database[cluster]['sensor_list']
    message = cluster + " sensor data: || "
    for item in cluster_sensor_list:
        sensor_type = sensor_database[item]['sensor_type']

        if sensor_type == 'temp':
            temp = get.temperature()
            message += "Temperature: " + str(temp) + " degF || "
        if sensor_type == 'pressure':
            pressure = get.pressure()
            message += "Pressure: " + str(pressure) + " mbar || "
        if sensor_type == 'humidity':
            humidity = get.humidity()
            message += "Humidity: " + str(humidity) + " % || "
        if sensor_type == 'light':
            light = get.light()
            message += "Light: " + str(light) + " lux || "

    flash(message)
    return redirect(url_for('reqdatacluster'))
def addnode():
    cluster_database = do.load_obj(shared.cluster_database)

    if request.method == 'POST':
        number = int(request.form['number'])
        cluster = request.form['cluster']
        street = request.form['street']
        if do.add_node(number, cluster, street) == 0:
            flash('Nodes successfully added')
            return redirect(url_for('messages'))
        elif do.add_node(number, cluster,
                         street) == "Error: Invalid cluster ID!":
            flash("Error")
            return redirect(url_for('messages'))

    return render_template("addnode.html", cluster_database=cluster_database)
def delsenfromnode():
    error = None
    node_database = do.load_obj(shared.node_database)

    if request.method == 'POST':
        node = request.form['node']
        message = do.delete_sensors(None, node)

        if message == 0:
            flash("Sensors successfully deleted")
            return redirect(url_for('messages'))
        else:
            error = message

    return render_template("delsenfromnode.html",
                           error=error,
                           node_database=node_database)
def delsenfromcluster():
    error = None
    cluster_database = do.load_obj(shared.cluster_database)

    if request.method == 'POST':
        cluster = request.form['cluster']
        message = do.delete_sensors(cluster, None)

        if message == 0:
            flash("Sensors successfully deleted")
            return redirect(url_for('messages'))
        else:
            error = message

    return render_template("delsenfromcluster.html",
                           error=error,
                           cluster_database=cluster_database)
def addsensortonode():
    error = None
    node_database = do.load_obj(shared.node_database)

    if request.method == 'POST':

        node = request.form['node']
        result = request.form
        list = []
        temp = "temp"
        pressure = "pressure"
        light = "light"
        humidity = "humidity"

        if temp not in result and pressure not in result and light not in result and humidity not in result:
            error = "Must choose at least one sensor"
        else:
            if temp in result:
                list.append(temp)
            if pressure in result:
                list.append(pressure)
            if light in result:
                list.append(light)
            if humidity in result:
                list.append(humidity)

            added = do.add_sensors(list, None, node)
            if added == 0:
                flash("Sensors successfully added to Node")
                return redirect(url_for('messages'))
            else:
                error = added

    return render_template("addsensortonode.html",
                           error=error,
                           node_database=node_database)
def updatesensor():
    sensor_database = do.load_obj(shared.sensor_database)
    return render_template("updatesensor.html",
                           sensor_database=sensor_database)
def updatenode():
    node_database = do.load_obj(shared.node_database)
    return render_template("updatenode.html", node_database=node_database)
def updatecluster():
    cluster_database = do.load_obj(shared.cluster_database)
    return render_template("updatecluster.html",
                           cluster_database=cluster_database)
def sensorsinfo():
    sensor_database = do.load_obj(shared.sensor_database)
    return render_template("sensorsinfo.html", sensor_database=sensor_database)
def nodesinfo():
    node_database = do.load_obj(shared.node_database)
    return render_template("nodesinfo.html", node_database=node_database)
def clustersinfo():
    cluster_database = do.load_obj(shared.cluster_database)
    return render_template("clustersinfo.html",
                           cluster_database=cluster_database)