Files
ihrm/report/sidebar.py
2025-05-20 14:14:53 +05:30

120 lines
3.6 KiB
Python

from django.apps import apps
from django.urls import reverse_lazy
from django.utils.translation import gettext_lazy as trans
MENU = trans("Reports")
IMG_SRC = "images/ui/report.svg"
ACCESSIBILITY = "report.sidebar.menu_accessibility"
SUBMENUS = []
# Dynamically adding submenu if the app is installed
if apps.is_installed("recruitment"):
SUBMENUS.append(
{
"menu": "Recruitment",
"redirect": reverse_lazy("recruitment-report"),
"accessibility": "report.sidebar.recruitment_accessibility",
}
)
if apps.is_installed("employee"):
SUBMENUS.append(
{
"menu": "Employee",
"redirect": reverse_lazy("employee-report"),
"accessibility": "report.sidebar.employee_accessibility",
}
)
if apps.is_installed("attendance"):
SUBMENUS.append(
{
"menu": "Attendance",
"redirect": reverse_lazy("attendance-report"),
"accessibility": "report.sidebar.attendance_accessibility",
}
)
if apps.is_installed("leave"):
SUBMENUS.append(
{
"menu": "Leave",
"redirect": reverse_lazy("leave-report"),
"accessibility": "report.sidebar.leave_accessibility",
}
)
if apps.is_installed("payroll"):
SUBMENUS.append(
{
"menu": "Payroll",
"redirect": reverse_lazy("payroll-report"),
"accessibility": "report.sidebar.payroll_accessibility",
}
)
if apps.is_installed("asset"):
SUBMENUS.append(
{
"menu": "Asset",
"redirect": reverse_lazy("asset-report"),
"accessibility": "report.sidebar.asset_accessibility",
}
)
if apps.is_installed("pms"):
SUBMENUS.append(
{
"menu": "Performance",
"redirect": reverse_lazy("pms-report"),
"accessibility": "report.sidebar.pms_accessibility",
}
)
def menu_accessibility(request, submenu, user_perms, *args, **kwargs):
return (
request.user.is_superuser
or request.user.has_perm("recruitment.view_recruitment")
or request.user.has_perm("employee.view_employee")
or request.user.has_perm("pms.view_objective")
or request.user.has_perm("attendance.view_attendance")
or request.user.has_perm("leave.view_leaverequest")
or request.user.has_perm("payroll.view_payslip")
or request.user.has_perm("asset.view_asset")
)
def recruitment_accessibility(request, submenu, user_perms, *args, **kwargs):
return request.user.is_superuser or request.user.has_perm(
"recruitment.view_recruitment"
)
def employee_accessibility(request, submenu, user_perms, *args, **kwargs):
return request.user.is_superuser or request.user.has_perm("employee.view_employee")
def attendance_accessibility(request, submenu, user_perms, *args, **kwargs):
return request.user.is_superuser or request.user.has_perm(
"attendance.view_attendance"
)
def leave_accessibility(request, submenu, user_perms, *args, **kwargs):
return request.user.is_superuser or request.user.has_perm("leave.view_leaverequest")
def payroll_accessibility(request, submenu, user_perms, *args, **kwargs):
return request.user.is_superuser or request.user.has_perm("payroll.view_payslip")
def asset_accessibility(request, submenu, user_perms, *args, **kwargs):
return request.user.is_superuser or request.user.has_perm("asset.view_asset")
def pms_accessibility(request, submenu, user_perms, *args, **kwargs):
return request.user.is_superuser or request.user.has_perm("pms.view_objective")