[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 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)

View File

@@ -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(

View File

@@ -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")

View File

@@ -23,23 +23,23 @@
<div class="oh-scrollable-container oh-wrapper mb-3">
<div class="oh-layout--grid-3 mt-2 mb-2">
{% for user_leave in user_leaves %}
<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">
<div class="oh-kanban-card__avatar">
<div class="oh-kanban-card__profile-container">
<img src="{{user_leave.leave_type_id.get_avatar }}" class="oh-kanban-card__profile-image"
alt="Leave Icon" />
<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">
<div class="oh-kanban-card__avatar">
<div class="oh-kanban-card__profile-container">
<img src="{{user_leave.leave_type_id.get_avatar }}" class="oh-kanban-card__profile-image"
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 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 %}
</div>
</div>