2024-05-09 14:28:24 +05:30
|
|
|
"""
|
|
|
|
|
recruitment/sidebar.py
|
|
|
|
|
|
|
|
|
|
To set Horilla sidebar for onboarding
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
from django.contrib.auth.context_processors import PermWrapper
|
2024-05-09 15:01:06 +05:30
|
|
|
from django.urls import reverse
|
2024-05-09 14:28:24 +05:30
|
|
|
from django.utils.translation import gettext_lazy as trans
|
|
|
|
|
|
2024-05-09 15:01:06 +05:30
|
|
|
from recruitment.models import InterviewSchedule
|
|
|
|
|
from recruitment.templatetags.recruitmentfilters import is_stagemanager
|
2024-05-09 14:28:24 +05:30
|
|
|
|
|
|
|
|
MENU = trans("Recruitment")
|
|
|
|
|
ACCESSIBILITY = "recruitment.sidebar.menu_accessibilty"
|
|
|
|
|
IMG_SRC = "images/ui/recruitment.svg"
|
|
|
|
|
|
|
|
|
|
SUBMENUS = [
|
|
|
|
|
{
|
|
|
|
|
"menu": trans("Dashboard"),
|
|
|
|
|
"redirect": reverse("recruitment-dashboard"),
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"menu": trans("Recruitment Pipeline"),
|
|
|
|
|
"redirect": reverse("pipeline") + "?closed=false",
|
|
|
|
|
"accessibility": "recruitment.sidebar.pipeline_accessibility",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"menu": trans("Recruitment Survey"),
|
|
|
|
|
"redirect": reverse("recruitment-survey-question-template-view"),
|
|
|
|
|
"accessibility": "recruitment.sidebar.survey_accessibility",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"menu": trans("Candidates"),
|
|
|
|
|
"redirect": reverse("candidates-view"),
|
|
|
|
|
"accessibility": "recruitment.sidebar.candidates_accessibility",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"menu": trans("Interview"),
|
|
|
|
|
"redirect": reverse("interview-view"),
|
|
|
|
|
"accessibility": "recruitment.sidebar.interview_accessibility",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"menu": trans("Recruitment"),
|
|
|
|
|
"redirect": reverse("recruitment-view"),
|
|
|
|
|
"accessibility": "recruitment.sidebar.recruitment_accessibility",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"menu": trans("Open Jobs"),
|
|
|
|
|
"redirect": reverse("open-recruitments"),
|
|
|
|
|
"accessibility": "recruitment.sidebar.recruitment_accessibility",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"menu": trans("Stages"),
|
|
|
|
|
"redirect": reverse("rec-stage-view"),
|
|
|
|
|
"accessibility": "recruitment.sidebar.stage_accessibility",
|
|
|
|
|
},
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def menu_accessibilty(
|
|
|
|
|
request, _menu: str = "", user_perms: PermWrapper = [], *args, **kwargs
|
|
|
|
|
) -> bool:
|
|
|
|
|
return is_stagemanager(request.user) or "recruitment" in user_perms
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def pipeline_accessibility(
|
|
|
|
|
request, _submenu: dict = {}, user_perms: PermWrapper = [], *args, **kwargs
|
|
|
|
|
) -> bool:
|
|
|
|
|
return is_stagemanager(request.user) or request.user.has_perm(
|
|
|
|
|
"recruitment.view_recruitment"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def candidates_accessibility(
|
|
|
|
|
request, _submenu: dict = {}, user_perms: PermWrapper = [], *args, **kwargs
|
|
|
|
|
) -> bool:
|
|
|
|
|
return request.user.has_perm("recruitment.view_candidate")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def survey_accessibility(
|
|
|
|
|
request, _submenu: dict = {}, user_perms: PermWrapper = [], *args, **kwargs
|
|
|
|
|
) -> bool:
|
|
|
|
|
return request.user.has_perm("recruitment.view_recruitmentsurvey")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def recruitment_accessibility(
|
|
|
|
|
request, _submenu: dict = {}, user_perms: PermWrapper = [], *args, **kwargs
|
|
|
|
|
) -> bool:
|
|
|
|
|
return request.user.has_perm("recruitment.view_recruitment")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def interview_accessibility(
|
|
|
|
|
request, _submenu: dict = {}, user_perms: PermWrapper = [], *args, **kwargs
|
|
|
|
|
) -> bool:
|
|
|
|
|
interviews = InterviewSchedule.objects.all()
|
|
|
|
|
interviewers = []
|
|
|
|
|
for interview in interviews:
|
|
|
|
|
for emp in interview.employee_id.all():
|
|
|
|
|
interviewers.append(emp)
|
|
|
|
|
if request.user.employee_get in interviewers:
|
|
|
|
|
view_interview = True
|
|
|
|
|
else:
|
|
|
|
|
view_interview = False
|
|
|
|
|
|
|
|
|
|
return request.user.has_perm("recruitment.view_interviewschedule") or view_interview
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def stage_accessibility(
|
|
|
|
|
request, _submenu: dict = {}, user_perms: PermWrapper = [], *args, **kwargs
|
|
|
|
|
) -> bool:
|
|
|
|
|
return request.user.has_perm("recruitment.view_stage")
|