Files
ihrm/report/sidebar.py

91 lines
3.3 KiB
Python

from django.utils.translation import gettext_lazy as trans
from django.urls import reverse_lazy
from django.apps import apps
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")