Загрузка данных


# 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("Инфо", "Функционал удаления временно отключен.")