diff --git a/app/modules/partner_dashboard/service.py b/app/modules/partner_dashboard/service.py index 7dcf50f..f3d973a 100644 --- a/app/modules/partner_dashboard/service.py +++ b/app/modules/partner_dashboard/service.py @@ -258,10 +258,23 @@ def _load_clients(db: Session, tenant_id: int | None, branch_id: int | None, cur def _staff_rows(db: Session, tenant_id: int | None, branch_id: int | None, tasks: list[ClientServiceTaskInstance]) -> list[dict[str, Any]]: if not tenant_id: return [] - stmt = select(User).where(User.tenant_id == tenant_id, User.is_active.is_(True)) + stmt = ( + select(User) + .join(UserRole, UserRole.user_id == User.id) + .join(Role, Role.id == UserRole.role_id) + .where( + User.tenant_id == tenant_id, + User.is_active.is_(True), + Role.is_active.is_(True), + Role.name.in_(("Staff", "Branch Manager")), + ) + .distinct() + ) if branch_id is not None: stmt = stmt.where(User.branch_id == branch_id) - users = db.execute(stmt.order_by(User.full_name.asc(), User.email.asc()).limit(100)).scalars().all() + users = db.execute( + stmt.order_by(User.full_name.asc(), User.email.asc()).limit(100) + ).scalars().all() by_user: dict[int, dict[str, int]] = {} for task in tasks: uid = getattr(task, "assigned_to_user_id", None) diff --git a/app/modules/partner_dashboard/templates/partner_dashboard/partials/staff.html b/app/modules/partner_dashboard/templates/partner_dashboard/partials/staff.html index 5ff04d3..b45adf9 100644 --- a/app/modules/partner_dashboard/templates/partner_dashboard/partials/staff.html +++ b/app/modules/partner_dashboard/templates/partner_dashboard/partials/staff.html @@ -1,6 +1,6 @@
Workload is calculated from current branch task assignments.
-| Staff | Active | Overdue | Client Pending | Review | Load |
|---|---|---|---|---|---|
{{ s.name }} {{ s.designation or s.email }} | {{ s.active }} | {{ s.overdue }} | {{ s.client_pending }} | {{ s.review }} | {{ s.load_status }} |
| No branch users found. | |||||
| Staff / Manager | Active | Overdue | Client Pending | Review | Load |
|---|---|---|---|---|---|
{{ s.name }} {{ s.designation or s.email }} | {{ s.active }} | {{ s.overdue }} | {{ s.client_pending }} | {{ s.review }} | {{ s.load_status }} |
| No active Staff or Branch Manager users found for this branch. | |||||