Django_Basic_Manufacturing/inventory/forms.py
2025-08-19 12:28:49 +07:00

88 lines
3.6 KiB
Python

from django import forms
from .models import Customer, Supplier, Product, Category
class CustomerForm(forms.ModelForm):
"""Form for creating and editing customers"""
class Meta:
model = Customer
fields = ['code', 'name', 'customer_type', 'contact_person', 'email', 'phone', 'address', 'credit_limit', 'is_active']
widgets = {
'address': forms.Textarea(attrs={'rows': 3}),
}
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
# Add Bootstrap classes
for field in self.fields.values():
if isinstance(field.widget, (forms.CheckboxInput, forms.RadioSelect)):
field.widget.attrs.update({'class': 'form-check-input'})
elif isinstance(field.widget, forms.Textarea):
field.widget.attrs.update({'class': 'form-control'})
else:
field.widget.attrs.update({'class': 'form-control'})
class SupplierForm(forms.ModelForm):
"""Form for creating and editing suppliers"""
class Meta:
model = Supplier
fields = ['code', 'name', 'contact_person', 'email', 'phone', 'address', 'credit_limit', 'is_active']
widgets = {
'address': forms.Textarea(attrs={'rows': 3}),
}
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
# Add Bootstrap classes
for field in self.fields.values():
if isinstance(field.widget, (forms.CheckboxInput, forms.RadioSelect)):
field.widget.attrs.update({'class': 'form-check-input'})
elif isinstance(field.widget, forms.Textarea):
field.widget.attrs.update({'class': 'form-control'})
else:
field.widget.attrs.update({'class': 'form-control'})
class CategoryForm(forms.ModelForm):
"""Form for creating and editing product categories"""
class Meta:
model = Category
fields = ['name', 'description', 'parent', 'is_active']
widgets = {
'description': forms.Textarea(attrs={'rows': 3}),
}
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
# Add Bootstrap classes
for field in self.fields.values():
if isinstance(field.widget, (forms.CheckboxInput, forms.RadioSelect)):
field.widget.attrs.update({'class': 'form-check-input'})
elif isinstance(field.widget, forms.Textarea):
field.widget.attrs.update({'class': 'form-control'})
else:
field.widget.attrs.update({'class': 'form-control'})
class ProductForm(forms.ModelForm):
"""Form for creating and editing products"""
class Meta:
model = Product
fields = ['code', 'name', 'description', 'category', 'unit', 'current_stock', 'min_stock_level',
'max_stock_level', 'cost_price', 'selling_price', 'weight', 'dimensions', 'is_active', 'is_manufactured']
widgets = {
'description': forms.Textarea(attrs={'rows': 3}),
'dimensions': forms.TextInput(attrs={'placeholder': 'LxWxH in cm'}),
}
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
# Add Bootstrap classes
for field in self.fields.values():
if isinstance(field.widget, (forms.CheckboxInput, forms.RadioSelect)):
field.widget.attrs.update({'class': 'form-check-input'})
elif isinstance(field.widget, forms.Textarea):
field.widget.attrs.update({'class': 'form-control'})
else:
field.widget.attrs.update({'class': 'form-control'})