[UPDT] EMPLOYEE: Self status update option restriction

This commit is contained in:
Horilla
2025-05-12 12:26:32 +05:30
parent f4e400d54f
commit 0c104f5a59
6 changed files with 48 additions and 8 deletions

View File

@@ -187,7 +187,11 @@ def get_mail_preview(request):
if emp_id:
employee = Employee.objects.get(id=emp_id)
context = template.Context(
{"instance": employee, "self": request.user.employee_get}
{
"instance": employee,
"self": request.user.employee_get,
"request": request,
}
)
body = template_bdy.render(context) or " "
return JsonResponse({"body": body})

View File

@@ -89,6 +89,9 @@ def generate_choices(model_path):
)
)
mail_details_choice.append(("pk", "Employee"))
if model_class == Candidate:
mail_details_choice.append(("pk", "Candidate"))
if model_path == "employee.models.Employee":
all_mail_to_field.append(("get_email", "Employee's mail"))
elif model_path == "recruitment.models.Candidate":

View File

@@ -425,6 +425,7 @@ def send_mail(request, automation, instance):
"instance": context_instance,
"self": sender,
"model_instance": instance,
"request": request,
}
)
render_bdy = template_bdy.render(context)
@@ -442,12 +443,19 @@ def send_mail(request, automation, instance):
else:
template_bdy = template.Template(pk_or_text)
context = template.Context(
{"instance": context_instance, "self": sender, "model_instance": instance}
{
"instance": context_instance,
"self": sender,
"model_instance": instance,
"request": request,
}
)
render_bdy = template_bdy.render(context)
title_template = template.Template(automation.title)
title_context = template.Context({"instance": instance, "self": sender})
title_context = template.Context(
{"instance": instance, "self": sender, "request": request}
)
render_title = title_template.render(title_context)
soup = BeautifulSoup(render_bdy, "html.parser")
plain_text = soup.get_text(separator="\n")

View File

@@ -104,6 +104,7 @@ class ObjectiveForm(BaseForm):
"assignees",
"start_date",
"archive",
"self_employee_progress_update",
]
exclude = ["is_active"]

View File

@@ -1201,10 +1201,15 @@ def change_employee_objective_status(request):
emp_obj = request.GET.get("empObjId")
emp_objective = EmployeeObjective.objects.filter(id=emp_obj).first()
status = request.GET.get("status")
if (
request.user.has_perm("pms.change_employeeobjective")
or emp_objective.employee_id == request.user.employee_get
if not (
request.user.has_perm("pms.change_objective")
or request.user.has_perm("pms.change_employeeobjective")
or request.user.has_perm("pms.change_employeekeyresult")
or request.user.employee_get in emp_objective.objective_id.managers.all()
or (
emp_objective.objective_id.self_employee_progress_update
and (emp_objective.employee_id == request.user.employee_get)
)
):
if emp_objective.status != status:
emp_objective.status = status
@@ -3325,11 +3330,26 @@ def key_result_current_value_update(request):
current_value = eval_validate(request.POST.get("current_value"))
emp_kr_id = eval_validate(request.POST.get("emp_key_result_id"))
emp_kr = EmployeeKeyResult.objects.get(id=emp_kr_id)
if current_value <= emp_kr.target_value:
if (
request.user.has_perm("pms.change_objective")
or request.user.has_perm("pms.change_employeeobjective")
or request.user.has_perm("pms.change_employeekeyresult")
or request.user.employee_get
in emp_kr.employee_objective_id.objective_id.managers.all()
or (
emp_kr.employee_objective_id.objective_id.self_employee_progress_update
and (
emp_kr.employee_objective_id.employee_id
== request.user.employee_get
)
)
):
emp_kr.current_value = current_value
emp_kr.save()
emp_kr.employee_objective_id.update_objective_progress()
return JsonResponse({"type": "sucess"})
else:
messages.info(request, "You dont have permission")
except:
return JsonResponse({"type": "error"})

View File

@@ -466,7 +466,11 @@ def get_mail_preview(request):
if candidate_id:
try:
candidate_obj = Candidate.objects.get(id=candidate_id)
context = {"instance": candidate_obj, "self": request.user.employee_get}
context = {
"instance": candidate_obj,
"self": request.user.employee_get,
"request": request,
}
except Candidate.DoesNotExist:
return HttpResponse("Candidate not found", status=404)