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 af82124db..cd5a0ae9b 100644 --- a/leave/forms.py +++ b/leave/forms.py @@ -10,6 +10,7 @@ from typing import Any from django import forms from django.apps import apps +from django.contrib.admin.widgets import RelatedFieldWidgetWrapper from django.core.exceptions import ValidationError from django.db.models import Q from django.forms.widgets import TextInput @@ -92,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 413669fd5..1f671b993 100644 --- a/leave/models.py +++ b/leave/models.py @@ -240,7 +240,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/leave/user_leave/user_leave.html b/leave/templates/leave/user_leave/user_leave.html index 374e10ae0..0cdbea6a0 100644 --- a/leave/templates/leave/user_leave/user_leave.html +++ b/leave/templates/leave/user_leave/user_leave.html @@ -23,23 +23,23 @@
{% 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 %}