from django import forms from django.forms import inlineformset_factory from .models import ClientesA24, Suspension_Modulos_Permisos_Cliente,SuspensionModulo,SuspensionPermiso,Modulo from datetime import datetime from django.utils.html import format_html class ClienteForm_IMMEX(forms.ModelForm): fecha_baja = forms.DateField( required=False, initial=datetime.now(), input_formats=["%Y-%m-%d"], widget=forms.DateInput(attrs={'type':'date'},format="%Y-%m-%d") ) class Meta: model = ClientesA24 fields = ('RFC','Nombre','Activo','fecha_baja', ) def clean(self): super(ClienteForm_IMMEX,self).clean() Activo = self.cleaned_data.get("Activo") fecha_baja = self.cleaned_data.get("fecha_baja") if Activo and fecha_baja: self.errors['fecha_baja'] = self.error_class(["El parametro activo no puede estar seleccionado si hay fecha de baja"]) return self.cleaned_data class SuspensionModulosPermisosClienteForm(forms.ModelForm): button_field = forms.CharField( widget=forms.TextInput(attrs={'id':'add-sistema-cliente','type': 'button', 'value': 'Agregar Sistema-Cliente', "class":"btn btn-info"}), required=False, label='' ) class Meta: model = Suspension_Modulos_Permisos_Cliente fields = '__all__' class SuspensionPermisoForm(forms.ModelForm): modulo_extra = forms.ModelChoiceField(queryset=SuspensionModulo.objects.all(), required=False, label='Reasignar Modulo') class Meta: model = SuspensionPermiso fields = '__all__' class SuspensionModuloForm(forms.ModelForm): class Meta: model = SuspensionModulo fields = '__all__' SuspensionModuloFormSet = inlineformset_factory( Suspension_Modulos_Permisos_Cliente, SuspensionModulo, form=SuspensionModuloForm, extra=5, can_delete=True, ) #se usa "SuspensionModuloFormSet2" en el UpdateView para pasar el Extra igual a cero SuspensionModuloFormSet2 = inlineformset_factory( Suspension_Modulos_Permisos_Cliente, SuspensionModulo, form=SuspensionModuloForm, extra=1, can_delete=True, ) SuspensionPermisoFormSetCreate = inlineformset_factory( Suspension_Modulos_Permisos_Cliente, # Modelo padre SuspensionPermiso, # Modelo hijo form=SuspensionPermisoForm, extra=3, can_delete=True, ) SuspensionPermisoFormSet = inlineformset_factory( Suspension_Modulos_Permisos_Cliente, # Modelo padre SuspensionPermiso, # Modelo hijo form=SuspensionPermisoForm, extra=0, can_delete=True, )