[UPDT] EMPLOYEE: Self status update option restriction
This commit is contained in:
@@ -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})
|
||||
|
||||
@@ -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":
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -104,6 +104,7 @@ class ObjectiveForm(BaseForm):
|
||||
"assignees",
|
||||
"start_date",
|
||||
"archive",
|
||||
"self_employee_progress_update",
|
||||
]
|
||||
exclude = ["is_active"]
|
||||
|
||||
|
||||
28
pms/views.py
28
pms/views.py
@@ -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"})
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user