229 lines
7.3 KiB
Python

from django import forms
from django.forms import DateInput
from django.contrib.auth.models import User, Permission
from django.contrib.auth.forms import UserChangeForm
from .models import Brigada, Batallones, Armas, Municiones, Personas,BrigadaDigital, UnidadDigital, Abastecimiento , Producto, ProductoAbastecimiento, ArmasDePersonas, Cemanblin, Cemantar, Cemansac
class BrigadaForm(forms.ModelForm):
nombreB = forms.CharField(min_length=3, max_length=50, required=True)
class Meta:
model = Brigada
fields = ['nombreB', 'ubicacionB', 'comandante', 'telefono', 'correo']
class BatallonForm(forms.ModelForm):
nombreB = forms.CharField(min_length=3, max_length=50)
class Meta:
model = Batallones
fields = ['nombreB',
'ubicacionB',
'comandante',
'telefono',
'correo',
'primero' ]
class ArmaForm(forms.ModelForm):
calibreS = forms.CharField(required=False)
cantidadS = forms.IntegerField(required=False)
serialS = forms.CharField(required=False)
class Meta:
model = Armas
fields = ['categoria',
'tipoA',
'modeloA',
'calibreA',
'serialA',
'serialAG',
'fechaAG',
'opAM',
'cantidadA',
'cantidadC',
'segundo',
'armaS',
'calibreS',
'cantidadS',
'serialS',
'ac']
class MunicionForm(forms.ModelForm):
class Meta:
model = Municiones
fields = ['tipoM',
'serialAG',
'fechaAG',
'cantidadM',
'lote',
'tercero']
class PersonaForm(forms.ModelForm):
fechaAG = forms.DateField(widget=forms.DateInput(format='%Y-%m-%d'))
class Meta:
model = Personas
fields = ['categoria',
'grado',
'promocion',
'anio',
'unidad',
'datos',
'cedula',
'armaA',
'cargadores',
'municiones',
'serialA',
'serialAG',
'fechaAG',
'direccion',
'telefono',
'correo', 'img']
def __init__(self, *args, **kwargs):
super(PersonaForm, self).__init__(*args, **kwargs)
if self.instance and self.instance.pk:
self.fields['fechaAG'].widget.attrs['value'] = self.instance.fechaAG.strftime('%Y-%m-%d')
class ArmasDePersonasForm(forms.ModelForm):
class Meta:
model = ArmasDePersonas
fields = ['armas' , 'modelo', 'serial', 'serialag', 'fechag', 'cargadores', 'cargadores', 'municiones' , 'persona']
class BrigadaDigitalForm(forms.ModelForm):
class Meta:
model= BrigadaDigital
fields = ['nombre']
class UnidadDigitalForm(forms.ModelForm):
class Meta:
model= UnidadDigital
fields =['nombreU','descripcion','img', 'digital']
class EnviarProductoForm(forms.ModelForm):
class Meta:
model = ProductoAbastecimiento
fields = ['producto', 'abastecimiento', 'cantidad', 'serial']
class ProductoForm(forms.ModelForm):
class Meta:
model = Producto
fields = ['nombre', 'cantidad', 'descripcion', 'serial', 'modelo' , 'precio']
class AbastecimientoForm(forms.ModelForm):
class Meta:
model = Abastecimiento
fields = ['nombre']
class CemanblinForm(forms.ModelForm):
class Meta:
model = Cemanblin
fields = ['fechaE',
'reparado',
'seriales',
'descripcion',
'personauna',
'personados',
'personatres',
'equipo',
'unidad']
class CemantarForm(forms.ModelForm):
class Meta:
model = Cemantar
fields = ['fechaE',
'reparado',
'seriales',
'descripcion',
'personauna',
'personados',
'personatres',
'equipo',
'unidad']
class CemansacForm(forms.ModelForm):
class Meta:
model = Cemansac
fields = ['fechaE',
'reparado',
'seriales',
'descripcion',
'personauna',
'personados',
'personatres',
'equipo',
'unidad']
class EditUserForm(forms.ModelForm):
class Meta:
model = User
fields = ['username', 'email', 'first_name', 'last_name', 'is_active', 'is_staff', 'is_superuser' ,'user_permissions' ]
exclude = ('user_permissions',)
class RegisterForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput)
password1 = forms.CharField(widget=forms.PasswordInput)
first_name = forms.CharField(max_length=100, label='Nombre')
last_name= forms.CharField(max_length=100,label="Apellido")
class Meta:
model = User
fields = ['username','first_name', 'last_name', 'password', 'password1']
def clean(self):
cleaned_data = super().clean()
password = cleaned_data.get("password")
password1 = cleaned_data.get("password1")
if password and password1 and password != password1:
raise forms.ValidationError("Las contraseñas no coinciden")
class CambioForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput)
password1 = forms.CharField(widget=forms.PasswordInput)
class Meta:
model = User
fields = ['password', 'password1']
def clean(self):
cleaned_data = super().clean()
password = cleaned_data.get("password")
password1 = cleaned_data.get("password1")
if password and password1 and password != password1:
raise forms.ValidationError("Las contraseñas no coinciden")
class RegistroForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput)
password_confirmation = forms.CharField(widget=forms.PasswordInput)
is_active = forms.BooleanField(required=False, initial=True)
is_superuser = forms.BooleanField(required=False, initial=True)
is_staff = forms.BooleanField(required=False, initial=True)
class Meta:
model = User
fields = ['username', 'email','is_active', 'is_staff', 'is_superuser' ,'password', 'password_confirmation']
def clean(self):
cleaned_data = super().clean()
password = cleaned_data.get("password")
password_confirmation = cleaned_data.get("password_confirmation")
if password and password_confirmation and password != password_confirmation:
raise forms.ValidationError("Las contraseñas no coinciden")
def clean_checkbox(self):
is_active = self.cleaned_data.get('checkbox')
# Convert 'on' to True, and any other value to False
return is_active == 'on'