Django_Basic_Manufacturing/manufacture/forms.py

34 lines
1.4 KiB
Python

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