[UPDT] EMPLOYEE: Updated decorator to access own records
This commit is contained in:
@@ -33,6 +33,7 @@ from django.utils.translation import gettext_lazy as _
|
||||
from attendance.models import Attendance, AttendanceOverTime
|
||||
from notifications.signals import notify
|
||||
from horilla.decorators import (
|
||||
owner_can_enter,
|
||||
permission_required,
|
||||
login_required,
|
||||
hx_request_required,
|
||||
@@ -56,6 +57,8 @@ from base.methods import (
|
||||
filtersubordinatesemployeemodel,
|
||||
get_key_instances,
|
||||
sortby,
|
||||
check_manager,
|
||||
check_owner,
|
||||
)
|
||||
from employee.filters import EmployeeFilter, EmployeeReGroup
|
||||
from employee.forms import (
|
||||
@@ -144,29 +147,20 @@ def self_info_update(request):
|
||||
|
||||
|
||||
@login_required
|
||||
@manager_can_enter("employee.view_employee")
|
||||
def employee_view_individual(request, obj_id, **kwargs):
|
||||
"""
|
||||
This method is used to view profile of an employee.
|
||||
"""
|
||||
employee = Employee.objects.get(id=obj_id)
|
||||
employee_leaves = employee.available_leave.all()
|
||||
user = Employee.objects.filter(employee_user_id=request.user).first()
|
||||
if (
|
||||
user
|
||||
and user.reporting_manager.filter(employee_id=employee).exists()
|
||||
or request.user.has_perm("employee.view_employee")
|
||||
):
|
||||
return render(
|
||||
request,
|
||||
"employee/view/individual.html",
|
||||
{
|
||||
"employee": employee,
|
||||
"employee_leaves": employee_leaves,
|
||||
},
|
||||
)
|
||||
return HttpResponseRedirect(
|
||||
request.META.get("HTTP_REFERER", "/employee/employee-view")
|
||||
|
||||
return render(
|
||||
request,
|
||||
"employee/view/individual.html",
|
||||
{
|
||||
"employee": employee,
|
||||
"employee_leaves": employee_leaves,
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
@@ -191,6 +185,7 @@ def contract_tab(request, obj_id, **kwargs):
|
||||
|
||||
|
||||
@login_required
|
||||
@owner_can_enter("asset.view_asset", Employee)
|
||||
def asset_tab(request, emp_id):
|
||||
"""
|
||||
This function is used to view asset tab of an employee in employee individual view.
|
||||
@@ -253,6 +248,7 @@ def asset_request_tab(request, emp_id):
|
||||
|
||||
|
||||
@login_required
|
||||
@owner_can_enter("pms.view_feedback",Employee)
|
||||
def performance_tab(request, emp_id):
|
||||
"""
|
||||
This function is used to view performance tab of an employee in employee individual & profile view.
|
||||
@@ -325,6 +321,7 @@ def attendance_tab(request, emp_id):
|
||||
|
||||
|
||||
@login_required
|
||||
@owner_can_enter("perms.employee.view_employee", Employee)
|
||||
def shift_tab(request, emp_id):
|
||||
"""
|
||||
This function is used to view shift tab of an employee in employee individual & profile view.
|
||||
@@ -410,7 +407,6 @@ def paginator_qry(qryset, page_number):
|
||||
|
||||
|
||||
@login_required
|
||||
@manager_can_enter("employee.view_employee")
|
||||
def employee_view(request):
|
||||
"""
|
||||
This method is used to render template for view all employee
|
||||
@@ -420,9 +416,6 @@ def employee_view(request):
|
||||
page_number = request.GET.get("page")
|
||||
filter_obj = EmployeeFilter(request.GET, queryset=Employee.objects.all())
|
||||
export_form = EmployeeExportExcelForm()
|
||||
employees = filtersubordinatesemployeemodel(
|
||||
request, filter_obj.qs, "employee.view_employee"
|
||||
)
|
||||
data_dict = parse_qs(previous_data)
|
||||
get_key_instances(Employee, data_dict)
|
||||
emp = Employee.objects.all()
|
||||
@@ -430,10 +423,10 @@ def employee_view(request):
|
||||
request,
|
||||
"employee_personal_info/employee_view.html",
|
||||
{
|
||||
"data": paginator_qry(employees, page_number),
|
||||
"data": paginator_qry(filter_obj.qs, page_number),
|
||||
"pd": previous_data,
|
||||
"f": filter_obj,
|
||||
"export_filter": EmployeeFilter(queryset=employees),
|
||||
"export_filter": EmployeeFilter(queryset=filter_obj.qs),
|
||||
"export_form": export_form,
|
||||
"view_type": view_type,
|
||||
"filter_dict": data_dict,
|
||||
@@ -772,7 +765,6 @@ def employee_update_bank_details(request, obj_id=None):
|
||||
|
||||
|
||||
@login_required
|
||||
@manager_can_enter("employee.view_employee")
|
||||
def employee_filter_view(request):
|
||||
"""
|
||||
This method is used to filter employee.
|
||||
@@ -782,9 +774,6 @@ def employee_filter_view(request):
|
||||
employees = EmployeeFilter(request.GET).qs
|
||||
if request.GET.get("is_active") != "False":
|
||||
employees = employees.filter(is_active=True)
|
||||
employees = filtersubordinatesemployeemodel(
|
||||
request, employees, "employee.view_employee"
|
||||
)
|
||||
page_number = request.GET.get("page")
|
||||
view = request.GET.get("view")
|
||||
data_dict = parse_qs(previous_data)
|
||||
@@ -1462,6 +1451,7 @@ def work_info_import(request):
|
||||
return HttpResponse("Imported successfully")
|
||||
return response
|
||||
|
||||
|
||||
@login_required
|
||||
@manager_can_enter("employee.view_employee")
|
||||
def work_info_export(request):
|
||||
@@ -1472,7 +1462,9 @@ def work_info_export(request):
|
||||
selected_columns = []
|
||||
form = EmployeeExportExcelForm()
|
||||
employees = EmployeeFilter(request.GET).qs
|
||||
employees = filtersubordinatesemployeemodel(request,employees,"employee.view_employee")
|
||||
employees = filtersubordinatesemployeemodel(
|
||||
request, employees, "employee.view_employee"
|
||||
)
|
||||
selected_fields = request.GET.getlist("selected_fields")
|
||||
if not selected_fields:
|
||||
selected_fields = form.fields["selected_fields"].initial
|
||||
|
||||
Reference in New Issue
Block a user