[UPDT] LEAVE: Optimize employee leave type queryset assignment in form
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
<div
|
||||
id="{{hx_target}}"
|
||||
class="d-flex"
|
||||
style="height: 40px; {% if not available_leave and not leave_type_id %}display:none;{% endif %}"
|
||||
style="{% if not available_leave and not leave_type_id %}height: 1px;display:none;{% else %}height: 40px;{% endif %}"
|
||||
>
|
||||
{% if not leave_type_id %}
|
||||
<div id="messageDiv" style="display: none"></div>
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user