39818-vm/core/forms.py
2026-04-26 16:42:14 +00:00

47 lines
1.7 KiB
Python

from django import forms
from django.contrib.auth.forms import AuthenticationForm
from .models import Order, OrderItem, Product
class LoginForm(AuthenticationForm):
username = forms.CharField(
label="Usuario",
widget=forms.TextInput(attrs={"class": "form-control form-control-lg", "placeholder": "Tu usuario"}),
)
password = forms.CharField(
label="Contraseña",
strip=False,
widget=forms.PasswordInput(attrs={"class": "form-control form-control-lg", "placeholder": "••••••••"}),
)
class AddOrderItemForm(forms.ModelForm):
class Meta:
model = OrderItem
fields = ["product", "quantity", "note"]
widgets = {
"product": forms.Select(attrs={"class": "form-select form-select-lg"}),
"quantity": forms.NumberInput(attrs={"class": "form-control form-control-lg", "min": 1}),
"note": forms.Textarea(attrs={"class": "form-control", "rows": 3, "placeholder": "Ej. sin cebolla, extra salsa, término medio"}),
}
labels = {
"product": "Producto",
"quantity": "Cantidad",
"note": "Nota para cocina",
}
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields["product"].queryset = Product.objects.filter(is_available=True)
self.fields["quantity"].initial = 1
class OrderStatusForm(forms.Form):
status = forms.ChoiceField(widget=forms.HiddenInput())
def __init__(self, *args, order=None, **kwargs):
super().__init__(*args, **kwargs)
choices = [(status, dict(Order.Status.choices)[status]) for status in (order.allowed_transitions() if order else [])]
self.fields["status"].choices = choices