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