47 lines
2.8 KiB
Python
47 lines
2.8 KiB
Python
from django import forms
|
|
|
|
from .models import PilotCall
|
|
|
|
|
|
class PilotCallForm(forms.ModelForm):
|
|
class Meta:
|
|
model = PilotCall
|
|
fields = [
|
|
'client_name', 'phone', 'email', 'call_source', 'ytel_audio_status', 'logics_api_status',
|
|
'transcript', 'irs_debt', 'state_debt', 'tax_years', 'filing_status', 'employment_type',
|
|
'occupation', 'monthly_gross_income', 'spouse_income', 'mortgage', 'rent', 'utilities',
|
|
'car_payment', 'insurance', 'student_loans', 'credit_cards', 'assets', 'business_expenses',
|
|
'irs_payment_plan', 'levy', 'garnishment', 'best_callback_time', 'agent_notes',
|
|
]
|
|
widgets = {
|
|
'client_name': forms.TextInput(attrs={'placeholder': 'Maria Johnson'}),
|
|
'phone': forms.TextInput(attrs={'placeholder': '(555) 013-8842'}),
|
|
'email': forms.EmailInput(attrs={'placeholder': 'client@example.com'}),
|
|
'transcript': forms.Textarea(attrs={'rows': 8, 'placeholder': 'Paste the latest transcript segment from the call…'}),
|
|
'assets': forms.Textarea(attrs={'rows': 3, 'placeholder': 'Home equity, vehicles, business assets…'}),
|
|
'agent_notes': forms.Textarea(attrs={'rows': 4, 'placeholder': 'Summary, objections, follow-up plan…'}),
|
|
'irs_debt': forms.NumberInput(attrs={'placeholder': '24000'}),
|
|
'state_debt': forms.NumberInput(attrs={'placeholder': '5000'}),
|
|
'monthly_gross_income': forms.NumberInput(attrs={'placeholder': '7200'}),
|
|
'spouse_income': forms.NumberInput(attrs={'placeholder': '3800'}),
|
|
'mortgage': forms.NumberInput(attrs={'placeholder': '3500'}),
|
|
'rent': forms.NumberInput(attrs={'placeholder': '0'}),
|
|
'utilities': forms.NumberInput(attrs={'placeholder': '450'}),
|
|
'car_payment': forms.NumberInput(attrs={'placeholder': '620'}),
|
|
'insurance': forms.NumberInput(attrs={'placeholder': '310'}),
|
|
'student_loans': forms.NumberInput(attrs={'placeholder': '250'}),
|
|
'credit_cards': forms.NumberInput(attrs={'placeholder': '900'}),
|
|
'business_expenses': forms.NumberInput(attrs={'placeholder': '1800'}),
|
|
}
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
super().__init__(*args, **kwargs)
|
|
for field in self.fields.values():
|
|
base_class = 'form-check-input' if isinstance(field.widget, forms.CheckboxInput) else 'form-control'
|
|
if isinstance(field.widget, forms.Select):
|
|
base_class = 'form-select'
|
|
field.widget.attrs['class'] = f"{field.widget.attrs.get('class', '')} {base_class}".strip()
|
|
self.fields['client_name'].required = True
|
|
self.fields['phone'].required = True
|
|
self.fields['transcript'].required = True
|