feat: show planner on gui

This commit is contained in:
2026-07-06 22:40:27 +08:00
parent b00676261d
commit 41d9c02331
2 changed files with 45 additions and 2 deletions
+7
View File
@@ -436,6 +436,13 @@ pre.rich-traceback-code {
overflow-wrap: break-word;
}
*[style*="--dashboard-bold--"] {
font-size: 1rem;
font-weight: bold;
color: #7a77bb;
overflow-wrap: break-word;
}
[id^="pywebio-scope-dashboard-row-"] p {
margin-bottom: 0;
}
+38 -2
View File
@@ -339,7 +339,7 @@ def product_stored_row(key, value):
def put_arg_stored(kwargs: T_Output_Kwargs) -> Output:
name: str = kwargs["name"]
kwargs["disabled"] = True
# kwargs["disabled"] = True
values = kwargs.pop("value", {})
value = values.pop("value", "")
@@ -347,22 +347,26 @@ def put_arg_stored(kwargs: T_Output_Kwargs) -> Output:
time_ = values.pop("time", "")
if value != "" and total != "":
# 0 / 100
rows = [put_scope(f"dashboard-value-{name}", [
put_text(value).style("--dashboard-value--"),
put_text(f" / {total}").style("--dashboard-time--"),
])]
elif value != "":
# 100
rows = [put_scope(f"dashboard-value-{name}", [
put_text(value).style("--dashboard-value--")
])]
else:
# Empty
rows = []
# Add other key-value in stored
if values:
rows += [
put_scope(f"dashboard-value-{name}-{key}", product_stored_row(key, value))
for key, value in values.items() if value != ""
]
# Add time
if time_:
rows.append(
put_text(time_).style("--dashboard-time--")
@@ -380,6 +384,37 @@ def put_arg_stored(kwargs: T_Output_Kwargs) -> Output:
)
def put_arg_planner(kwargs: T_Output_Kwargs) -> Output | None:
name: str = kwargs["name"]
values = kwargs.pop("value", {})
try:
progress = values["progress"]
except KeyError:
# Hide items not needed by the planner
return None
value = values.pop('value', 0)
if isinstance(value, dict):
value = tuple(value.values())
total = values.pop('total', 0)
if isinstance(total, dict):
total = tuple(total.values())
row = put_scope(f"arg_stored-stored-value-{name}", [
put_text(f"{progress:.2f}%").style("--dashboard-bold--"),
put_text(f"{value} / {total}").style("--dashboard-time--"),
])
return put_scope(
f"arg_container-planner-{name}",
[
get_title_help(kwargs),
row,
]
)
def put_arg_select(kwargs: T_Output_Kwargs) -> Output:
name: str = kwargs["name"]
value: str = kwargs["value"]
@@ -527,6 +562,7 @@ _widget_type_to_func: Dict[str, Callable] = {
"storage": put_arg_storage,
"state": put_arg_state,
"stored": put_arg_stored,
"planner": put_arg_planner,
}