migrate repository again
This commit is contained in:
50
web.py
Normal file
50
web.py
Normal file
@@ -0,0 +1,50 @@
|
||||
from db_connect import DatabaseConnect
|
||||
|
||||
from flask import Flask, abort, session
|
||||
from jinja2 import Template
|
||||
import plotly.express as px
|
||||
from plotly.subplots import make_subplots
|
||||
import plotly.graph_objects as go
|
||||
|
||||
import logging
|
||||
from os import sep
|
||||
|
||||
app = Flask(__name__)
|
||||
db = DatabaseConnect()
|
||||
|
||||
@app.route("/")
|
||||
def index():
|
||||
avail_rooms = db.view_valid_rooms(1)
|
||||
outtext = "<h1>Available rooms</h1><ul>"
|
||||
if len(avail_rooms) == 0:
|
||||
outtext += "<li>You have no rooms you can view</li>"
|
||||
else:
|
||||
for room in avail_rooms:
|
||||
outtext += f"<li><a href=/room/{room[1]}>{room[0]}</li>"
|
||||
outtext += "</ul>"
|
||||
return outtext
|
||||
|
||||
@app.route('/room/<room_name>')
|
||||
def room_page(room_name=None):
|
||||
if not db.user_has_room_perms(1,room_name):
|
||||
abort(403)
|
||||
|
||||
sensor_list = db.get_sensors_in_room(room_name)
|
||||
fig = make_subplots(rows=1, cols=len(sensor_list))
|
||||
for idx, sensorID in enumerate(sensor_list):
|
||||
lst = [x for x in db.get_sensor_data(sensorID)]
|
||||
fig.add_trace(
|
||||
go.Scatter(
|
||||
x = [x[0] for x in lst],
|
||||
y = [x[1] for x in lst],
|
||||
name=db.get_sensor_type(sensorID)),
|
||||
row = 1,
|
||||
col = idx + 1
|
||||
)
|
||||
fig.update_layout(title_text=f"Available Devices in room {room_name}:")
|
||||
|
||||
template_path = f'web{sep}room_template.html'
|
||||
px_jinja_data = {"fig":fig.to_html(full_html=False)}
|
||||
with open(template_path,'r') as template_file:
|
||||
j2_template = Template(template_file.read())
|
||||
return j2_template.render(px_jinja_data)
|
||||
Reference in New Issue
Block a user