1 | # -*- coding: utf-8 -*- |
---|
2 | """ |
---|
3 | Sistema de Consulta Pública |
---|
4 | |
---|
5 | Copyleft (@) 2017 CENDITEL nodo Mérida - https://planificacion.cenditel.gob.ve/trac/wiki/ModeladoTopicos_2017 |
---|
6 | """ |
---|
7 | ## @package consulta.forms |
---|
8 | # |
---|
9 | # Formulario correspondiente a la aplicación consulta |
---|
10 | # @author Rodrigo Boet (rboet at cenditel.gob.ve) |
---|
11 | # @author <a href='http://www.cenditel.gob.ve'>Centro Nacional de Desarrollo e Investigación en TecnologÃas Libres |
---|
12 | # (CENDITEL) nodo Mérida - Venezuela</a> |
---|
13 | # @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> |
---|
14 | # @version 1.0 |
---|
15 | from django import forms |
---|
16 | from .models import Consulta |
---|
17 | from base.functions import ( |
---|
18 | cargar_tipo_pregunta, cargar_entidad, cargar_municipios, |
---|
19 | cargar_parroquias, cargar_preguntas |
---|
20 | ) |
---|
21 | from base.constant import ( |
---|
22 | OBJETIVOS, SECTORES, PARTICIPACION, |
---|
23 | SECTOR_ESTUDIANTE, SECTOR_TRABAJADOR |
---|
24 | ) |
---|
25 | |
---|
26 | class ConsultaForm(forms.ModelForm): |
---|
27 | """! |
---|
28 | Clase del formulario que registra la consulta |
---|
29 | |
---|
30 | @author Rodrigo Boet (rboet at cenditel.gob.ve) |
---|
31 | @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> |
---|
32 | @date 15-02-2017 |
---|
33 | @version 1.0.0 |
---|
34 | """ |
---|
35 | |
---|
36 | ## Nombre de la consulta |
---|
37 | nombre_consulta = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control input-md',})) |
---|
38 | |
---|
39 | ## La consulta esta activa o no |
---|
40 | activa = forms.BooleanField(required=False,initial=True) |
---|
41 | |
---|
42 | |
---|
43 | class Meta: |
---|
44 | model = Consulta |
---|
45 | exclude = ['user'] |
---|
46 | |
---|
47 | class ConsultaPreguntaForm(forms.ModelForm): |
---|
48 | """! |
---|
49 | Clase del formulario que registra la consulta y la pregunta |
---|
50 | |
---|
51 | @author Rodrigo Boet (rboet at cenditel.gob.ve) |
---|
52 | @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> |
---|
53 | @date 15-02-2017 |
---|
54 | @version 1.0.0 |
---|
55 | """ |
---|
56 | def __init__(self, *args, **kwargs): |
---|
57 | """! |
---|
58 | Metodo que sobreescribe cuando se inicializa el formulario |
---|
59 | |
---|
60 | @author Rodrigo Boet (rboet at cenditel.gob.ve) |
---|
61 | @copyright GNU/GPLv2 |
---|
62 | @date 15-02-2017 |
---|
63 | @param self <b>{object}</b> Objeto que instancia la clase |
---|
64 | @param args <b>{list}</b> Lista de los argumentos |
---|
65 | @param kwargs <b>{dict}</b> Diccionario con argumentos |
---|
66 | @return Retorna el formulario validado |
---|
67 | """ |
---|
68 | super(ConsultaPreguntaForm, self).__init__(*args, **kwargs) |
---|
69 | |
---|
70 | self.fields['tipo_pregunta'].choices = cargar_tipo_pregunta() |
---|
71 | |
---|
72 | ## Nombre de la consulta |
---|
73 | nombre_consulta = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control input-md',})) |
---|
74 | |
---|
75 | ## La consulta esta activa o no |
---|
76 | activa = forms.BooleanField(required=False,initial=True) |
---|
77 | |
---|
78 | ## El texto de la pregunta |
---|
79 | texto_pregunta = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control input-md',}), |
---|
80 | label="Texto de la Pregunta") |
---|
81 | |
---|
82 | ## Tipo de pregunta |
---|
83 | tipo_pregunta = forms.ChoiceField(widget=forms.Select(attrs={'class':'form-control'}), |
---|
84 | label="Tipo de Pregunta") |
---|
85 | |
---|
86 | |
---|
87 | class Meta: |
---|
88 | model = Consulta |
---|
89 | exclude = ['user'] |
---|
90 | |
---|
91 | class ConsultaSearchForm(forms.Form): |
---|
92 | """! |
---|
93 | Clase del formulario para realizar busquedas y generar reportes |
---|
94 | |
---|
95 | @author Rodrigo Boet (rboet at cenditel.gob.ve) |
---|
96 | @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> |
---|
97 | @date 31-05-2017 |
---|
98 | @version 1.0.0 |
---|
99 | """ |
---|
100 | def __init__(self, *args, **kwargs): |
---|
101 | """! |
---|
102 | Metodo que sobreescribe cuando se inicializa el formulario |
---|
103 | |
---|
104 | @author Rodrigo Boet (rboet at cenditel.gob.ve) |
---|
105 | @copyright GNU/GPLv2 |
---|
106 | @date 31-05-2017 |
---|
107 | @param self <b>{object}</b> Objeto que instancia la clase |
---|
108 | @param args <b>{list}</b> Lista de los argumentos |
---|
109 | @param kwargs <b>{dict}</b> Diccionario con argumentos |
---|
110 | @return Retorna el formulario validado |
---|
111 | """ |
---|
112 | super(ConsultaSearchForm, self).__init__(*args, **kwargs) |
---|
113 | |
---|
114 | self.fields['estado'].choices = cargar_entidad() |
---|
115 | self.fields['municipio'].choices = cargar_municipios() |
---|
116 | self.fields['parroquia'].choices = cargar_parroquias() |
---|
117 | self.fields['tipo_pregunta'].choices = cargar_preguntas(3) |
---|
118 | |
---|
119 | ## Tipo de pregunta para generar el reporte |
---|
120 | tipo_pregunta = forms.ChoiceField(widget=forms.Select(attrs={'class':'form-control'}), |
---|
121 | label="Tipo de Pregunta") |
---|
122 | |
---|
123 | ## Objetivo de la constituyente |
---|
124 | objetivo = forms.ChoiceField( |
---|
125 | widget=forms.Select(attrs={'class':'form-control'}), |
---|
126 | label="Objetivo de la Asamblea Nacional Constituyente", |
---|
127 | choices = (('','Seleccione...'),)+OBJETIVOS, required = False |
---|
128 | ) |
---|
129 | |
---|
130 | ## estado |
---|
131 | estado = forms.ChoiceField(widget=forms.Select(attrs={'class': 'form-control input-md', |
---|
132 | 'onchange': "actualizar_combo(this.value,'base','Municipio','entidad','codigo','nombre','id_municipio')"}), |
---|
133 | required = False) |
---|
134 | |
---|
135 | ## municipio |
---|
136 | municipio = forms.ChoiceField(widget=forms.Select(attrs={'class': 'form-control input-md', |
---|
137 | 'onchange': "actualizar_combo(this.value,'base','Parroquia','municipio','codigo','nombre','id_parroquia')"}), |
---|
138 | required = False) |
---|
139 | |
---|
140 | ## parroquia |
---|
141 | parroquia = forms.ChoiceField(widget=forms.Select(attrs={'class': 'form-control input-md',}), |
---|
142 | required = False) |
---|
143 | |
---|
144 | ## sector |
---|
145 | sector = forms.ChoiceField( |
---|
146 | widget=forms.Select(attrs={'class': 'form-control input-md','onchange':'mostrar_sector(this.value);'}), |
---|
147 | label="Sector",choices=(('','Seleccione...'),)+SECTORES,required = False |
---|
148 | ) |
---|
149 | |
---|
150 | ## sector trabajador |
---|
151 | sector_trabajador = forms.ChoiceField( |
---|
152 | widget=forms.Select(attrs={'class': 'form-control input-md'}), |
---|
153 | label="Sector Trabajador",choices=(('','Seleccione...'),)+SECTOR_TRABAJADOR, |
---|
154 | required = False |
---|
155 | ) |
---|
156 | |
---|
157 | ## sector estudiante |
---|
158 | sector_estudiante = forms.ChoiceField( |
---|
159 | widget=forms.Select(attrs={'class': 'form-control input-md',}), |
---|
160 | label="Sector Estudiante",choices=(('','Seleccione...'),)+SECTOR_ESTUDIANTE, |
---|
161 | required = False |
---|
162 | ) |
---|