[UPDT] GENERAL: General settings for notice period configuration

This commit is contained in:
Horilla
2024-01-30 19:09:51 +05:30
parent ff2804e72c
commit 33221f8d95
4 changed files with 44 additions and 6 deletions

View File

@@ -5,7 +5,11 @@ from django import forms
from django.forms import widgets
from django.utils.translation import gettext_lazy as trans
from django.template.loader import render_to_string
from payroll.models.models import ReimbursementrequestComment, WorkRecord
from payroll.models.models import (
PayrollGeneralSetting,
ReimbursementrequestComment,
WorkRecord,
)
from payroll.models.models import Contract
from base.methods import reload_queryset
@@ -63,7 +67,6 @@ class ContractForm(ModelForm):
contract_start_date = forms.DateField()
contract_end_date = forms.DateField()
class Meta:
"""
Meta class for additional options
@@ -82,18 +85,21 @@ class ContractForm(ModelForm):
)
self.fields["contract_start_date"].widget = widgets.DateInput(
attrs={
"type":"date",
"type": "date",
"class": "oh-input w-100",
"placeholder": "Select a date",
}
)
self.fields["contract_end_date"].widget = widgets.DateInput(
attrs={
"type":"date",
"type": "date",
"class": "oh-input w-100",
"placeholder": "Select a date",
}
)
first = PayrollGeneralSetting.objects.first()
if first and self.instance.pk is None:
self.initial["notice_period_in_month"] = first.notice_period
def as_p(self):
"""
@@ -129,4 +135,4 @@ class ReimbursementrequestCommentForm(ModelForm):
"""
model = ReimbursementrequestComment
fields = ('comment',)
fields = ("comment",)

View File

@@ -0,0 +1,16 @@
{% load i18n %}
{% csrf_token %}
<div class="oh-inner-sidebar-content__header mt-4">
<h2 class="oh-inner-sidebar-content__title">{% trans 'Notice Period' %}</h2>
</div>
<i class="pb-3">{% trans 'Set initial notice period in month' %}</i>
<form action="{% url 'initial-notice-period' %}">
<input type="number"class="oh-input w-25" name="notice_period" value="{{get_initial_notice_period}}" />
<button
style="display: inline;"
type="submit"
class="oh-btn oh-btn--secondary mt-2 mr-0 oh-btn--w-100-resp ml-2"
>
{% trans "Save Changes" %}
</button></form>
<div class="oh-inner-sidebar-content__footer"></div>

View File

@@ -142,4 +142,5 @@ urlpatterns = [
views.delete_payrollrequest_comment,
name="payroll-request-delete-comment",
),
path("initial-notice-period",views.initial_notice_period,name="initial-notice-period")
]

View File

@@ -20,7 +20,7 @@ from base.methods import export_data, generate_colors, get_key_instances
from employee.models import Employee, EmployeeWorkInformation
from base.methods import closest_numbers
from base.methods import generate_pdf
from payroll.models.models import Payslip, Reimbursement, ReimbursementrequestComment, WorkRecord, Contract
from payroll.models.models import PayrollGeneralSetting, Payslip, Reimbursement, ReimbursementrequestComment, WorkRecord, Contract
from payroll.forms.forms import ContractForm, ReimbursementrequestCommentForm, WorkRecordForm
from payroll.models.tax_models import PayrollSettings
from payroll.forms.component_forms import ContractExportFieldForm, PayrollSettingsForm
@@ -1289,3 +1289,18 @@ def delete_payrollrequest_comment(request, comment_id):
messages.success(request, _("Comment deleted successfully!"))
return HttpResponseRedirect(request.META.get("HTTP_REFERER", "/"))
@login_required
@permission_required("payroll.add_payrollgeneralsetting")
def initial_notice_period(request):
"""
This method is used to set initial value notice period
"""
notice_period = eval(request.GET["notice_period"])
settings = PayrollGeneralSetting.objects.first()
settings = settings if settings else PayrollGeneralSetting()
settings.notice_period = max(notice_period,0)
settings.save()
messages.success(request,"Initial notice period updated")
return HttpResponseRedirect(request.META.get("HTTP_REFERER", "/"))