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'})