diff --git a/leave/templates/leave/leave_request/employee_available_leave_count.html b/leave/templates/leave/leave_request/employee_available_leave_count.html
index 47650aa40..5fbac2bda 100644
--- a/leave/templates/leave/leave_request/employee_available_leave_count.html
+++ b/leave/templates/leave/leave_request/employee_available_leave_count.html
@@ -2,7 +2,7 @@
{% if not leave_type_id %}
diff --git a/leave/views.py b/leave/views.py
index fcc9736e9..4e5e2acde 100644
--- a/leave/views.py
+++ b/leave/views.py
@@ -398,21 +398,29 @@ def leave_request_creation(request, type_id=None, emp_id=None):
if "confirm" in request_copy:
request_copy.pop("confirm")
previous_data = request_copy.urlencode()
+
form = LeaveRequestCreationForm()
if request:
- employee = request.user.employee_get
+ employee_qs = form.fields["employee_id"].queryset
+ employee = (
+ request.user.employee_get
+ if request.user.employee_get in employee_qs
+ else employee_qs.first()
+ )
+
if employee:
- available_leaves = employee.available_leave.all()
assigned_leave_types = LeaveType.objects.filter(
- id__in=available_leaves.values_list("leave_type_id", flat=True)
+ id__in=employee.available_leave.values_list("leave_type_id", flat=True)
)
form.fields["leave_type_id"].queryset = assigned_leave_types
+
if type_id and emp_id:
initial_data = {
"leave_type_id": type_id,
"employee_id": emp_id,
}
form = LeaveRequestCreationForm(initial=initial_data)
+
form = choosesubordinates(request, form, "leave.add_leaverequest")
if request.method == "POST":
form = LeaveRequestCreationForm(request.POST, request.FILES)