from django import forms from .models import PurchaseOrder, PurchaseOrderItem, Supplier from inventory.models import Product class PurchaseOrderForm(forms.ModelForm): """Form for creating and editing purchase orders""" class Meta: model = PurchaseOrder fields = ['supplier', 'date', 'expected_delivery_date', 'status', 'notes', 'terms_conditions'] widgets = { 'date': forms.DateInput(attrs={'type': 'date'}), 'expected_delivery_date': forms.DateInput(attrs={'type': 'date'}), 'notes': forms.Textarea(attrs={'rows': 3}), 'terms_conditions': 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'}) class PurchaseOrderItemForm(forms.ModelForm): """Form for purchase order items""" class Meta: model = PurchaseOrderItem fields = ['product', 'quantity', 'unit_price', 'description', 'notes'] widgets = { 'description': forms.TextInput(), 'notes': forms.Textarea(attrs={'rows': 2}), } def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) # Add Bootstrap classes for field in self.fields.values(): if isinstance(field.widget, forms.Textarea): field.widget.attrs.update({'class': 'form-control'}) else: field.widget.attrs.update({'class': 'form-control'})