66 lines
1.9 KiB
Python
66 lines
1.9 KiB
Python
"""
|
|
Forms for handling payroll-related operations.
|
|
|
|
This module provides Django ModelForms for creating and managing payroll-related data,
|
|
including filing status, tax brackets, and federal tax records.
|
|
|
|
The forms in this module inherit from the Django `forms.ModelForm` class and customize
|
|
the widget attributes to enhance the user interface and provide a better user experience.
|
|
|
|
"""
|
|
|
|
from django import forms
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
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 FilingStatusForm(ModelForm):
|
|
"""Form for creating and updating filing status."""
|
|
|
|
class Meta:
|
|
"""Meta options for the form."""
|
|
|
|
model = FilingStatus
|
|
fields = "__all__"
|
|
exclude = ["is_active"]
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
super().__init__(*args, **kwargs)
|
|
attrs: dict = self.fields["use_py"].widget.attrs
|
|
self.fields["python_code"].required = False
|
|
attrs[
|
|
"onchange"
|
|
] = """
|
|
if($(this).is(':checked')){
|
|
$('#oc-editor').show();
|
|
//$("#objectCreateModal #objectCreateModalTarget").css("max-width","90%")
|
|
}else{
|
|
//$("#objectCreateModal #objectCreateModalTarget").css("max-width","650px")
|
|
$('#oc-editor').hide();
|
|
}
|
|
"""
|
|
|
|
if self.instance.pk is None:
|
|
self.instance.python_code = federal_tax.CODE
|
|
else:
|
|
del self.fields["use_py"]
|
|
del self.fields["python_code"]
|
|
|
|
|
|
class TaxBracketForm(ModelForm):
|
|
"""Form for creating and updating tax bracket."""
|
|
|
|
class Meta:
|
|
"""Meta options for the form."""
|
|
|
|
model = TaxBracket
|
|
fields = "__all__"
|
|
exclude = ["is_active"]
|
|
widgets = {
|
|
"filing_status_id": forms.HiddenInput(),
|
|
}
|