Add advanced employee engagement workflow controls phase 4
This commit is contained in:
@@ -51,6 +51,7 @@ from app.modules.employees.service import (
|
||||
save_employee_workflow_task,
|
||||
pause_employee_engagement_workflow,
|
||||
resume_employee_engagement_workflow,
|
||||
escalate_employee_engagement_workflow,
|
||||
list_employee_work_assignable_users,
|
||||
list_visible_work_assignment_dashboard,
|
||||
list_engagement_progress_dashboard,
|
||||
@@ -2169,6 +2170,37 @@ def employee_workflow_resume(request: Request, engagement_id: int, csrf_token: s
|
||||
finally: db.close()
|
||||
|
||||
|
||||
@portal_router.post("/work/engagements/{engagement_id}/escalate")
|
||||
def employee_workflow_escalate(
|
||||
request: Request,
|
||||
engagement_id: int,
|
||||
level: str = Form("manager"),
|
||||
message: str = Form(""),
|
||||
csrf_token: str = Form(""),
|
||||
):
|
||||
if not validate_csrf(request, csrf_token):
|
||||
return _csrf_rejected(request)
|
||||
with CommonSessionLocal() as db:
|
||||
current_user = get_current_user(request, db)
|
||||
if not current_user:
|
||||
return RedirectResponse(url="/login", status_code=303)
|
||||
scope = build_employee_scope(
|
||||
db, current_user,
|
||||
tenant_id=request.session.get("active_tenant_id") or getattr(current_user, "tenant_id", None),
|
||||
branch_id=request.session.get("active_branch_id"),
|
||||
)
|
||||
try:
|
||||
escalate_employee_engagement_workflow(
|
||||
db, scope, engagement_id, level=level, message=message,
|
||||
actor_user_id=current_user.id,
|
||||
financial_year=request.session.get("active_financial_year"),
|
||||
)
|
||||
except ValueError:
|
||||
db.rollback()
|
||||
return RedirectResponse(url=f"/employee/work/engagements/{engagement_id}?escalation_error=1", status_code=303)
|
||||
return RedirectResponse(url=f"/employee/work/engagements/{engagement_id}?escalated=1", status_code=303)
|
||||
|
||||
|
||||
@portal_router.post("/work/engagements/{engagement_id}/tasks/{task_id}/save")
|
||||
def employee_workflow_task_save(
|
||||
request: Request,
|
||||
|
||||
Reference in New Issue
Block a user