Display min, max and last value in description

This commit is contained in:
Peter J. Holzer 2022-12-31 17:55:25 +01:00 committed by Peter J. Holzer
parent 4b6e6c6eed
commit 4380210c34
2 changed files with 12 additions and 0 deletions

View File

@ -67,6 +67,7 @@ class Widget:
self.type = d["type"] self.type = d["type"]
self.stops = d["stops"] self.stops = d["stops"]
self.yscale = d.get("yscale", "linear") self.yscale = d.get("yscale", "linear")
self.extra = {}
log.debug("data = %s", d["data"]) log.debug("data = %s", d["data"])
self.lts = LTS(id=d["data"][0]) # by default we handle only one data source self.lts = LTS(id=d["data"][0]) # by default we handle only one data source
pass pass
@ -137,6 +138,11 @@ class Widget:
s += render_template_string( s += render_template_string(
"<tr><th>{{d}}:</th><td>{{v}}</td></tr>", "<tr><th>{{d}}:</th><td>{{v}}</td></tr>",
d=d, v=v) d=d, v=v)
for d, v in self.extra.items():
if v:
s += render_template_string(
"<tr class='extra'><th>{{d}}:</th><td>{{v}}</td></tr>",
d=d, v=v)
s += "</table>" s += "</table>"
return Markup(s) return Markup(s)
@ -362,6 +368,7 @@ class TimeSeries(Widget):
if self.yscale == "log": if self.yscale == "log":
try: try:
min_value = min(d[1] for d in self.lts.data if d[1] > 0) min_value = min(d[1] for d in self.lts.data if d[1] > 0)
self.extra["min"] = "%g" % min_value
except ValueError: except ValueError:
# no non-negative values # no non-negative values
min_value = max_value / 2 min_value = max_value / 2
@ -375,6 +382,8 @@ class TimeSeries(Widget):
# Make sure min_value is less than max_value # Make sure min_value is less than max_value
min_value /= 2 min_value /= 2
log.debug("min_value = %s, max_value = %s", min_value, max_value) log.debug("min_value = %s, max_value = %s", min_value, max_value)
self.extra["max"] = "%g" % max_value
self.extra["last"] = "%g" % data[-1][1]
log.debug("collecting data") log.debug("collecting data")
v_data = [] v_data = []
for i in range(n): for i in range(n):

View File

@ -53,6 +53,9 @@
border: 1px solid #CCC; border: 1px solid #CCC;
padding: 0.5rem; padding: 0.5rem;
} }
.extra {
font-style: italic;
}
</style> </style>
</head> </head>