[UPDT] PAYROLL: Updated payroll form parent class by inherit base app form class
This commit is contained in:
@@ -2,19 +2,16 @@
|
||||
forms.py
|
||||
"""
|
||||
|
||||
from datetime import date
|
||||
from typing import Any
|
||||
|
||||
from django import forms
|
||||
from django.forms import widgets
|
||||
from django.template.loader import render_to_string
|
||||
from django.utils.translation import gettext_lazy as trans
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from base.forms import Form
|
||||
from base.methods import reload_queryset
|
||||
from base.forms import Form, ModelForm
|
||||
from employee.forms import MultipleFileField
|
||||
from employee.models import Employee
|
||||
from horilla import horilla_middlewares
|
||||
from payroll.context_processors import get_active_employees
|
||||
from payroll.models.models import (
|
||||
Contract,
|
||||
@@ -25,72 +22,12 @@ from payroll.models.models import (
|
||||
)
|
||||
|
||||
|
||||
class ModelForm(forms.ModelForm):
|
||||
"""
|
||||
ModelForm override for additional style
|
||||
"""
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
reload_queryset(self.fields)
|
||||
request = getattr(horilla_middlewares._thread_locals, "request", None)
|
||||
for _, field in self.fields.items():
|
||||
widget = field.widget
|
||||
|
||||
if isinstance(widget, (forms.DateInput)):
|
||||
field.initial = date.today()
|
||||
|
||||
if isinstance(widget, (forms.DateInput)):
|
||||
field.widget.attrs.update({"class": "oh-input oh-calendar-input w-100"})
|
||||
elif isinstance(
|
||||
widget, (forms.NumberInput, forms.EmailInput, forms.TextInput)
|
||||
):
|
||||
label = trans(field.label)
|
||||
field.widget.attrs.update(
|
||||
{"class": "oh-input w-100", "placeholder": label}
|
||||
)
|
||||
elif isinstance(widget, (forms.Select,)):
|
||||
field.widget.attrs.update(
|
||||
{"class": "oh-select oh-select-2 select2-hidden-accessible"}
|
||||
)
|
||||
elif isinstance(widget, (forms.Textarea)):
|
||||
label = trans(field.label)
|
||||
field.widget.attrs.update(
|
||||
{
|
||||
"class": "oh-input w-100",
|
||||
"placeholder": label,
|
||||
"rows": 2,
|
||||
"cols": 40,
|
||||
}
|
||||
)
|
||||
elif isinstance(
|
||||
widget,
|
||||
(
|
||||
forms.CheckboxInput,
|
||||
forms.CheckboxSelectMultiple,
|
||||
),
|
||||
):
|
||||
field.widget.attrs.update({"class": "oh-switch__checkbox"})
|
||||
|
||||
try:
|
||||
self.fields["employee_id"].initial = request.user.employee_get
|
||||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
self.fields["company_id"].initial = (
|
||||
request.user.employee_get.get_company
|
||||
)
|
||||
except:
|
||||
pass
|
||||
|
||||
|
||||
class ContractForm(ModelForm):
|
||||
"""
|
||||
ContactForm
|
||||
"""
|
||||
|
||||
verbose_name = trans("Contract")
|
||||
verbose_name = _("Contract")
|
||||
contract_start_date = forms.DateField()
|
||||
contract_end_date = forms.DateField(required=False)
|
||||
|
||||
@@ -154,6 +91,9 @@ class ContractForm(ModelForm):
|
||||
return table_html
|
||||
|
||||
def get_dynamic_hx_post_url(self, instance):
|
||||
"""
|
||||
Render the url for contract status update through hx request
|
||||
"""
|
||||
return f"/payroll/update-contract-status/{instance.pk}"
|
||||
|
||||
|
||||
@@ -179,6 +119,10 @@ class reimbursementCommentForm(ModelForm):
|
||||
verbose_name = "Add Comment"
|
||||
|
||||
class Meta:
|
||||
"""
|
||||
Meta class for additional options
|
||||
"""
|
||||
|
||||
model = ReimbursementrequestComment
|
||||
fields = "__all__"
|
||||
|
||||
|
||||
@@ -9,83 +9,15 @@ the widget attributes to enhance the user interface and provide a better user ex
|
||||
|
||||
"""
|
||||
|
||||
import uuid
|
||||
from datetime import date
|
||||
|
||||
from django import forms
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from base.methods import reload_queryset
|
||||
from horilla import horilla_middlewares
|
||||
from base.forms import ModelForm
|
||||
from payroll.methods import federal_tax
|
||||
from payroll.models.models import FilingStatus
|
||||
from payroll.models.tax_models import TaxBracket
|
||||
|
||||
|
||||
class ModelForm(forms.ModelForm):
|
||||
"""Custom ModelForm with enhanced widget attributes."""
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
request = getattr(horilla_middlewares._thread_locals, "request", None)
|
||||
reload_queryset(self.fields)
|
||||
for field_name, field in self.fields.items():
|
||||
input_widget = field.widget
|
||||
|
||||
if isinstance(input_widget, (forms.DateInput)):
|
||||
field.initial = date.today()
|
||||
|
||||
if isinstance(
|
||||
input_widget, (forms.NumberInput, forms.EmailInput, forms.TextInput)
|
||||
):
|
||||
label = _(field.label)
|
||||
input_widget.attrs.update(
|
||||
{"class": "oh-input w-100", "placeholder": label}
|
||||
)
|
||||
elif isinstance(input_widget, (forms.Select,)):
|
||||
label = ""
|
||||
if field.label is not None:
|
||||
label = _(field.label)
|
||||
field.empty_label = str(_("---Choose {label}---")).format(label=label)
|
||||
self.fields[field_name].widget.attrs.update(
|
||||
{
|
||||
"class": "oh-select oh-select-2 w-100",
|
||||
"id": uuid.uuid4(),
|
||||
"style": "height:50px;border-radius:0;",
|
||||
}
|
||||
)
|
||||
elif isinstance(input_widget, (forms.Textarea)):
|
||||
label = _(field.label.title())
|
||||
input_widget.attrs.update(
|
||||
{
|
||||
"class": "oh-input w-100",
|
||||
"placeholder": label,
|
||||
"rows": 2,
|
||||
"cols": 40,
|
||||
}
|
||||
)
|
||||
elif isinstance(
|
||||
input_widget,
|
||||
(
|
||||
forms.CheckboxInput,
|
||||
forms.CheckboxSelectMultiple,
|
||||
),
|
||||
):
|
||||
input_widget.attrs.update({"class": "oh-switch__checkbox"})
|
||||
|
||||
try:
|
||||
self.fields["employee_id"].initial = request.user.employee_get
|
||||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
self.fields["company_id"].initial = (
|
||||
request.user.employee_get.get_company
|
||||
)
|
||||
except:
|
||||
pass
|
||||
|
||||
|
||||
class FilingStatusForm(ModelForm):
|
||||
"""Form for creating and updating filing status."""
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
from datetime import datetime
|
||||
|
||||
from django.apps import apps
|
||||
from django.db.models.signals import post_save, pre_save
|
||||
from django.dispatch import receiver
|
||||
@@ -108,4 +109,3 @@ def create_installments(sender, instance, created, **kwargs):
|
||||
installments.append(installment)
|
||||
|
||||
instance.deduction_ids.add(*installments)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user