release: archivebox 0.9.31rc35

This commit is contained in:
Nick Sweeting 2026-05-24 03:48:53 -07:00
parent a18a10c5f3
commit b006c353b8
No known key found for this signature in database
5 changed files with 67 additions and 21 deletions

View File

@ -8,7 +8,8 @@ from django.utils.html import escape, format_html, format_html_join
from django.utils import timezone
from django.utils.safestring import mark_safe
from django.contrib import admin, messages
from django.db.models import Count, Prefetch, Q
from django.db.models import Count, IntegerField, OuterRef, Prefetch, Q, Subquery, Value
from django.db.models.functions import Coalesce
from django_object_actions import action
@ -589,7 +590,10 @@ class CrawlAdmin(ConfigEditorMixin, BaseModelAdmin):
change_actions = ["recrawl"]
def get_queryset(self, request):
"""Keep the changelist query page-local; counts are resolved per displayed row."""
"""Keep joins page-local while computing per-row snapshot counts in the page query."""
snapshot_count = (
Snapshot.objects.filter(crawl_id=OuterRef("pk")).order_by().values("crawl_id").annotate(count=Count("pk")).values("count")
)
return (
super()
.get_queryset(request)
@ -597,6 +601,12 @@ class CrawlAdmin(ConfigEditorMixin, BaseModelAdmin):
"created_by",
Prefetch("schedule", queryset=CrawlSchedule.objects.select_related("template")),
)
.annotate(
num_snapshots_cached=Coalesce(
Subquery(snapshot_count, output_field=IntegerField()),
Value(0),
),
)
)
def get_fieldsets(self, request, obj=None):

View File

@ -27,7 +27,7 @@ class PersonaAdmin(ConfigEditorMixin, BaseModelAdmin):
"Persona",
{
"fields": ("name", "created_by"),
"classes": ("card",),
"classes": ("card", "persona-card-primary"),
},
),
(
@ -54,7 +54,17 @@ class PersonaAdmin(ConfigEditorMixin, BaseModelAdmin):
),
)
change_fieldsets = add_fieldsets + (
change_fieldsets = (
add_fieldsets[0],
(
"Timestamps",
{
"fields": ("id", "created_at"),
"classes": ("card", "persona-card-timestamps"),
},
),
add_fieldsets[1],
add_fieldsets[2],
(
"Artifacts",
{
@ -62,13 +72,6 @@ class PersonaAdmin(ConfigEditorMixin, BaseModelAdmin):
"classes": ("card", "wide"),
},
),
(
"Timestamps",
{
"fields": ("id", "created_at"),
"classes": ("card",),
},
),
)
@admin.display(description="Chrome Profile")

View File

@ -200,22 +200,55 @@
}
}
.persona-plugin-config {
margin: 0 0 24px;
body.model-persona.change-form #content-main form fieldset.persona-card-primary {
flex: 1 1 520px !important;
max-width: calc(66.66% - 10px) !important;
}
body.model-persona.change-form #content-main form fieldset.persona-card-timestamps {
flex: 0 1 300px !important;
min-width: 240px !important;
max-width: 320px !important;
align-self: flex-start;
}
body.model-persona.change-form #content-main form fieldset.persona-card-timestamps > div {
padding: 12px 14px;
}
body.model-persona.change-form #content-main form fieldset.persona-card-timestamps .form-row {
padding: 5px 0;
}
body.model-persona.change-form #content-main form fieldset.persona-card-timestamps .readonly {
font-size: 12px;
line-height: 1.4;
overflow-wrap: anywhere;
}
body.model-persona.change-form #content-main form .persona-plugin-config {
flex: 1 1 100% !important;
min-width: 100% !important;
max-width: 100% !important;
width: 100% !important;
box-sizing: border-box;
margin: 0 0 24px !important;
}
.persona-plugin-config h2 {
margin: 0 0 6px;
color: #004882;
font-size: 18px;
color: #334155 !important;
}
.persona-plugin-config > p {
margin: 0 0 14px;
margin: 12px 16px 0;
color: #64748b;
font-size: 13px;
}
.persona-plugin-config .plugin-config-grid {
padding: 16px;
}
</style>
{% endblock %}

View File

@ -1,6 +1,6 @@
{
"name": "archivebox",
"version": "0.9.31rc34",
"version": "0.9.31rc35",
"repository": "github:ArchiveBox/ArchiveBox",
"license": "MIT",
"dependencies": {

View File

@ -1,6 +1,6 @@
[project]
name = "archivebox"
version = "0.9.31rc34"
version = "0.9.31rc35"
requires-python = ">=3.13"
description = "Self-hosted internet archiving solution."
authors = [{name = "Nick Sweeting", email = "pyproject.toml@archivebox.io"}]
@ -80,8 +80,8 @@ dependencies = [
### Binary/Package Management
"abxbus>=2.5.4", # EventBus API
"abxpkg>=1.10.24", # for: detecting, versioning, and installing binaries via apt/brew/pip/npm
"abx-plugins>=1.10.90", # shared ArchiveBox plugin package with Chrome/Puppeteer dependency wiring
"abx-dl>=1.10.90", # shared ArchiveBox downloader package with blocking install preflight
"abx-plugins>=1.10.91", # shared ArchiveBox plugin package with Chrome/Puppeteer dependency wiring
"abx-dl>=1.10.91", # shared ArchiveBox downloader package with blocking install preflight
### UUID7 backport for Python <3.14
"uuid7>=0.1.0; python_version < '3.14'", # provides the uuid_extensions module on Python 3.13
]