# modules/administrator/admin_user_inter.py
import tkinter as tk
from tkinter import ttk, messagebox
class AdminUserInter(tk.Toplevel):
def __init__(self, parent):
"""
Окно управления пользователями (Уровень 2).
:param parent: Главное окно приложения (MainInterface)
"""
super().__init__(parent)
self.parent = parent
# --- Настройки окна ---
self.title("Пользователи")
self.geometry("465x365")
self.resizable(False, False) # Фиксированный размер, как в исходнике
# Делаем окно модальным относительно родителя
self.transient(parent)
self.grab_set()
# Центрируем строго по центру главного окна
self.update_idletasks() # Обновляем размеры окна для расчетов
p_x = parent.winfo_rootx()
p_y = parent.winfo_rooty()
p_w = parent.winfo_width()
p_h = parent.winfo_height()
win_w = 465
win_h = 365
x = p_x + (p_w - win_w) // 2
y = p_y + (p_h - win_h) // 2
self.geometry(f"+{x}+{y}")
# --- Основной контейнер ---
container = ttk.Frame(self, padding="20")
container.pack(expand=True, fill="both")
# --- Левая панель с кнопками действий ---
left_panel = ttk.Frame(container)
left_panel.pack(side="left", fill="y", padx=(0, 10))
actions = [
("Добавить пользователя", self.action_add),
("Сменить пользователя", self.action_change),
("Удалить пользователя", self.action_remove)
]
for text, cmd in actions:
ttk.Button(left_panel, text=text, command=cmd).pack(fill="x", pady=5)
# --- Правая панель с таблицей ---
right_panel = ttk.Frame(container)
right_panel.pack(side="right", fill="both", expand=True)
columns = ("ID", "Логин", "Роль")
self.users_tree = ttk.Treeview(right_panel, columns=columns, show="headings")
for col in columns:
self.users_tree.heading(col, text=col)
self.users_tree.column(col, anchor="center", width=100)
self.users_tree.pack(fill="both", expand=True)
# Загрузка статичных данных вместо битого функционала БД
self.load_stub_data()
def load_stub_data(self):
"""Заполняет таблицу тестовыми данными."""
test_rows = [
("1", "admin", "Администратор"),
("2", "expert_ivan", "Эксперт"),
("3", "user_demo", "Пользователь"),
("4", "guest_reader", "Пользователь")
]
for row in test_rows:
self.users_tree.insert("", "end", values=row)
# --- Заглушки для кнопок (функционал вырезан) ---
def action_add(self):
messagebox.showinfo("Инфо", "Функционал добавления временно отключен.")
def action_change(self):
messagebox.showinfo("Инфо", "Функционал смены пользователя временно отключен.")
def action_remove(self):
messagebox.showinfo("Инфо", "Функционал удаления временно отключен.")