diff --git a/employee/templates/employee_personal_info/employee_list.html b/employee/templates/employee_personal_info/employee_list.html index 5c3ed32ee..7db74f4e4 100644 --- a/employee/templates/employee_personal_info/employee_list.html +++ b/employee/templates/employee_personal_info/employee_list.html @@ -1,4 +1,5 @@ {% include 'filter_tags.html' %} +{% load basefilters %} {% load static %} {% load i18n %} {% if messages %}
{% for message in messages %} @@ -6,6 +7,7 @@ {% endfor %}
{% endif %} +{% if perms.employee.view_employee or request.user|is_reportingmanager %}
{% trans "Export Employees" %}
+{% endif %} +
diff --git a/employee/views.py b/employee/views.py index 42a218cb2..36d71c2f9 100755 --- a/employee/views.py +++ b/employee/views.py @@ -152,9 +152,11 @@ def employee_view_individual(request, obj_id, **kwargs): 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"): + 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", @@ -416,9 +418,7 @@ def employee_view(request): view_type = request.GET.get("view") previous_data = request.GET.urlencode() page_number = request.GET.get("page") - filter_obj = EmployeeFilter( - request.GET, queryset=Employee.objects.all() - ) + filter_obj = EmployeeFilter(request.GET, queryset=Employee.objects.all()) export_form = EmployeeExportExcelForm() employees = filtersubordinatesemployeemodel( request, filter_obj.qs, "employee.view_employee" @@ -468,9 +468,11 @@ def employee_view_update(request, obj_id, **kwargs): """ user = Employee.objects.filter(employee_user_id=request.user).first() employee = Employee.objects.filter(id=obj_id).first() - if user and user.reporting_manager.filter( - employee_id=employee - ).exists() or request.user.has_perm("employee.change_employee"): + if ( + user + and user.reporting_manager.filter(employee_id=employee).exists() + or request.user.has_perm("employee.change_employee") + ): form = EmployeeForm(instance=employee) work_form = EmployeeWorkInformationForm( instance=EmployeeWorkInformation.objects.filter( @@ -779,7 +781,7 @@ def employee_filter_view(request): field = request.GET.get("field") employees = EmployeeFilter(request.GET).qs if request.GET.get("is_active") != "False": - employees=employees.filter(is_active=True) + employees = employees.filter(is_active=True) employees = filtersubordinatesemployeemodel( request, employees, "employee.view_employee" ) @@ -1460,7 +1462,8 @@ def work_info_import(request): return HttpResponse("Imported successfully") return response - +@login_required +@manager_can_enter("employee.view_employee") def work_info_export(request): """ This method is used to export employee data to xlsx @@ -1469,6 +1472,7 @@ def work_info_export(request): selected_columns = [] form = EmployeeExportExcelForm() employees = EmployeeFilter(request.GET).qs + 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 @@ -1647,7 +1651,7 @@ def dashboard_employee_department(request): count.append( len( Employee.objects.filter( - employee_work_info__department_id__department=dept,is_active=True + employee_work_info__department_id__department=dept, is_active=True ) ) ) @@ -1721,7 +1725,6 @@ def employee_select(request): This method is used to return all the id of the employees to select the employee row """ page_number = request.GET.get("page") - employees = Employee.objects.all() if page_number == "all": employees = Employee.objects.filter(is_active=True) @@ -1735,6 +1738,7 @@ def employee_select(request): @login_required +@manager_can_enter("employee.view_employee") def employee_select_filter(request): """ This method is used to return all the ids of the filtered employees @@ -1747,8 +1751,9 @@ def employee_select_filter(request): employee_filter = EmployeeFilter(filters, queryset=Employee.objects.all()) # Get the filtered queryset - filtered_employees = employee_filter.qs - + filtered_employees = filtersubordinatesemployeemodel( + request=request, queryset=employee_filter.qs, perm="employee.view_employee" + ) employee_ids = [str(emp.id) for emp in filtered_employees] total_count = filtered_employees.count()