CBV Updates: 31st May
This commit is contained in:
@@ -15,11 +15,11 @@ def edit_accessibility(
|
||||
"""
|
||||
To access edit
|
||||
"""
|
||||
employee = Employee.objects.get(id=instance.pk)
|
||||
# employee = Employee.objects.get(id=instance.pk)
|
||||
if (
|
||||
(request.user.has_perm("employee.change_employee"))
|
||||
or check_manager(request.user.employee_get, instance)
|
||||
or request.user == employee.employee_user_id
|
||||
or request.user == instance.employee_user_id
|
||||
):
|
||||
return True
|
||||
return False
|
||||
@@ -31,11 +31,11 @@ def password_reset_accessibility(
|
||||
"""
|
||||
To password reset
|
||||
"""
|
||||
employee = Employee.objects.get(id=instance.pk)
|
||||
# employee = Employee.objects.get(id=instance.pk)
|
||||
if (
|
||||
(request.user.has_perm("employee.add_employee"))
|
||||
or check_manager(request.user.employee_get, instance)
|
||||
or request.user == employee.employee_user_id
|
||||
or request.user == instance.employee_user_id
|
||||
):
|
||||
return True
|
||||
return False
|
||||
|
||||
@@ -2,12 +2,11 @@
|
||||
This page handles the cbv methods of employee individual view
|
||||
"""
|
||||
|
||||
from audioop import reverse
|
||||
|
||||
from django.contrib import messages
|
||||
from django.contrib.auth.models import Group
|
||||
from django.http import HttpResponse
|
||||
from django.shortcuts import redirect, render
|
||||
from django.urls import reverse_lazy
|
||||
from django.utils.decorators import method_decorator
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.views import View
|
||||
@@ -15,6 +14,7 @@ from django.views import View
|
||||
from base import views as base_views
|
||||
from base.cbv.mail_log_tab import MailLogTabList
|
||||
from base.cbv.work_shift_tab import WorkAndShiftTabView
|
||||
from base.context_processors import enable_profile_edit
|
||||
from base.forms import AddToUserGroupForm
|
||||
from employee import views
|
||||
from employee.filters import EmployeeFilter
|
||||
@@ -23,6 +23,8 @@ from horilla import settings
|
||||
from horilla_views.cbv_methods import login_required, permission_required
|
||||
from horilla_views.generic.cbv.views import HorillaProfileView
|
||||
|
||||
Employee.cbv_employee_profile_edi_url = reverse_lazy("edit-profile")
|
||||
|
||||
|
||||
class EmployeeProfileView(HorillaProfileView):
|
||||
"""
|
||||
@@ -36,40 +38,66 @@ class EmployeeProfileView(HorillaProfileView):
|
||||
push_url = "employee-view-individual"
|
||||
key_name = "obj_id"
|
||||
|
||||
actions = [
|
||||
{
|
||||
"title": "Edit",
|
||||
"src": f"/{settings.STATIC_URL}images/ui/editing.png",
|
||||
"accessibility": "employee.cbv.accessibility.edit_accessibility",
|
||||
"attrs": """
|
||||
def __init__(self, **kwargs):
|
||||
super().__init__(**kwargs)
|
||||
employee = self.request.user.employee_get
|
||||
if self.request.user.has_perm("employee.change_employee"):
|
||||
|
||||
self.actions = [
|
||||
{
|
||||
"title": "Edit",
|
||||
"src": f"/{settings.STATIC_URL}images/ui/editing.png",
|
||||
"accessibility": "employee.cbv.accessibility.edit_accessibility",
|
||||
"attrs": """
|
||||
onclick="window.location.href='{get_update_url}'"
|
||||
""",
|
||||
},
|
||||
{
|
||||
"title": "Block Account",
|
||||
"src": f"/{settings.STATIC_URL}images/ui/block-user.png",
|
||||
"accessibility": "employee.cbv.accessibility.block_account_accessibility",
|
||||
"attrs": """
|
||||
},
|
||||
{
|
||||
"title": "Block Account",
|
||||
"src": f"/{settings.STATIC_URL}images/ui/block-user.png",
|
||||
"accessibility": "employee.cbv.accessibility.block_account_accessibility",
|
||||
"attrs": """
|
||||
id="block-account"
|
||||
""",
|
||||
},
|
||||
{
|
||||
"title": "Un-Block Account",
|
||||
"src": f"/{settings.STATIC_URL}images/ui/unlock.png",
|
||||
"accessibility": "employee.cbv.accessibility.un_block_account_accessibility",
|
||||
"attrs": """
|
||||
},
|
||||
{
|
||||
"title": "Un-Block Account",
|
||||
"src": f"/{settings.STATIC_URL}images/ui/unlock.png",
|
||||
"accessibility": "employee.cbv.accessibility.un_block_account_accessibility",
|
||||
"attrs": """
|
||||
id="block-account"
|
||||
""",
|
||||
},
|
||||
{
|
||||
"title": "Send password reset link",
|
||||
"src": f"/{settings.STATIC_URL}images/ui/key.png",
|
||||
"accessibility": "employee.cbv.accessibility.password_reset_accessibility",
|
||||
"attrs": """
|
||||
},
|
||||
{
|
||||
"title": "Send password reset link",
|
||||
"src": f"/{settings.STATIC_URL}images/ui/key.png",
|
||||
"accessibility": "employee.cbv.accessibility.password_reset_accessibility",
|
||||
"attrs": """
|
||||
onclick="$('#reset-button').click();"
|
||||
""",
|
||||
},
|
||||
]
|
||||
},
|
||||
]
|
||||
elif employee.pk == kwargs["pk"] and enable_profile_edit(self.request).get(
|
||||
"profile_edit_enabled"
|
||||
):
|
||||
self.actions = [
|
||||
{
|
||||
"title": "Edit Profile",
|
||||
"src": f"/{settings.STATIC_URL}images/ui/editing.png",
|
||||
"accessibility": "employee.cbv.accessibility.edit_accessibility",
|
||||
"attrs": """
|
||||
onclick="window.location.href='{cbv_employee_profile_edi_url}'"
|
||||
""",
|
||||
},
|
||||
{
|
||||
"title": "Send password reset link",
|
||||
"src": f"/{settings.STATIC_URL}images/ui/key.png",
|
||||
"accessibility": "employee.cbv.accessibility.password_reset_accessibility",
|
||||
"attrs": """
|
||||
onclick="$('#reset-button').click();"
|
||||
""",
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
EmployeeProfileView.add_tab(
|
||||
|
||||
@@ -11,11 +11,15 @@ from django.utils.decorators import method_decorator
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from accessibility.cbv_decorators import enter_if_accessible
|
||||
from accessibility.models import DefaultAccessibility
|
||||
from base.context_processors import enable_profile_edit
|
||||
from base.methods import is_reportingmanager
|
||||
from employee.filters import EmployeeFilter
|
||||
from employee.forms import BulkUpdateFieldForm, EmployeeExportExcelForm
|
||||
from employee.models import Employee, EmployeeBankDetails, EmployeeWorkInformation
|
||||
from employee.templatetags.employee_filter import edit_accessibility
|
||||
from employee.views import _check_reporting_manager
|
||||
from horilla.horilla_middlewares import _thread_locals
|
||||
from horilla.signals import post_generic_delete
|
||||
from horilla_views.cbv_methods import login_required
|
||||
from horilla_views.forms import DynamicBulkUpdateForm
|
||||
@@ -27,6 +31,30 @@ from horilla_views.generic.cbv.views import (
|
||||
)
|
||||
|
||||
|
||||
def profile_edit_accessibility_display(self):
|
||||
"""
|
||||
Profile edit accessible
|
||||
"""
|
||||
request = _thread_locals.request
|
||||
if self.pk in request.all_edit_accessible_employees:
|
||||
return "Revoke Profile Edit Access"
|
||||
return "Add Profile Edit Access"
|
||||
|
||||
|
||||
def toggle_profile_edit_access_url(self):
|
||||
"""
|
||||
toggle profiel edit access url get method
|
||||
"""
|
||||
return (
|
||||
reverse("profile-edit-access", kwargs={"emp_id": self.pk})
|
||||
+ "?feature=profile_edit"
|
||||
)
|
||||
|
||||
|
||||
Employee.profile_edit_accessibility_display = profile_edit_accessibility_display
|
||||
Employee.toggle_profile_edit_access_url = toggle_profile_edit_access_url
|
||||
|
||||
|
||||
@method_decorator(login_required, name="dispatch")
|
||||
@method_decorator(
|
||||
enter_if_accessible(
|
||||
@@ -467,6 +495,11 @@ class EmployeeCard(HorillaCardView):
|
||||
def __init__(self, **kwargs: Any) -> None:
|
||||
super().__init__(**kwargs)
|
||||
self.search_url = reverse("employees-card")
|
||||
self.request.all_edit_accessible_employees = (
|
||||
DefaultAccessibility.objects.filter(feature="profile_edit").values_list(
|
||||
"employees__pk", flat=True
|
||||
)
|
||||
)
|
||||
if self.request.user.has_perm(
|
||||
"employee.change_employee"
|
||||
) or is_reportingmanager(self.request):
|
||||
@@ -505,6 +538,18 @@ class EmployeeCard(HorillaCardView):
|
||||
""",
|
||||
},
|
||||
]
|
||||
if enable_profile_edit(self.request).get("profile_edit_enabled"):
|
||||
self.actions.append(
|
||||
{
|
||||
"action": "profile_edit_accessibility_display",
|
||||
"accessibility": "employee.cbv.accessibility.action_accessible",
|
||||
"attrs": """
|
||||
href="{toggle_profile_edit_access_url}"
|
||||
class="oh-dropdown__link"
|
||||
style="cursor: pointer;"
|
||||
""",
|
||||
}
|
||||
)
|
||||
else:
|
||||
self.actions = None
|
||||
|
||||
|
||||
Reference in New Issue
Block a user