Conjunto de cambios 39b8a44 en sapic para explicacion_situacional/functions.py
- Fecha y hora:
- 10/09/2018 09:44:04 (hace 6 años)
- Branches:
- master
- Children:
- 8837872
- Parents:
- 1901d86
- git-author:
- Manuel Zambrano <mzambrano595@…> (10/09/18 09:38:13)
- git-committer:
- Manuel Zambrano <mzambrano595@…> (10/09/18 09:44:04)
- Fichero:
-
- 1 editado
Leyenda
- No modificado
- Añadido
- Eliminado
-
explicacion_situacional/functions.py
r72e62e0 r39b8a44 18 18 from django.contrib import messages 19 19 from django.shortcuts import render, redirect 20 from django.urls import reverse_lazy 20 21 21 22 from explicacion_situacional.modelsEncuestas.modelsParticipacion import ( … … 23 24 RespuestaAbierta, RespuestaUbicacion 24 25 ) 26 27 from django.views.generic import ( 28 TemplateView, 29 UpdateView 30 ) 31 from django.contrib import messages 32 from utils.views import LoginRequeridoPerAuth 33 34 from django.contrib.gis import forms 35 36 from explicacion_situacional.modelsEncuestas.modelsConsultas import ( 37 Consulta, 38 Opcion, 39 ) 40 41 42 43 from .forms import ( 44 RespuestaSinoForm, RespuestaAbiertaForm , 45 RespuestaOpcionesForm 46 ) 47 25 48 26 49 … … 54 77 registro.save() 55 78 return redirect('explicacion:caracterizacion_economica') 79 80 81 class ModificarRespuestaView(LoginRequeridoPerAuth, TemplateView): 82 """! 83 Clase que mustra el template y gestiona la vista para modificar una respuesta en una encuesta 84 85 @author Manuel Zambrano 86 @copyright <a href='âhttp://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> 87 @date 30-08-2018 88 @version 1.0.0 89 """ 90 91 template_name = 'modificar.respuesta.html' 92 group_required = [u"Administradores", u"Voceros", u"Integrantes"] 93 94 95 def get(self,*arg,**kwargs): 96 """! 97 Metodo que maneja las peticiones HTTP GET de la vista, Carga los valores iniciales al formulario 98 99 @author Manuel Zambrano 100 @copyright <a href='âhttp://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> 101 @date 30-08-2018 102 @param self <b>{object}</b> Objeto que instancia la clase 103 @param kwargs <b>{object}</b> Objeto que contiene las variables de la url 104 @param arg <b>{object}</b> 105 @return retorna los datos de contexto 106 """ 107 108 if kwargs['tipo'] == '1' : 109 respuesta = RespuestaOpciones.objects.select_related().get( 110 pk = kwargs['pk'], 111 user=self.request.user 112 ) 113 formulario = RespuestaOpcionesForm() 114 formulario.fields['respuesta']._set_queryset(Opcion.objects.filter( 115 pregunta=respuesta.opcion.pregunta 116 )) 117 formulario.fields['respuesta'].initial= respuesta.opcion 118 119 120 if kwargs['tipo'] == '4' : #Hacer para cada tipo de respuesta8 121 respuesta = RespuestaSino.objects.select_related().get( 122 pk = kwargs['pk'], 123 user=self.request.user 124 ) 125 if respuesta.respuesta == True: 126 formulario = RespuestaSinoForm(initial={ 127 'respuesta':respuesta.respuesta, 128 }) 129 else: 130 justificacion = RespuestaAbierta.objects.select_related().get( 131 user = self.request.user, 132 pregunta = respuesta.pregunta 133 ) 134 formulario = RespuestaSinoForm(initial={ 135 'respuesta':respuesta.respuesta, 136 'justificacion':justificacion.texto_respuesta, 137 }) 138 139 if kwargs['tipo'] == '5' : 140 respuesta = RespuestaAbierta.objects.select_related().get( 141 pk = kwargs['pk'], 142 user=self.request.user 143 ) 144 formulario = RespuestaAbiertaForm(initial={ 145 'respuesta':respuesta.texto_respuesta, 146 }) 147 148 kwargs['formulario'] = formulario 149 kwargs['o'] = respuesta 150 151 152 return super(ModificarRespuestaView,self).get(self,**kwargs) 153 154 def post(self,*arg,**kwargs): 155 """! 156 Metodo que maneja las peticiones HTTP POST de la vista, Guarda la modificacion de la pregunta 157 158 @author Manuel Zambrano 159 @copyright <a href='âhttp://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> 160 @date 03-09-2018 161 @param self <b>{object}</b> Objeto que instancia la clase 162 @param kwargs <b>{object}</b> Objeto que contiene las variables de la url 163 @param arg <b>{object}</b> 164 @return Redirecciona a la tabla de ecuestas 165 """ 166 167 if kwargs['tipo'] == '1' : 168 respuesta = RespuestaOpciones.objects.select_related().get( 169 pk = kwargs['pk'], 170 user=self.request.user 171 ) 172 formulario = RespuestaOpcionesForm(self.request.POST,initial={ 173 'respuesta':respuesta.opcion, 174 }) 175 if formulario.is_valid() and formulario.has_changed(): 176 opcion = formulario.cleaned_data['respuesta'] 177 respuesta.opcion = opcion 178 respuesta.save() 179 180 if kwargs['tipo'] == '5': 181 respuesta = RespuestaAbierta.objects.select_related().get( 182 pk = kwargs['pk'], 183 user=self.request.user 184 ) 185 formulario = RespuestaAbiertaForm(self.request.POST, initial={ 186 'respuesta':respuesta.texto_respuesta, 187 }) 188 if formulario.is_valid() and formulario.has_changed(): 189 texto_respuesta = formulario.cleaned_data['respuesta'] 190 respuesta.texto_respuesta = texto_respuesta 191 respuesta.save() 192 193 if kwargs['tipo'] == '4': 194 respuesta = RespuestaSino.objects.select_related().get( 195 pk = kwargs['pk'], 196 user = self.request.user 197 ) 198 formulario = RespuestaSinoForm(self.request.POST) 199 if formulario.is_valid(): 200 if formulario.cleaned_data['respuesta'] : 201 respuesta.respuesta = formulario.cleaned_data['respuesta'] 202 respuesta.save() 203 else: 204 try: 205 justificacion = RespuestaAbierta.objects.select_related().get( 206 user = self.request.user, 207 pregunta = respuesta.pregunta 208 ) 209 texto_respuesta = formulario.cleaned_data['justificacion'] 210 justificacion.texto_respuesta = texto_respuesta 211 justificacion.es_justificacion = True 212 respuesta.respuesta = formulario.cleaned_data['respuesta'] 213 respuesta.save() 214 justificacion.save() 215 except: 216 justificacion = RespuestaAbierta() 217 justificacion.pregunta = respuesta.pregunta 218 justificacion.texto_respuesta = formulario.cleaned_data['justificacion'] 219 justificacion.user = self.request.user 220 justificacion.es_justificacion = True 221 justificacion.save() 222 respuesta.respuesta = formulario.cleaned_data['respuesta'] 223 respuesta.save() 224 else : 225 messages.error(self.request, 'Error el formulario \ 226 No es Valido') #provicional, mientras se valida el formulario con js 227 return redirect(self.request.META.get("HTTP_REFERER")) 228
Nota: Vea TracChangeset
para ayuda en el uso del visor de conjuntos de cambios.