from django import forms from .models import ManufacturingOrder from inventory.models import Product class ManufacturingOrderForm(forms.ModelForm): """Simple form for creating manufacturing orders with basic input""" class Meta: model = ManufacturingOrder fields = ['product', 'quantity', 'date', 'notes'] widgets = { 'date': forms.DateInput(attrs={'type': 'date'}), 'notes': 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'}) elif isinstance(field.widget, forms.DateInput): field.widget.attrs.update({'class': 'form-control'}) else: field.widget.attrs.update({'class': 'form-control'}) def clean_quantity(self): """Ensure quantity is positive""" quantity = self.cleaned_data.get('quantity') if quantity <= 0: raise forms.ValidationError("Quantity must be greater than zero.") return quantity