")
html_lines.extend(["", ""])
+ actionable_groups = 0
+ show_ready_default = False
+ show_no_ops_default = False
+ if plan.groups:
+ for group in plan.groups:
+ actions = _planned_actions(group)
+ visible_losers = list(group.losers)
+ hidden_losers: set[str] = set()
+ if not show_artwork_variants:
+ hidden_losers = {
+ loser for loser in group.losers if _is_artwork_variant(group, loser, art_threshold)
+ }
+ if hidden_losers:
+ visible_losers = [loser for loser in group.losers if loser not in hidden_losers]
+ actions = [
+ act
+ for act in actions
+ if not (act["step"] == "loser_cleanup" and act["target"] in hidden_losers)
+ ]
+ if not show_artwork_variants and not actions and not visible_losers:
+ continue
+ if not _is_noop_group(actions):
+ actionable_groups += 1
+ if actionable_groups == 0:
+ show_ready_default = True
+ show_no_ops_default = True
+
html_lines.extend(
[
"",
@@ -4071,9 +4098,11 @@ def _format_setting(value: object) -> str:
"",
"",
"",
+ f" "
+ "Show ready groups",
"",
+ f" "
+ "Show no-op groups",
"Hides groups with no planned operations when off.",
"",
"