diff --git a/dashboard.py b/dashboard.py index a9d136f..e2aa199 100644 --- a/dashboard.py +++ b/dashboard.py @@ -126,13 +126,24 @@ class Widget: log.debug("definitely fail") return f"hsl(0, 100%, {brightness}%)" + @property + def description_formatted(self): + s = "" + for d, v in self.lts.description.items(): + if v: + s += render_template_string( + "", + d=d, v=v) + s += "
{{d}}:{{v}}
" + return Markup(s) class TimeSeries(Widget): def __init__(self, d): super().__init__(d) pass - def as_html(self): + @property + def graph(self): def t2x(t): x = n - math.log((t_last - t) / (n*dt) + 1) * n / k return x @@ -270,6 +281,9 @@ class TimeSeries(Widget): html += "" return Markup(html) + def as_html(self): + return Markup(render_template("timeseries.html", widget=self)) + class Gauge(Widget): def __init__(self, d): super().__init__(d) @@ -311,13 +325,3 @@ class Gauge(Widget): self.lastvalue_formatted = Markup(f"{value:.2f}{unit}") return Markup(render_template("gauge.html", widget=self)) - @property - def description_formatted(self): - s = "" - for d, v in self.lts.description.items(): - if v: - s += render_template_string( - "", - d=d, v=v) - s += "
{{d}}:{{v}}
" - return Markup(s) diff --git a/templates/dashboard.html b/templates/dashboard.html index 7d7782c..ebc3bc5 100644 --- a/templates/dashboard.html +++ b/templates/dashboard.html @@ -15,6 +15,7 @@ display: flex; flex-wrap: wrap; gap: 2rem; + align-items: end; } .widget { border: 1px solid #CCC; @@ -45,6 +46,13 @@ position: absolute; bottom: 0; } + .timeseries { + display: flex; + gap: 1rem; + align-items: end; + border: 1px solid #CCC; + padding: 0.5rem; + } diff --git a/templates/timeseries.html b/templates/timeseries.html new file mode 100644 index 0000000..ffe44bf --- /dev/null +++ b/templates/timeseries.html @@ -0,0 +1,4 @@ +
+ {{ widget.graph }} + {{ widget.description_formatted }} +