120 lines
3.6 KiB
Python
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")
|