Beispiel #1
0
def edit_device(id):
    device = db_session.query(Device).filter_by(id=id).first()
    edit_form = EditDevice(request.form, device, prefix="edit_form")
    delete_form = DeleteDevice(request.form, device, prefix="delete_form")

    if request.method == 'POST':
        if 'edit_form-id' in request.form and edit_form.validate():
            device.name = edit_form.name.data
            device.location = edit_form.location.data
            device.description = edit_form.description.data
            if device.user_configured is False:
                device.user_configured = True
                setup_device(device)
            db_session.commit()
            flash("Device updated succesfully", 'success')
            return redirect(url_for(".show_device", id=id))

        elif 'delete_form-id' in request.form and delete_form.validate():
            delete_device(device)
            flash("Device removed.", 'success')
            return redirect(url_for('.device_overview'))

    return render_template('device-edit.html',
                           device=device,
                           edit_form=edit_form,
                           delete_form=delete_form)
Beispiel #2
0
def edit_grainbin(id):
    grainbin = db_session.query(Grainbin).filter_by(id=id).first()
    edit_form = EditGrainbin(request.form, grainbin, prefix="edit_form")
    delete_form = DeleteGrainbin(request.form, grainbin, prefix="delete_form")

    if request.method == 'POST':
        if 'edit_form-id' in request.form and edit_form.validate():
            grainbin.name = edit_form.name.data
            grainbin.location = edit_form.location.data
            grainbin.description = edit_form.description.data
            if grainbin.user_configured is False:
                grainbin.user_configured = True
                setup_grainbin(grainbin)
            db_session.commit()
            flash("Grainbin updated succesfully", 'success')
            return redirect(url_for(".show_grainbin", id=id))

        elif 'delete_form-id' in request.form and delete_form.validate():
            delete_grainbin(grainbin)
            flash("Grainbin removed", 'success')
            return redirect(url_for('.grainbin_overview'))

    return render_template('grainbin-edit.html',
                           grainbin=grainbin,
                           edit_form=edit_form,
                           delete_form=delete_form)
Beispiel #3
0
def delete_grainbin(grainbin):

    rrd = RRD(grainbin.device_id, 'grainbin',
              service_number=grainbin.bus_number)
    rrd.remove()

    db_session.query(Grainbin).filter_by(id=grainbin.id).delete()
    db_session.commit()
    return
Beispiel #4
0
def login():
    if request.method == "POST":

        attempted_username = request.form["username"]
        attempted_password = request.form["password"]

        user = db_session.query(User) \
                         .filter_by(username=attempted_username) \
                         .first()
        print(attempted_username)
        print(user)
        # check that the supplied user exists
        if user:
            # check that the supplied password matches
            if user.password == attempted_password:
                # user is now logged in
                if request.form.get("remember"):
                    session["remember"] = True
                    current_app.permanent_session_lifetime = timedelta(days=30)
                else:
                    session["remember"] = False
                    # how long the session will last
                    current_app.\
                        permanent_session_lifetime = timedelta(minutes=30)
                session["logged_in"] = True
                session["username"] = user.username
                flash("Last login: %s" % user.last_login, 'success')
                if session["remember"]:
                    expire = user.last_login + timedelta(days=30)
                    flash("Your session will expire on: %s" % expire,
                          'info')
                user.last_login = datetime.now()
                db_session.commit()
                return redirect(redirect_url())
            # password does not match
            else:
                flash("Invalid username or password. Please try again")
                return render_template("login.html")
        # the user does not exist
        else:
            flash("Invalid username or password. Please try again")
            return render_template("login.html")

    else:
        return render_template("login.html")
Beispiel #5
0
def delete_device(device):
    address = Config.get('services', 'client_address')
    port = Config.get('services', 'client_port')
    address = "tcp://" + address + ":" + port

    socket = zmq.Context().socket(zmq.REQ)
    socket.setsockopt(zmq.LINGER, 0)
    socket.connect(address)

    message = ['00000000', 'control', 'remove', device.id]
    mdp_request(socket, 'device', message, 1)

    rrd = RRD(device.id, 'device')
    rrd.remove(remove_folder=True)

    db_session.query(Device).filter_by(id=device.id).delete()
    db_session.commit()

    return