from PyQt6 import uic from PyQt6.QtWidgets import QMainWindow from employee_card_widget import EmployeeCardWidget from data.connect import connect, User, Department from structure_widget import DepartmentGraph class MainWindow(QMainWindow): def __init__(self): super().__init__() uic.loadUi('ui/main.ui', self) self.department_employees = [] self.structer_company_widget = DepartmentGraph(self) self.gridLayout_2.addWidget(self.structer_company_widget) def select_department(self, department_id): self.department_employees = [] self.search_employees(department_id) for i in range(self.verticalLayout.count()): self.verticalLayout.itemAt(i).widget().close() for employee in self.department_employees: employee_card = EmployeeCardWidget(employee) self.verticalLayout.addWidget(employee_card) def search_employees(self, department_id): with connect() as session: employees = session.query(User).filter(User.department_id == department_id).all() self.department_employees += employees child_departments = session.query(Department).filter(Department.parent_id == department_id).all() for department in child_departments: self.search_employees(department.id)