feat: add Отчество field to admin user detail page

- Add middle_name input to the edit form (3-column name grid)
- Save middle_name in the edit handler
- Show role selector for admin role (previously system-only)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
mguschin
2026-05-24 17:21:51 +03:00
parent a597639aa7
commit 1d268a6b58
2 changed files with 7 additions and 2 deletions

View File

@@ -296,6 +296,7 @@ async def admin_edit_user(user_id: int, request: Request, db: Session = Depends(
user.first_name = data["first_name"]
user.last_name = data["last_name"]
user.middle_name = data.get("middle_name") or None
if data.get("email"):
user.email = data["email"]
if data.get("phone"):

View File

@@ -137,7 +137,7 @@
<div class="card">
<div class="card-title" style="margin-bottom:14px;">Редактировать</div>
<form method="post" action="/admin/users/{{ target.id }}/edit">
<div style="display:grid;grid-template-columns:1fr 1fr;gap:12px;">
<div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;">
<div class="form-row">
<label class="form-lbl" for="first_name">Имя</label>
<input class="inp" type="text" id="first_name" name="first_name" value="{{ target.first_name }}" required>
@@ -146,6 +146,10 @@
<label class="form-lbl" for="last_name">Фамилия</label>
<input class="inp" type="text" id="last_name" name="last_name" value="{{ target.last_name }}" required>
</div>
<div class="form-row">
<label class="form-lbl" for="middle_name">Отчество</label>
<input class="inp" type="text" id="middle_name" name="middle_name" value="{{ target.middle_name or '' }}">
</div>
</div>
<div class="form-row">
<label class="form-lbl" for="email">Email</label>
@@ -155,7 +159,7 @@
<label class="form-lbl" for="phone">Телефон</label>
<input class="inp" type="tel" id="phone" name="phone" value="{{ target.phone }}">
</div>
{% if user.role == 'system' %}
{% if user.role in ('system', 'admin') %}
<div class="form-row">
<label class="form-lbl" for="role">Роль</label>
<select class="inp" id="role" name="role">