(parent, title)
| 585 | |
| 586 | |
| 587 | def show_employee_list_page(parent, title): |
| 588 | page, main_layout = create_page_with_header(parent, title) |
| 589 | |
| 590 | content_frame = create_styled_frame( |
| 591 | page, style="background-color: #f9f9f9; border-radius: 10px; padding: 15px;" |
| 592 | ) |
| 593 | content_frame.setSizePolicy( |
| 594 | QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding |
| 595 | ) |
| 596 | content_layout = QtWidgets.QVBoxLayout(content_frame) |
| 597 | |
| 598 | # Table frame |
| 599 | table_frame = create_styled_frame( |
| 600 | content_frame, |
| 601 | style="background-color: #ffffff; border-radius: 8px; padding: 10px;", |
| 602 | ) |
| 603 | table_layout = QtWidgets.QVBoxLayout(table_frame) |
| 604 | table_layout.setSpacing(0) |
| 605 | |
| 606 | # Header row |
| 607 | header_frame = create_styled_frame( |
| 608 | table_frame, |
| 609 | style="background-color: #f5f5f5; ; border-radius: 8px 8px 0 0; padding: 10px;", |
| 610 | ) |
| 611 | header_layout = QtWidgets.QHBoxLayout(header_frame) |
| 612 | header_layout.setContentsMargins(10, 5, 10, 5) |
| 613 | headers = ["Name", "Position", "Salary"] |
| 614 | for i, header in enumerate(headers): |
| 615 | header_label = QtWidgets.QLabel(header, header_frame) |
| 616 | header_label.setStyleSheet( |
| 617 | "font-weight: bold; font-size: 14px; color: #333333; padding: 0px; margin: 0px;" |
| 618 | ) |
| 619 | if i == 2: # Right-align salary header |
| 620 | header_label.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) |
| 621 | else: |
| 622 | header_label.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) |
| 623 | header_layout.addWidget( |
| 624 | header_label, 1 if i < 2 else 0 |
| 625 | ) # Stretch name and position, not salary |
| 626 | table_layout.addWidget(header_frame) |
| 627 | |
| 628 | # Employee rows |
| 629 | employees = backend.show_employees_for_update() |
| 630 | for row, employee in enumerate(employees): |
| 631 | row_frame = create_styled_frame( |
| 632 | table_frame, |
| 633 | style=f"background-color: {'#fafafa' if row % 2 else '#ffffff'}; padding: 8px;", |
| 634 | ) |
| 635 | row_layout = QtWidgets.QHBoxLayout(row_frame) |
| 636 | row_layout.setContentsMargins(10, 5, 10, 5) |
| 637 | |
| 638 | # Name |
| 639 | name_label = QtWidgets.QLabel(employee[0], row_frame) |
| 640 | name_label.setStyleSheet( |
| 641 | "font-size: 14px; color: #333333; padding: 0px; margin: 0px;" |
| 642 | ) |
| 643 | name_label.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) |
| 644 | row_layout.addWidget(name_label, 1) |
no test coverage detected