source: sapic/organizaciones/forms.py

Last change on this file was a100574, checked in by William Páez <wpaez@…>, 6 años ago

agragadas validaciones en los campos: documento de identidad, teléfono, rif del consejo comunal y arreglado error en documento de identidad creando un vocero

  • Propiedad mode establecida a 100644
File size: 6.1 KB
Línea 
1# -*- coding: utf-8 -*-# -*- coding: utf-8 -*-
2"""!
3Forms para generar los formulario del modulo organizaciones sociales
4
5@author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
6@copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
7@date 29-05-2017
8@version 1.0.0
9"""
10from django import forms
11from django.forms import (
12    ModelForm,  modelform_factory, inlineformset_factory
13    )
14
15from .models import *
16
17from utils.views import (
18    obtenerEstados, listMunicipios
19    )
20
21from organizaciones.models import OrganizacionSocial
22from django.core import validators
23
24class FormularioRegisterOrgSocial(ModelForm):
25    """!
26    Clase que permite crear el formulario para registrar organizaciones sociales
27
28    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
29    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
30    @date 09-01-2017
31    @version 1.0.0
32    """
33    estados = obtenerEstados()
34    municipios = listMunicipios()
35    estado = forms.ChoiceField(required=False, choices=[("", "Seleccione Estado")] +
36    [(est["id"], est["nombre"]) for est in estados])
37    estado.widget.attrs.update({'class':'form-control'})
38    municipio = forms.ChoiceField(required=False, choices=[("", "Seleccione Municipio")] +
39    [(mun["id"], mun["nombre"]) for mun in municipios])
40    municipio.widget.attrs.update({'class':'form-control'})
41    class Meta:
42        model = OrganizacionSocial
43        fields = '__all__'
44
45    def __init__(self, *args, **kwargs):
46        super(FormularioRegisterOrgSocial, self).__init__(*args, **kwargs)
47        self.fields['fk_tipo_organizacion'].empty_label = 'Seleccione el Tipo De Organización'
48        self.fields['fk_tipo_organizacion'].widget.attrs.update({'class': 'form-control'})
49        self.fields['fk_tipo_organizacion'].label= 'Tipo de Organización'
50        self.fields['codigo'].widget.attrs.update({'class': 'form-control',
51                                                   'placeholder': 'Código de la Organización Comunal'})
52        self.fields['rif'].widget.attrs.update({'class': 'form-control',
53                                                   'placeholder': 'C000000000'})
54        self.fields['rif'].validators=[
55            validators.RegexValidator(
56                r'^C[\d]{9}$','Introduzca un rif válido. Solo se permite la letra C y 9 números.'
57            ),
58        ]
59
60        self.fields['situr'].widget.attrs.update({'class': 'form-control',
61                                                   'placeholder': 'SITUR'})
62        self.fields['nombre'].widget.attrs.update({'class': 'form-control',
63                                                   'placeholder': 'Nombre de la Organización Comunal'})
64        self.fields['email'].widget.attrs.update({'class': 'form-control',
65                                                   'placeholder': 'Email de la Organización Comunal'})
66        self.fields['fecha_conformacion'].widget.attrs.update(
67                                            {'class': 'form-control',
68                                             'placeholder':
69                                             'Fecha de Conformación',
70                                             'readonly':
71                                             'readonly'})
72        self.fields['sector'].widget.attrs.update({'class': 'form-control',
73                                                   'placeholder': 'Sector de la Organización Comunal'})
74        self.fields['localidad'].widget.attrs.update({'class': 'form-control'})
75        self.fields['localidad'].label = 'Parroquia'
76        self.fields['localidad'].empty_label = 'Seleccione la Parroquia'
77        self.fields['activa'].widget.attrs.update({'class': 'form-control',
78                                                   'data-toggle': 'toggle',
79                                                   'data-on': 'Si',
80                                                   'data-off': 'No',
81                                                   'checked': 'checked'})
82        self.fields['activa'].label = "¿La Organización se encuentra Activa?"
83
84
85class FormularioVocero(ModelForm):
86    """!
87    Clase que crea el formulario para los objetivos especificos
88
89    @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve)
90    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
91    @date 09-01-2017
92    @version 1.0.0
93    """
94    class Meta:
95        model = Vocero
96        fields = ['fk_tipo_documento', 'nombres', 'apellidos', 'documento_identidad']
97
98    def __init__(self, *args, **kwargs):
99        super(FormularioVocero, self).__init__(*args, **kwargs)
100        self.fields['fk_tipo_documento'].widget.attrs.update(
101                                            {'class': 'form-control'})
102        self.fields['fk_tipo_documento'].empty_label = 'Seleccione el Tipo De Documento'
103        self.fields['fk_tipo_documento'].label = "Tipo de Documento"
104        self.fields['nombres'].widget.attrs.update(
105                                            {'class': 'form-control',
106                                             'placeholder':
107                                             'Nombres'})
108        self.fields['apellidos'].widget.attrs.update(
109                                            {'class': 'form-control',
110                                             'placeholder':
111                                             'Apellidos'})
112        self.fields['documento_identidad'].widget.attrs.update(
113                                            {'class': 'form-control',
114                                             'placeholder':
115                                             'Documento de Identidad'})
116
117campos = ('fk_tipo_documento', 'nombres', 'apellidos', 'documento_identidad',)
118
119FormsetObj = modelform_factory(Vocero, form=FormularioVocero, fields=campos)
120
121FormsetVocero = inlineformset_factory(OrganizacionSocial, Vocero, form=FormsetObj,
122                                                fields=campos, fk_name='fk_org_social',
123                                                min_num=1, extra=0, validate_min=True,
124                                                can_delete=True)
Nota: Vea TracBrowser para ayuda de uso del navegador del repositorio.