# -*- coding: utf-8 -*- """ Sistema Automatizado de Planificación Integral Comunal SAPIC Copyleft (@) 2017 CENDITEL nodo Mérida - Copyleft (@) 2017 CENDITEL nodo Mérida - https://planificacion.cenditel.gob.ve/trac/wiki/WikiStart#a5.-SistemaAutomatizadodePlanificaciónIntegralComunalSAPIC """ ## @package explicacion_situacional.forms # # Formularios correspondientes a la explicacion situacional # @author Ing. Leonel Paolo Hernandez Macchiarulo (lhernandez 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.core.exceptions import ValidationError from django.contrib.gis import forms from django.forms.fields import ( CharField, BooleanField, ) from explicacion_situacional.modelsExplicacion.modelsExplicacionesSituacional import * from explicacion_situacional.modelsEncuestas.modelsParticipacion import * class ExplicacionForms(forms.ModelForm): """! Clase que permite crear el formulario para la explicacion situacional @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve) @copyright GNU Public License versión 2 (GPLv2) @date 09-01-2017 @version 1.0.0 """ class Meta: """! Clase que construye los meta datos del formulario @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve) @copyright GNU Public License versión 2 (GPLv2) @date 18-09-2017 @version 1.0.0 """ model = ExplicacionSituacional fields = '__all__' def __init__(self, *args, **kwargs): """! Funcion que muestra el init del formulario @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve) @copyright GNU Public License versión 2 (GPLv2) @date 18-09-2017 """ super(ExplicacionForms, self).__init__(*args, **kwargs) self.fields["fk_organizacion"].widget.attrs.update({ "class": "form-control", "onchange": "cargar_datos_ubicacion($(this).val())" }) self.fields['fk_organizacion'].empty_label = 'Seleccione la organización social' self.fields['fk_organizacion'].label = 'Organización Social' self.fields['fk_organizacion'].required = True forms.OSMWidget.template_name = "openlayers-es.html" self.fields["coordenadas"].widget = forms.OSMWidget.template_name self.fields['coordenadas'].widget = forms.OSMWidget(attrs={ 'default_zoom': 5.2, 'map_width': 600, 'map_height': 400, 'default_lat': 8, 'default_lon': -66 }) self.fields['coordenadas'].required = True self.fields['map_cartografico'].widget.attrs.update({ 'class':'form-control', 'data-show-preview':'true', 'accept':'image/*' }) self.fields['map_cartografico'].label = 'Mapa cartográfico' self.fields['map_cartografico'].required = True class UbicacionForms(forms.Form): """! Clase que permite crear el formulario para el tipo de preguntas que requieren ubicacion @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve) @copyright GNU Public License versión 2 (GPLv2) @date 20-09-2017 @version 1.0.0 """ ubicacion = CharField() class Meta: """! Clase que construye los meta datos del formulario @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve) @copyright GNU Public License versión 2 (GPLv2) @date 18-09-2017 @version 1.0.0 """ fields = ('ubicacion') def __init__(self, *args, **kwargs): """! Funcion que muestra el init del formulario @author Ing. Leonel P. Hernandez M. (lhernandez at cenditel.gob.ve) @copyright GNU Public License versión 2 (GPLv2) @date 18-09-2017 """ super(UbicacionForms, self).__init__(*args, **kwargs) self.fields['ubicacion'].widget = forms.OSMWidget.template_name = 'openlayers-es.html' self.fields['ubicacion'].widget = forms.OSMWidget(attrs={ 'default_zoom': 5.2, 'map_width': 600, 'map_height': 400, 'default_lat': 8, 'default_lon': -66}) self.fields['ubicacion'].required = True class RespuestaSinoForm(forms.Form): """! Clase que permite crear el formulario para las respuestas de tipo SiNo @author Manuel Zambrano @copyright GNU Public License versión 2 (GPLv2) @date 29-08-2018 @version 1.0.0 """ respuesta = forms.BooleanField(label = 'Respuesta', widget = forms.Select(choices = ((True,'Si'), (False,'No') ) ), required = False ) justificacion = forms.CharField(label = 'Respuesta', widget = forms.Textarea(), required = False, max_length = 2000, ) def __init__(self,*arg,**kwargs): """! Funcion que muestra el init del formulario @author Manuel Zambrano @copyright GNU Public License versión 2 (GPLv2) @date 29-08-2018 @version 1.0.0 """ super(RespuestaSinoForm, self).__init__(*arg,**kwargs) self.fields['justificacion'].widget.attrs.update({'placeholder': 'Justificacion','style':'width:370px;height:191px;'}) def clean(self): """! Funcion que sobreescribe el metodo clean() de la clase, validación para el campo de justificacion @author Manuel Zambrano @copyright GNU Public License versión 2 (GPLv2) @date 29-08-2018 @version 1.0.0 """ cleaned_data = super(RespuestaSinoForm,self).clean() clean_respuesta = cleaned_data.get('respuesta') clean_justificacion = cleaned_data.get('justificacion') if not clean_respuesta: if not clean_justificacion: raise forms.ValidationError( "Verifique el campo de justificacion", code = "justificacion_error" ) class RespuestaAbiertaForm(forms.Form): """! Clase que permite crear el formulario para las respuestas de tipo Abierta @author Manuel Zambrano @copyright GNU Public License versión 2 (GPLv2) @date 29-08-2018 @version 1.0.0 """ respuesta = forms.CharField(label = 'Respuesta', widget = forms.Textarea(), max_length = 2000, ) def __init__(self,*arg,**kwargs): """! Funcion que muestra el init del formulario @author Manuel Zambrano @copyright GNU Public License versión 2 (GPLv2) @date 29-08-2018 @version 1.0.0 """ super(RespuestaAbiertaForm, self).__init__(*arg,**kwargs) self.fields['respuesta'].widget.attrs.update({'placeholder': 'Respuesta','style':'width:370px;height:191px;'}) class RespuestaOpcionesForm(forms.Form): """! Clase que permite crear el formulario para las respuestas de tipo Opciones @author Manuel Zambrano @copyright GNU Public License versión 2 (GPLv2) @date 29-08-2018 @version 1.0.0 """ respuesta = forms.ModelChoiceField(label = 'Opcion', queryset = Opcion.objects.all(), required = True, empty_label = None ) def __init__(self,*arg,**kwargs): """! Funcion que muestra el init del formulario @author Manuel Zambrano @copyright GNU Public License versión 2 (GPLv2) @date 29-08-2018 @version 1.0.0 """ super(RespuestaOpcionesForm, self).__init__(*arg,**kwargs)