adds device handling functionality from the browser

This commit is contained in:
2020-05-28 12:00:05 +02:00
parent 5d1edbc6fc
commit 7b82086ff0
6 changed files with 68 additions and 47 deletions

View File

@ -10,8 +10,6 @@ class LoginForm(FlaskForm):
remember_me = BooleanField('Remember Me')
submit = SubmitField('Sign In')
class RegistrationForm(FlaskForm):
username = StringField('Username', validators=[DataRequired()])
email = StringField('Email', validators=[DataRequired(), Email()])
@ -31,5 +29,5 @@ class RegistrationForm(FlaskForm):
raise ValidationError('Please use a different email address.')
class DeviceForm(FlaskForm):
deviceId=StringField('New Device ID', validators=[DataRequired()])
deviceName=StringField('New Device ID', validators=[DataRequired()])
submit = SubmitField('Add New Device')

View File

@ -51,16 +51,30 @@ def view():
def devices():
if not current_user.is_authenticated:
return flask.render_template('login.html')
device = Device()
device.deviceId="Anthon-Mouse-Car"
devices = [device]
# if this is a post request from the 'unlink' submittion form
# delete this device from the list
if request.method == 'POST':
if request.form.get("submit") == "Unlink":
device = db.session.query(Device).filter(Device.deviceName==request.form.get("device")).first()
db.session.delete(device)
db.session.commit()
# if this is part of the device form
# TODO add this device to the user - do not create new device
form = DeviceForm()
if form.validate_on_submit():
print(form.deviceId.data, flush=True)
print(form.deviceName.data, flush=True)
device = Device()
device.deviceName = form.deviceName.data
device.connection = False
db.session.add(device)
current_user.devices.append(device)
# TODO add device to database here
return flask.render_template('devices.html', devices=devices, form=form)
db.session.commit()
return flask.render_template('devices.html',
devices=current_user.devices,
form=form)
@app.route("/calendar")
@ -89,6 +103,9 @@ def emaillogin():
def register():
if current_user.is_authenticated:
return redirect(url_for('account'))
form = RegistrationForm()
if form.validate_on_submit():
user = User(userid=form.username.data,
@ -105,16 +122,9 @@ def register():
def deleteAccount():
if not current_user.is_authenticated:
return redirect(url_for('account'))
# TODO fix google delete account
if current_user.google_token != None:
google.deleteAccount(current_user)
'''
for cal in current_user.calendars:
db.session.delete(cal)
for dev in current_user.devices:
db.session.delete(dev)
db.session.delete(current_user.google_token)
'''
db.session.delete(current_user)
db.session.commit()
logout_user()
@ -199,7 +209,7 @@ def generateDeviceFingerprint():
# check not in Device Database
# Save as new Device
# Send to User
return jsonify(deviceId="Carrot-Enamel-Storm")
return jsonify(deviceName="Carrot-Enamel-Storm")
# POST

View File

@ -10,16 +10,23 @@
{% for item in devices %}
<div class="container">
<!--device id-->
<div style="width: 15rem; margin: 1rem;">{{ item.deviceId }}</div>
<div style="width: 15rem; margin: 1rem;">{{ item.deviceName }}</div>
<!--link status-->
<div style="width: 10rem; margin: 1rem; padding-right: 4rem">
Connected
{% if item.connection %}
Connected
{% else %}
Not Connected
{% endif %}
</div>
<!--action button-->
<div style="width: 4rem; margin: 1rem;">
<button type="button">Unlink</button>
<form action="" method="post">
<input type="hidden" name="device" value={{ item.deviceName }}>
<input type="submit" name="submit" value="Unlink">
</form>
</div>
</div>
@ -27,8 +34,8 @@
<form action="" method="post">
<div class="container grey" style="margin-top: 3rem;">
<div>{{ form.hidden_tag() }}</div>
<div style="width: 7rem; margin: 1rem">{{ form.deviceId.label }}</div>
<div style="width: 12rem; margin: 1rem">{{ form.deviceId(size=24) }}</div>
<div style="width: 7rem; margin: 1rem">{{ form.deviceName.label }}</div>
<div style="width: 12rem; margin: 1rem">{{ form.deviceName(size=24) }}</div>
<div style="with: 7rem; margin: 1rem">{{ form.submit() }}</div>
</div>
</form>