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)
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)
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
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")
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