1from __future__ import annotations
2
3from plain.admin.views import (
4 AdminModelDetailView,
5 AdminModelListView,
6 AdminViewset,
7 register_viewset,
8)
9from plain.cache.models import CachedItem
10from plain.postgres import QuerySet
11
12
13@register_viewset
14class CachedItemViewset(AdminViewset):
15 class ListView(AdminModelListView):
16 nav_section = "Cache"
17 nav_icon = "database"
18 model = CachedItem
19 title = "Cached items"
20 description = "Database cache entries with expiration times."
21 fields = [
22 "key",
23 "created_at",
24 "expires_at",
25 "updated_at",
26 ]
27 queryset_order = ["-id"]
28
29 def get_initial_queryset(self) -> QuerySet[CachedItem]:
30 return (
31 super()
32 .get_initial_queryset()
33 .only("key", "created_at", "expires_at", "updated_at")
34 )
35
36 class DetailView(AdminModelDetailView):
37 model = CachedItem
38 title = "Cached item"