base: group binary packages by repo
since it's not obvious which package name prefix belongs to which repo/env
This commit is contained in:
parent
4102481fc1
commit
f0d1065951
@ -112,13 +112,20 @@
|
||||
<dt class="col-sm-3 text-sm-end"></dt>
|
||||
<dd class="col-sm-9"><hr></dd>
|
||||
|
||||
<dt class="col-sm-3 text-sm-end">Binary Packages:</dt>
|
||||
<dt class="col-sm-3 text-sm-end mb-2">Binary Packages:</dt>
|
||||
<dd class="col-sm-9">
|
||||
<ul class="list-unstyled">
|
||||
{% for k, p in s.packages|dictsort(false) %}
|
||||
<li><a href="{{ package_url(p) }}">{{ p.name }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<dl class="row">
|
||||
{% for repo, packages in s.packages|group_by_repo|dictsort(false) %}
|
||||
<dt>{{ repo }}</dt>
|
||||
<dd>
|
||||
<ul class="list-unstyled mb-0">
|
||||
{% for p in packages %}
|
||||
<li><a href="{{ package_url(p) }}">{{ p.name }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</dd>
|
||||
{% endfor %}
|
||||
</dl>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
10
app/web.py
10
app/web.py
@ -21,7 +21,7 @@ from fastapi_etag import Etag
|
||||
from fastapi.staticfiles import StaticFiles
|
||||
from fastapi_etag import add_exception_handler as add_etag_exception_handler
|
||||
|
||||
from .appstate import state, get_repositories, Package, Source, DepType, SrcInfoPackage, get_base_group_name, Vulnerability, Severity
|
||||
from .appstate import state, get_repositories, Package, Source, DepType, SrcInfoPackage, get_base_group_name, Vulnerability, Severity, PackageKey
|
||||
from .appconfig import DEFAULT_REPO
|
||||
from .utils import extract_upstream_version, version_is_newer_than
|
||||
|
||||
@ -197,6 +197,14 @@ def filter_filesize(d: int) -> str:
|
||||
return "%.2f MB" % (d / (1024 ** 2))
|
||||
|
||||
|
||||
@template_filter("group_by_repo")
|
||||
def group_by_repo(packages: dict[PackageKey, Package]) -> dict[str, list[Package]]:
|
||||
res: dict[str, list[Package]] = {}
|
||||
for _, p in sorted(packages.items()):
|
||||
res.setdefault(p.repo, []).append(p)
|
||||
return res
|
||||
|
||||
|
||||
@router.get('/robots.txt')
|
||||
async def robots() -> Response:
|
||||
data = """\
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user