database access for rooms and mqtt client + generator
This commit is contained in:
@@ -1,33 +1,27 @@
|
||||
from flask import url_for, Flask
|
||||
from jinja2 import FileSystemLoader
|
||||
from flask import url_for
|
||||
from flask_login import current_user
|
||||
|
||||
import tomllib
|
||||
from os import sep
|
||||
from collections import namedtuple
|
||||
|
||||
def static_test_load():
|
||||
with open("static_text.toml", "rb") as f:
|
||||
return tomllib.load(f)
|
||||
|
||||
UserInfo = namedtuple('UserInfo',['id', 'name'])
|
||||
RoomInfo = namedtuple('RoomInfo',['name', 'shortcode', 'roomdata'])
|
||||
# state is an int not in db
|
||||
# 0 - value valid
|
||||
# 1 - value late
|
||||
# 2 - value missing
|
||||
SensorInfo = namedtuple('SensorInfo',['state','type','timestamp','reading'])
|
||||
|
||||
# base class for inheriting other more specific pages
|
||||
class BasePage():
|
||||
def __init__(
|
||||
self,
|
||||
jijna_env,
|
||||
userinfo,
|
||||
roominfo,
|
||||
target_path = "base.html.jinja" ,
|
||||
statictext = None,
|
||||
) -> None:
|
||||
self.env = jijna_env
|
||||
self.target = target_path
|
||||
self.rendervars = static_test_load() if statictext is None else statictext
|
||||
self.rendervars["userinfo"] = userinfo
|
||||
self.rendervars["roominfo"] = roominfo
|
||||
|
||||
def render(self):
|
||||
url_for('static', filename="styles.css")
|
||||
@@ -44,6 +38,32 @@ class LandingPage(BasePage):
|
||||
target_path="landing.html.jinja",
|
||||
statictext=None,
|
||||
) -> None:
|
||||
super().__init__(jinja_env, target_path, statictext)
|
||||
self.rendervars["userinfo"] = userinfo
|
||||
self.rendervars["roominfo"] = roominfo
|
||||
super().__init__(jinja_env, userinfo, roominfo, target_path, statictext)
|
||||
|
||||
class LoginPage(BasePage):
|
||||
def __init__(
|
||||
self,
|
||||
jinja_env,
|
||||
userinfo,
|
||||
roominfo,
|
||||
target_path="login.html.jinja",
|
||||
statictext=None,
|
||||
) -> None:
|
||||
super().__init__(jinja_env, userinfo, roominfo, target_path, statictext)
|
||||
|
||||
class RoomPage(BasePage):
|
||||
def __init__(
|
||||
self,
|
||||
jinja_env,
|
||||
userinfo,
|
||||
roominfo,
|
||||
current_room,
|
||||
sensorinfolist,
|
||||
fig,
|
||||
target_path="room.html.jinja",
|
||||
statictext=None,
|
||||
) -> None:
|
||||
super().__init__(jinja_env, userinfo, roominfo, target_path, statictext)
|
||||
self.rendervars["current_room"] = current_room
|
||||
self.rendervars["sensorinfolist"] = sensorinfolist
|
||||
self.rendervars["fig"] = fig
|
||||
Reference in New Issue
Block a user