Repository detail page when approved

This commit is contained in:
2026-04-28 23:49:01 +02:00
parent 64f75e5622
commit 0645e17a96
3 changed files with 27 additions and 1 deletions

View File

@@ -2,6 +2,7 @@ from __future__ import annotations
from dataclasses import asdict
from html import escape
from urllib.parse import quote_plus
from fastapi import APIRouter, Depends, Form, HTTPException, Query
from fastapi.responses import HTMLResponse, PlainTextResponse, RedirectResponse
@@ -527,6 +528,7 @@ def repository_detail(
facts_count=None,
base_href=f"/ui/repos/{repository_id}/elements?scope=approved",
)}
{render_approved_registry_actions(repository_id, asdict(ability_map))}
<h2>Latest Candidate Graph</h2>
{render_latest_candidate_counts(repository_id, latest_candidate, service)}
{render_ability_map(asdict(ability_map), repository_id)}
@@ -1768,6 +1770,24 @@ def render_count_pills(
return "".join(items)
def render_approved_registry_actions(repository_id: int, ability_map: dict) -> str:
abilities = ability_map.get("abilities", [])
if not abilities:
return ""
search_query = abilities[0]["name"]
return f"""
<div class="notice" style="margin-top:12px">
<h3>Use Approved Registry</h3>
<div class="actions">
<a class="button secondary" href="/ui/search?q={quote_plus(search_query)}">Search Profile</a>
<a class="button secondary" href="/ui/discovery">Discovery</a>
<a class="button secondary" href="/ui/repos/{repository_id}/export">Export</a>
<a class="button secondary" href="/ui/repos/{repository_id}/elements?scope=approved&type=abilities">Approved Elements</a>
</div>
</div>
"""
def graph_element_rows(graph: dict, item_type: str) -> list[dict]:
rows: list[dict] = []
for ability in graph.get("abilities", []):