# -*- coding: utf-8 -*-
"""
Sistema de Consulta Pública
Copyleft (@) 2017 CENDITEL nodo Mérida - https://planificacion.cenditel.gob.ve/trac/wiki/ModeladoTopicos_2017
"""
## @package consulta.forms
#
# Formulario correspondiente a la aplicación consulta
# @author Rodrigo Boet (rboet at cenditel.gob.ve)
# @author Centro Nacional de Desarrollo e Investigación en Tecnologías Libres
# (CENDITEL) nodo Mérida - Venezuela
# @copyright GNU Public License versión 2 (GPLv2)
# @version 1.0
from django import forms
from .models import Consulta
from base.functions import (
cargar_tipo_pregunta, cargar_entidad, cargar_municipios,
cargar_parroquias, cargar_preguntas
)
from base.constant import (
OBJETIVOS, SECTORES, PARTICIPACION,
SECTOR_ESTUDIANTE, SECTOR_TRABAJADOR
)
class ConsultaForm(forms.ModelForm):
"""!
Clase del formulario que registra la consulta
@author Rodrigo Boet (rboet at cenditel.gob.ve)
@copyright GNU Public License versión 2 (GPLv2)
@date 15-02-2017
@version 1.0.0
"""
## Nombre de la consulta
nombre_consulta = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control input-md',}))
## La consulta esta activa o no
activa = forms.BooleanField(required=False,initial=True)
class Meta:
model = Consulta
exclude = ['user']
class ConsultaPreguntaForm(forms.ModelForm):
"""!
Clase del formulario que registra la consulta y la pregunta
@author Rodrigo Boet (rboet at cenditel.gob.ve)
@copyright GNU Public License versión 2 (GPLv2)
@date 15-02-2017
@version 1.0.0
"""
def __init__(self, *args, **kwargs):
"""!
Metodo que sobreescribe cuando se inicializa el formulario
@author Rodrigo Boet (rboet at cenditel.gob.ve)
@copyright GNU/GPLv2
@date 15-02-2017
@param self {object} Objeto que instancia la clase
@param args {list} Lista de los argumentos
@param kwargs {dict} Diccionario con argumentos
@return Retorna el formulario validado
"""
super(ConsultaPreguntaForm, self).__init__(*args, **kwargs)
self.fields['tipo_pregunta'].choices = cargar_tipo_pregunta()
## Nombre de la consulta
nombre_consulta = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control input-md',}))
## La consulta esta activa o no
activa = forms.BooleanField(required=False,initial=True)
## El texto de la pregunta
texto_pregunta = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control input-md',}),
label="Texto de la Pregunta")
## Tipo de pregunta
tipo_pregunta = forms.ChoiceField(widget=forms.Select(attrs={'class':'form-control'}),
label="Tipo de Pregunta")
class Meta:
model = Consulta
exclude = ['user']
class ConsultaSearchForm(forms.Form):
"""!
Clase del formulario para realizar busquedas y generar reportes
@author Rodrigo Boet (rboet at cenditel.gob.ve)
@copyright GNU Public License versión 2 (GPLv2)
@date 31-05-2017
@version 1.0.0
"""
def __init__(self, *args, **kwargs):
"""!
Metodo que sobreescribe cuando se inicializa el formulario
@author Rodrigo Boet (rboet at cenditel.gob.ve)
@copyright GNU/GPLv2
@date 31-05-2017
@param self {object} Objeto que instancia la clase
@param args {list} Lista de los argumentos
@param kwargs {dict} Diccionario con argumentos
@return Retorna el formulario validado
"""
super(ConsultaSearchForm, self).__init__(*args, **kwargs)
self.fields['estado'].choices = cargar_entidad()
self.fields['municipio'].choices = cargar_municipios()
self.fields['parroquia'].choices = cargar_parroquias()
self.fields['tipo_pregunta'].choices = cargar_preguntas(3)
## Tipo de pregunta para generar el reporte
tipo_pregunta = forms.ChoiceField(widget=forms.Select(attrs={'class':'form-control'}),
label="Tipo de Pregunta")
## Objetivo de la constituyente
objetivo = forms.ChoiceField(
widget=forms.Select(attrs={'class':'form-control'}),
label="Objetivo de la Asamblea Nacional Constituyente",
choices = (('','Seleccione...'),)+OBJETIVOS, required = False
)
## estado
estado = forms.ChoiceField(widget=forms.Select(attrs={'class': 'form-control input-md',
'onchange': "actualizar_combo(this.value,'base','Municipio','entidad','codigo','nombre','id_municipio')"}),
required = False)
## municipio
municipio = forms.ChoiceField(widget=forms.Select(attrs={'class': 'form-control input-md',
'onchange': "actualizar_combo(this.value,'base','Parroquia','municipio','codigo','nombre','id_parroquia')"}),
required = False)
## parroquia
parroquia = forms.ChoiceField(widget=forms.Select(attrs={'class': 'form-control input-md',}),
required = False)
## sector
sector = forms.ChoiceField(
widget=forms.Select(attrs={'class': 'form-control input-md','onchange':'mostrar_sector(this.value);'}),
label="Sector",choices=(('','Seleccione...'),)+SECTORES,required = False
)
## sector trabajador
sector_trabajador = forms.ChoiceField(
widget=forms.Select(attrs={'class': 'form-control input-md'}),
label="Sector Trabajador",choices=(('','Seleccione...'),)+SECTOR_TRABAJADOR,
required = False
)
## sector estudiante
sector_estudiante = forms.ChoiceField(
widget=forms.Select(attrs={'class': 'form-control input-md',}),
label="Sector Estudiante",choices=(('','Seleccione...'),)+SECTOR_ESTUDIANTE,
required = False
)