Add HTML5 object runtime context
This commit is contained in:
@@ -322,6 +322,7 @@ def render_html5_object_context(
|
||||
impact: object | None,
|
||||
access: object | None = None,
|
||||
ui: object | None = None,
|
||||
runtime: Iterable[object] | None = None,
|
||||
) -> str:
|
||||
if schema is None or impact is None:
|
||||
return f"""
|
||||
@@ -341,6 +342,7 @@ def render_html5_object_context(
|
||||
jobs = getattr(impact, "jobs", []) or []
|
||||
grants = getattr(access, "grants", []) if access is not None else []
|
||||
ui_forms = getattr(ui, "forms", []) if ui is not None else []
|
||||
runtime_items = list(runtime or [])
|
||||
return f"""
|
||||
<div class="object-context" data-html5-object-context data-html5-object-name="{escape(str(name))}">
|
||||
<div class="panel-title">Object context</div>
|
||||
@@ -355,12 +357,14 @@ def render_html5_object_context(
|
||||
{_metric("Routines", len(routines))}
|
||||
{_metric("Forms", len(ui_forms) or len(forms))}
|
||||
{_metric("Roles", len(grants) or len(roles))}
|
||||
{_metric("Runtime", len(runtime_items))}
|
||||
</dl>
|
||||
<div class="compact-list">
|
||||
{''.join(_named_node_item("attr", item) for item in attributes[:6]) or '<p class="muted padded">Реквизиты не найдены</p>'}
|
||||
{''.join(_tabular_section_item(item) for item in sections[:4])}
|
||||
{''.join(_ui_form_item(item) for item in ui_forms[:4])}
|
||||
{''.join(_role_access_item(item) for item in grants[:6])}
|
||||
{''.join(_runtime_summary_item(item) for item in runtime_items[:6])}
|
||||
{''.join(_named_node_item("routine", item) for item in routines[:6])}
|
||||
{''.join(_named_node_item("job", item) for item in jobs[:4])}
|
||||
</div>
|
||||
@@ -1423,6 +1427,21 @@ def _ui_form_item(form_semantics: object) -> str:
|
||||
"""
|
||||
|
||||
|
||||
def _runtime_summary_item(item: object) -> str:
|
||||
node = getattr(item, "node", None)
|
||||
name = getattr(node, "qualified_name", None) or getattr(node, "name", "runtime")
|
||||
signal_count = getattr(item, "signal_count", 0)
|
||||
error_count = getattr(item, "error_count", 0)
|
||||
max_duration = getattr(item, "max_duration_ms", None)
|
||||
duration_text = f" · max {max_duration} ms" if max_duration is not None else ""
|
||||
return f"""
|
||||
<article class="object-context-item" data-html5-object-context-item="runtime">
|
||||
<strong>{escape(str(name))}</strong>
|
||||
<small>{escape(str(signal_count))} signals · {escape(str(error_count))} errors{escape(duration_text)}</small>
|
||||
</article>
|
||||
"""
|
||||
|
||||
|
||||
def _authoring_diff_item(line: object) -> str:
|
||||
kind = str(getattr(line, "kind", ""))
|
||||
text = str(getattr(line, "text", ""))
|
||||
|
||||
Reference in New Issue
Block a user