from django import forms from .models import Dividendo, Operacion, Valor class BootstrapFormMixin: """Aplica la clase form-control de Bootstrap a todos los campos.""" def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) for field in self.fields.values(): css = field.widget.attrs.get('class', '') field.widget.attrs['class'] = f'{css} form-control'.strip() class ValorForm(BootstrapFormMixin, forms.ModelForm): class Meta: model = Valor fields = ['ticker', 'nombre', 'mercado', 'isin'] def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields['ticker'].widget.attrs['placeholder'] = 'p. ej. SAN.MC' class OperacionForm(BootstrapFormMixin, forms.ModelForm): class Meta: model = Operacion fields = ['valor', 'tipo', 'fecha', 'cantidad', 'precio', 'comisiones'] widgets = { 'fecha': forms.DateInput(attrs={'type': 'date'}), } class DividendoForm(BootstrapFormMixin, forms.ModelForm): class Meta: model = Dividendo fields = ['valor', 'fecha', 'bruto', 'retencion'] widgets = { 'fecha': forms.DateInput(attrs={'type': 'date'}), }