Skip to content

Commit e208889

Browse files
feat(admin,templates): enhance admin interface with dashboard, logs, settings and improved user/group management
1 parent 2c61752 commit e208889

File tree

21 files changed

+1715
-1322
lines changed

21 files changed

+1715
-1322
lines changed

ADMIN_TEMPLATES_README.md

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
# Django-подобные шаблоны админки для Raystack
2+
3+
## Обзор изменений
4+
5+
Я переработал шаблоны админки в `src/raystack/contrib/templates/admin/`, сделав их более Django-подобными и функциональными. Убрал лишние страницы и добавил необходимые для полноценной админки.
6+
7+
## Новые страницы
8+
9+
### 1. Dashboard (`dashboard.html`)
10+
- **Статистические карточки**: общее количество пользователей, групп, онлайн пользователей, статус системы
11+
- **Последняя активность**: таблица с действиями пользователей за последние 7 дней
12+
- **Быстрые действия**: кнопки для создания пользователей, групп, просмотра логов и настроек
13+
- **Информация о системе**: версия, время работы, использование памяти и CPU
14+
15+
### 2. System Logs (`logs.html`)
16+
- **Таблица логов**: с фильтрацией по уровню (DEBUG, INFO, WARNING, ERROR, CRITICAL)
17+
- **Статистика логов**: карточки с количеством логов каждого уровня
18+
- **Функции**: обновление, очистка логов, фильтрация
19+
- **Детали**: время, уровень, модуль, сообщение, пользователь, IP-адрес
20+
21+
### 3. System Settings (`settings.html`)
22+
- **Общие настройки**: название сайта, описание, email администратора, часовой пояс
23+
- **Безопасность**: таймаут сессии, политика паролей, количество попыток входа
24+
- **Email настройки**: SMTP конфигурация
25+
- **Настройки логирования**: уровень логов, путь к файлу, размер, хранение
26+
- **Настройки БД**: пул соединений, настройки резервного копирования
27+
28+
### 4. User Details (`user_view.html`)
29+
- **Профиль пользователя**: аватар, личная информация, данные аккаунта
30+
- **Разрешения**: список разрешений из группы пользователя
31+
- **Последняя активность**: таблица действий пользователя
32+
33+
### 5. Group Details (`group_view.html`)
34+
- **Информация о группе**: название, описание, статистика
35+
- **Разрешения**: список разрешений группы
36+
- **Участники группы**: таблица всех пользователей в группе
37+
38+
## Улучшенные страницы
39+
40+
### Users Management (`users.html`)
41+
- **Поиск**: поле поиска по пользователям
42+
- **Улучшенные действия**: иконки для редактирования, просмотра, удаления
43+
- **Лучший дизайн**: более информативные заголовки и описания
44+
45+
### Groups Management (`groups.html`)
46+
- **Поиск**: поле поиска по группам
47+
- **Улучшенные действия**: иконки для редактирования, просмотра, удаления
48+
- **Лучший дизайн**: более информативные заголовки и описания
49+
50+
### User Forms (`user_create.html`, `user_edit.html`)
51+
- **Расширенные поля**: имя, фамилия, username, пароль, телефон
52+
- **Валидация**: обязательные поля отмечены звездочкой
53+
- **Группировка**: логическое разделение полей
54+
- **Дополнительные опции**: активность аккаунта, смена пароля
55+
56+
### Group Forms (`group_create.html`, `group_edit.html`)
57+
- **Разрешения**: чекбоксы для различных разрешений
58+
- **Описание**: текстовое поле для описания группы
59+
- **Статус**: активность группы
60+
61+
## Удаленные страницы
62+
63+
Удалены лишние страницы, не относящиеся к админке:
64+
- `pages/billing.html` - страница биллинга
65+
- `pages/profile.html` - профиль пользователя
66+
- `pages/tables.html` - общие таблицы
67+
68+
## Обновленная навигация
69+
70+
### Sidebar (`includes/sidebar.html`)
71+
- **Убраны**: Tables, Billing, Profile
72+
- **Добавлены**: System Logs, Settings
73+
- **Улучшены**: иконки (FontAwesome вместо SVG), правильные ссылки
74+
- **Структура**: Dashboard, System Logs, Administration (Users, Groups, Settings)
75+
76+
## Особенности дизайна
77+
78+
### Django-подобный стиль
79+
- **Карточки статистики**: как в Django admin
80+
- **Таблицы с действиями**: стандартный формат Django
81+
- **Формы**: группировка полей, валидация, подсказки
82+
- **Навигация**: четкая структура и иерархия
83+
84+
### Современный UI
85+
- **Bootstrap 5**: современные компоненты
86+
- **FontAwesome иконки**: вместо сложных SVG
87+
- **Адаптивный дизайн**: работает на всех устройствах
88+
- **Цветовая схема**: консистентная с основным дизайном
89+
90+
### Функциональность
91+
- **Поиск**: в реальном времени
92+
- **Фильтрация**: по различным критериям
93+
- **Действия**: подтверждение удаления, быстрые ссылки
94+
- **Статистика**: визуализация данных
95+
96+
## Структура файлов
97+
98+
```
99+
src/raystack/contrib/templates/admin/
100+
├── layouts/
101+
│ └── base.html (без изменений)
102+
├── includes/
103+
│ ├── sidebar.html (обновлен)
104+
│ ├── navigation.html (без изменений)
105+
│ └── ... (остальные без изменений)
106+
├── dashboard.html (новый)
107+
├── logs.html (новый)
108+
├── settings.html (новый)
109+
├── users.html (улучшен)
110+
├── groups.html (улучшен)
111+
├── user_create.html (улучшен)
112+
├── user_edit.html (улучшен)
113+
├── user_view.html (новый)
114+
├── group_create.html (улучшен)
115+
├── group_edit.html (улучшен)
116+
├── group_view.html (новый)
117+
└── ... (остальные без изменений)
118+
```
119+
120+
## Использование
121+
122+
Все шаблоны готовы к использованию и ожидают соответствующие переменные контекста:
123+
124+
- `stats` - статистика для dashboard
125+
- `recent_activities` - последняя активность
126+
- `system_info` - информация о системе
127+
- `logs` - логи системы
128+
- `settings` - настройки системы
129+
- `users` - список пользователей
130+
- `groups` - список групп
131+
- `user` - данные пользователя
132+
- `group` - данные группы
133+
134+
Шаблоны используют стандартные Django/Jinja2 фильтры и функции для форматирования данных.

example/apps/home/views.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from raystack.shortcuts import render_template
2+
from fastapi import Request
23

34
# Create your views here.
45

5-
def home_view(request):
6+
async def home_view(request: Request):
67
return render_template(request, "home/home.html", context={"framework": "Raystack"})

example/templates/home/home.html

Lines changed: 57 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,57 @@
1-
{% extends "base.html" %}
2-
3-
{% block content %}
4-
<h1>Welcome to {{ framework }}!</h1>
5-
<p>This is a simple home page.</p>
6-
{% endblock %}
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<title>Welcome to {{ framework }}</title>
7+
<style>
8+
body {
9+
font-family: Arial, sans-serif;
10+
max-width: 800px;
11+
margin: 0 auto;
12+
padding: 20px;
13+
background-color: #f5f5f5;
14+
}
15+
.container {
16+
background: white;
17+
padding: 30px;
18+
border-radius: 8px;
19+
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
20+
}
21+
h1 {
22+
color: #333;
23+
text-align: center;
24+
}
25+
.nav-links {
26+
text-align: center;
27+
margin: 20px 0;
28+
}
29+
.nav-links a {
30+
display: inline-block;
31+
margin: 0 10px;
32+
padding: 10px 20px;
33+
background-color: #007bff;
34+
color: white;
35+
text-decoration: none;
36+
border-radius: 5px;
37+
}
38+
.nav-links a:hover {
39+
background-color: #0056b3;
40+
}
41+
</style>
42+
</head>
43+
<body>
44+
<div class="container">
45+
<h1>Welcome to {{ framework }}!</h1>
46+
<p>This is a simple home page for the Raystack framework.</p>
47+
48+
<div class="nav-links">
49+
<a href="/admin/">Admin Panel</a>
50+
<a href="/auth/accounts/login">Login</a>
51+
<a href="/auth/accounts/register">Register</a>
52+
</div>
53+
54+
<p>Raystack is a modern web framework built with FastAPI and designed for rapid development.</p>
55+
</div>
56+
</body>
57+
</html>

0 commit comments

Comments
 (0)