From 8b745468715db5b34c66e9b898da10045eea9ef0 Mon Sep 17 00:00:00 2001 From: Horilla Date: Wed, 24 Sep 2025 12:34:09 +0530 Subject: [PATCH] [UPDT] LEAVE: Updated leave type admin site register --- leave/admin.py | 9 ++++- leave/forms.py | 16 +++++++++ leave/models.py | 2 +- .../action_column.html | 4 +-- .../leave/user_leave/user_leave.html | 34 +++++++++++-------- 5 files changed, 46 insertions(+), 19 deletions(-) diff --git a/leave/admin.py b/leave/admin.py index a6a5bee23..11f5592d5 100644 --- a/leave/admin.py +++ b/leave/admin.py @@ -7,6 +7,8 @@ from django.apps import apps from django.contrib import admin from simple_history.admin import SimpleHistoryAdmin +from leave.forms import LeaveTypeAdminForm + from .models import ( AvailableLeave, LeaveAllocationRequest, @@ -19,8 +21,13 @@ from .models import ( RestrictLeave, ) + +class LeaveTypeAdmin(admin.ModelAdmin): + form = LeaveTypeAdminForm + + # Register your models here. -admin.site.register(LeaveType) +admin.site.register(LeaveType, LeaveTypeAdmin) admin.site.register(LeaveRequest) admin.site.register(AvailableLeave) admin.site.register(LeaveAllocationRequest, SimpleHistoryAdmin) diff --git a/leave/forms.py b/leave/forms.py index abb4abc87..a1b96db84 100644 --- a/leave/forms.py +++ b/leave/forms.py @@ -93,6 +93,22 @@ class ConditionForm(forms.ModelForm): pass +class LeaveTypeAdminForm(forms.ModelForm): + class Meta: + model = LeaveType + fields = "__all__" + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + if f := self.fields.get("company_id"): + from horilla_widgets.forms import default_select_option_template + + w = getattr(f.widget, "widget", f.widget) + if isinstance(w, forms.Select): + w.option_template_name = default_select_option_template + + class LeaveTypeForm(ConditionForm): employee_id = HorillaMultiSelectField( diff --git a/leave/models.py b/leave/models.py index 135cefee6..ecc9b22d5 100644 --- a/leave/models.py +++ b/leave/models.py @@ -248,7 +248,7 @@ class LeaveType(HorillaModel): ) is_compensatory_leave = models.BooleanField(default=False) company_id = models.ForeignKey( - Company, null=True, editable=False, on_delete=models.PROTECT + Company, null=True, blank=True, on_delete=models.PROTECT ) objects = HorillaCompanyManager(related_company_field="company_id") diff --git a/leave/templates/cbv/leave_allocation_request/action_column.html b/leave/templates/cbv/leave_allocation_request/action_column.html index ab19a59e6..ade87925a 100644 --- a/leave/templates/cbv/leave_allocation_request/action_column.html +++ b/leave/templates/cbv/leave_allocation_request/action_column.html @@ -15,7 +15,7 @@ + {% endif %} {% if instance.status == 'requested' %} + {% endif %} diff --git a/leave/templates/leave/user_leave/user_leave.html b/leave/templates/leave/user_leave/user_leave.html index f2607e83a..0cdbea6a0 100644 --- a/leave/templates/leave/user_leave/user_leave.html +++ b/leave/templates/leave/user_leave/user_leave.html @@ -1,4 +1,6 @@ {% load i18n %} +{% include 'filter_tags.html' %} + + +
{% for user_leave in user_leaves %} -
-
-
- Leave Icon +
+
+
+ Leave Icon +
+
+
+ {{user_leave.leave_type_id|truncatechars:20}} + {% trans "Available Leave Days" %} : {% if user_leave.leave_type_id.limit_leave %}{{user_leave.available_days}} {% else %}{% trans "No Limit" %}{% endif %}
+ {% trans "Carryforward Leave Days" %} : + {{user_leave.carryforward_days}}
+ {% trans "Total Leave Days" %} : {% if user_leave.leave_type_id.limit_leave %}{{user_leave.total_leave_days}}{% else %}{% trans "No Limit" %}{% endif %}
+ {% trans "Total Leave taken" %} :{{user_leave.leave_taken}}
-
- {{user_leave.leave_type_id|truncatechars:20}} - {% trans "Available Leave Days" %} : {% if user_leave.leave_type_id.limit_leave %}{{user_leave.available_days}} {% else %}{% trans "No Limit" %}{% endif %}
- {% trans "Carryforward Leave Days" %} : - {{user_leave.carryforward_days}}
- {% trans "Total Leave Days" %} : {% if user_leave.leave_type_id.limit_leave %}{{user_leave.total_leave_days}}{% else %}{% trans "No Limit" %}{% endif %}
- {% trans "Total Leave taken" %} :{{user_leave.leave_taken}} -
-
{% endfor %}