new web ract
This commit is contained in:
@@ -42,15 +42,18 @@ class DashboardView:
|
||||
)
|
||||
|
||||
async def load(self):
|
||||
import asyncio
|
||||
token = self.page.session.get("token")
|
||||
data = await api.admin_list_articles(token, limit=100)
|
||||
if not data:
|
||||
return
|
||||
published_data, draft_data, recent_data = await asyncio.gather(
|
||||
api.admin_list_articles(token, limit=1, status="published"),
|
||||
api.admin_list_articles(token, limit=1, status="draft"),
|
||||
api.admin_list_articles(token, limit=10),
|
||||
)
|
||||
|
||||
items = data.get("items", [])
|
||||
total = data.get("total", 0)
|
||||
published = sum(1 for a in items if a.get("status") == "published")
|
||||
drafts = total - published
|
||||
published = (published_data or {}).get("total", 0)
|
||||
drafts = (draft_data or {}).get("total", 0)
|
||||
total = published + drafts
|
||||
items = (recent_data or {}).get("items", [])
|
||||
|
||||
self._stats_row.controls = [
|
||||
d.stat_card("Всего статей", str(total), ft.icons.ARTICLE, d.PRIMARY),
|
||||
@@ -58,7 +61,7 @@ class DashboardView:
|
||||
d.stat_card("Черновики", str(drafts), ft.icons.EDIT_NOTE, d.WARNING),
|
||||
]
|
||||
|
||||
self._recent.controls = [_recent_item(a, self.page) for a in items[:10]]
|
||||
self._recent.controls = [_recent_item(a, self.page) for a in items]
|
||||
self.page.update()
|
||||
|
||||
|
||||
@@ -118,6 +121,7 @@ def _sidebar(page: ft.Page, active: str = "") -> ft.Container:
|
||||
(ft.icons.ARTICLE, "Статьи", "/admin/articles"),
|
||||
(ft.icons.CATEGORY, "Категории", "/admin/categories"),
|
||||
(ft.icons.PERM_MEDIA, "Медиа", "/admin/media"),
|
||||
(ft.icons.RSS_FEED, "ВКонтакте", "/admin/vk"),
|
||||
]
|
||||
|
||||
def nav_item(icon, label, route):
|
||||
|
||||
Reference in New Issue
Block a user