[UPDT] LEAVE: Updated leave type admin site register

This commit is contained in:
Horilla
2025-09-23 14:21:37 +05:30
parent 6a6138da85
commit 7560e93503
4 changed files with 41 additions and 17 deletions

View File

@@ -7,6 +7,8 @@ from django.apps import apps
from django.contrib import admin from django.contrib import admin
from simple_history.admin import SimpleHistoryAdmin from simple_history.admin import SimpleHistoryAdmin
from leave.forms import LeaveTypeAdminForm
from .models import ( from .models import (
AvailableLeave, AvailableLeave,
LeaveAllocationRequest, LeaveAllocationRequest,
@@ -19,8 +21,13 @@ from .models import (
RestrictLeave, RestrictLeave,
) )
class LeaveTypeAdmin(admin.ModelAdmin):
form = LeaveTypeAdminForm
# Register your models here. # Register your models here.
admin.site.register(LeaveType) admin.site.register(LeaveType, LeaveTypeAdmin)
admin.site.register(LeaveRequest) admin.site.register(LeaveRequest)
admin.site.register(AvailableLeave) admin.site.register(AvailableLeave)
admin.site.register(LeaveAllocationRequest, SimpleHistoryAdmin) admin.site.register(LeaveAllocationRequest, SimpleHistoryAdmin)

View File

@@ -10,6 +10,7 @@ from typing import Any
from django import forms from django import forms
from django.apps import apps from django.apps import apps
from django.contrib.admin.widgets import RelatedFieldWidgetWrapper
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
from django.db.models import Q from django.db.models import Q
from django.forms.widgets import TextInput from django.forms.widgets import TextInput
@@ -92,6 +93,22 @@ class ConditionForm(forms.ModelForm):
pass 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): class LeaveTypeForm(ConditionForm):
employee_id = HorillaMultiSelectField( employee_id = HorillaMultiSelectField(

View File

@@ -240,7 +240,7 @@ class LeaveType(HorillaModel):
) )
is_compensatory_leave = models.BooleanField(default=False) is_compensatory_leave = models.BooleanField(default=False)
company_id = models.ForeignKey( 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") objects = HorillaCompanyManager(related_company_field="company_id")

View File

@@ -23,23 +23,23 @@
<div class="oh-scrollable-container oh-wrapper mb-3"> <div class="oh-scrollable-container oh-wrapper mb-3">
<div class="oh-layout--grid-3 mt-2 mb-2"> <div class="oh-layout--grid-3 mt-2 mb-2">
{% for user_leave in user_leaves %} {% for user_leave in user_leaves %}
<div class="oh-kanban-card" id="requestCreateCard" data-toggle="oh-modal-toggle" data-target="#objectCreateModal" <div class="oh-kanban-card" id="requestCreateCard" data-toggle="oh-modal-toggle" data-target="#objectCreateModal"
hx-get="{% url 'user-request' user_leave.leave_type_id.id %}" hx-target="#objectCreateModalTarget"> hx-get="{% url 'user-request' user_leave.leave_type_id.id %}" hx-target="#objectCreateModalTarget">
<div class="oh-kanban-card__avatar"> <div class="oh-kanban-card__avatar">
<div class="oh-kanban-card__profile-container"> <div class="oh-kanban-card__profile-container">
<img src="{{user_leave.leave_type_id.get_avatar }}" class="oh-kanban-card__profile-image" <img src="{{user_leave.leave_type_id.get_avatar }}" class="oh-kanban-card__profile-image"
alt="Leave Icon" /> alt="Leave Icon" />
</div>
</div>
<div class="oh-kanban-card__details mt-2">
<span class="oh-kanban-card__title">{{user_leave.leave_type_id|truncatechars:20}}</span>
<span class="oh-kanban-card__subtitle">{% trans "Available Leave Days" %} : {% if user_leave.leave_type_id.limit_leave %}{{user_leave.available_days}} {% else %}{% trans "No Limit" %}{% endif %}</span><br>
<span class="oh-kanban-card__subtitle">{% trans "Carryforward Leave Days" %} :
{{user_leave.carryforward_days}}</span><br>
<span class="oh-kanban-card__subtitle">{% trans "Total Leave Days" %} : {% if user_leave.leave_type_id.limit_leave %}{{user_leave.total_leave_days}}{% else %}{% trans "No Limit" %}{% endif %}</span><br>
<span class="oh-kanban-card__subtitle">{% trans "Total Leave taken" %} :{{user_leave.leave_taken}}</span>
</div> </div>
</div> </div>
<div class="oh-kanban-card__details mt-2">
<span class="oh-kanban-card__title">{{user_leave.leave_type_id|truncatechars:20}}</span>
<span class="oh-kanban-card__subtitle">{% trans "Available Leave Days" %} : {% if user_leave.leave_type_id.limit_leave %}{{user_leave.available_days}} {% else %}{% trans "No Limit" %}{% endif %}</span><br>
<span class="oh-kanban-card__subtitle">{% trans "Carryforward Leave Days" %} :
{{user_leave.carryforward_days}}</span><br>
<span class="oh-kanban-card__subtitle">{% trans "Total Leave Days" %} : {% if user_leave.leave_type_id.limit_leave %}{{user_leave.total_leave_days}}{% else %}{% trans "No Limit" %}{% endif %}</span><br>
<span class="oh-kanban-card__subtitle">{% trans "Total Leave taken" %} :{{user_leave.leave_taken}}</span>
</div>
</div>
{% endfor %} {% endfor %}
</div> </div>
</div> </div>