69 lines
2.0 KiB
Python
69 lines
2.0 KiB
Python
from flask import url_for
|
|
from flask_login import current_user
|
|
|
|
import tomllib
|
|
|
|
def static_test_load():
|
|
with open("static_text.toml", "rb") as f:
|
|
return tomllib.load(f)
|
|
|
|
# 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")
|
|
url_for('static', filename="scripts.css")
|
|
template = self.env.get_template(self.target)
|
|
return template.render(self.rendervars)
|
|
|
|
class LandingPage(BasePage):
|
|
def __init__(
|
|
self,
|
|
jinja_env,
|
|
userinfo,
|
|
roominfo,
|
|
target_path="landing.html.jinja",
|
|
statictext=None,
|
|
) -> None:
|
|
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 |