Conjunto de cambios 2645b43 en consulta_publica para participacion
- Fecha y hora:
- 23/05/2017 16:06:50 (hace 7 años)
- Branches:
- constituyente, estudiantes, general, plan_patria, sala
- Children:
- 0b2127c
- Parents:
- 5a86f8c (diferencia), 2fc7ee1 (diferencia)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent. - Ubicación:
- participacion
- Ficheros:
-
- 1 añadido
- 4 editados
Leyenda
- No modificado
- Añadido
- Eliminado
-
participacion/forms.py
r2fc7ee1 r5a86f8c 15 15 from django import forms 16 16 from base.functions import cargar_consulta 17 from base.models import Municipio, Parroquia 17 18 18 19 … … 46 47 consultas = forms.ChoiceField(widget=forms.Select(attrs={'class':'form-control'}), 47 48 label="Selecione una consulta") 49 50 51 class ParticipacionSearchForm(forms.Form): 52 """! 53 Clase del formulario de búsqueda 54 55 @author Rodrigo Boet (rboet at cenditel.gob.ve) 56 @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> 57 @date 23-02-2017 58 @version 1.0.0 59 """ 60 61 def __init__(self, *args, **kwargs): 62 super(ParticipacionSearchForm, self).__init__(*args, **kwargs) 63 #self.fields['objetivo'].choices = cargar_ambitos() 64 65 ## Sector 66 objetivo = forms.ChoiceField(widget=forms.Select(attrs={'class':'form-control'}), 67 label="Objetivo de la Asamblea Nacional Constituyente") -
participacion/models.py
r5a86f8c r2645b43 33 33 ## Respuesta 34 34 respuesta = models.BooleanField() 35 35 36 36 ## Id del objetivo 37 37 objetivo = models.IntegerField() … … 51 51 ## Relación con la opción de la respuesta 52 52 opcion = models.ForeignKey(Opcion) 53 53 54 54 ## Id del objetivo 55 55 objetivo = models.IntegerField() -
participacion/urls.py
r7e26d39 r5a86f8c 18 18 urlpatterns = [ 19 19 url(r'^participacion$', ParticipacionIndex.as_view(), name = "participacion_index"), 20 url(r'^participacion/(?P<pk>\d+)$', ParticipacionCreate.as_view(), name = "participacion_consulta"), 20 url(r'^participacion-busqueda/(?P<pk>\d+)$', ParticipacionSearch.as_view(), name = "participacion_busqueda"), 21 url(r'^participacion/(?P<pk>\d+)/(?P<id_objetivo>\d+)$', ParticipacionCreate.as_view(), name = "participacion_consulta"), 21 22 ] 22 23 -
participacion/views.py
rd9527db r5a86f8c 21 21 from django.contrib.auth.mixins import LoginRequiredMixin 22 22 from braces.views import GroupRequiredMixin 23 from .forms import ParticipacionSelectForm 23 from .forms import ParticipacionSelectForm, ParticipacionSearchForm 24 24 from .models import RespuestaAbierta, RespuestaOpciones, RespuestaSino 25 25 from consulta.models import Pregunta, Opcion … … 50 50 """ 51 51 consulta = self.request.POST['consultas'] 52 return reverse_lazy('participacion_ consulta',52 return reverse_lazy('participacion_busqueda', 53 53 kwargs={'pk': consulta}) 54 54 55 56 class ParticipacionSearch(GroupRequiredMixin,LoginRequiredMixin,FormView): 57 """! 58 Clase que gestiona la busqueda para la participación 59 60 @author Rodrigo Boet (rboet at cenditel.gob.ve) 61 @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a> 62 @date 23-02-2017 63 @version 1.0.0 64 """ 65 template_name = "participacion.search.html" 66 form_class = ParticipacionSearchForm 67 group_required = u"Participante" 68 69 def get_success_url(self): 70 """! 71 Metodo que permite definir la url de dirección al ser válido el formulario 72 73 @author Rodrigo Boet (rboet at cenditel.gob.ve) 74 @copyright GNU/GPLv2 75 @date 23-02-2017 76 @param self <b>{object}</b> Objeto que instancia la clase 77 @return Retorna la url 78 """ 79 objetivo = self.request.POST['objetivo'] 80 return reverse_lazy('participacion_consulta', kwargs={'pk': self.kwargs['pk'],'id_objetivo':objetivo}) 55 81 56 82 class ParticipacionCreate(GroupRequiredMixin,LoginRequiredMixin,TemplateView): … … 104 130 return super(ParticipacionCreate, self).get_context_data(**kwargs) 105 131 106 def post(self,request,pk ):132 def post(self,request,pk,id_objetivo): 107 133 """! 108 134 Metodo que sobreescribe el post del formulario … … 125 151 value = True if data[key][0] == 'Si' else False 126 152 justify_id = 'consulta_respuesta_justificar_'+str(parent_id) 127 self.crear_respuesta_sino(parent_id,value, self.request.user.id)153 self.crear_respuesta_sino(parent_id,value,ente_adscrito,self.request.user.id) 128 154 if(not value and justify_id in data.keys()): 129 155 respuesta = data[justify_id][0] 130 self.crear_respuesta_abierta(parent_id,respuesta, self.request.user.id,True)156 self.crear_respuesta_abierta(parent_id,respuesta,ente_adscrito,self.request.user.id,True) 131 157 elif 'radio' in key or 'check' in key: 132 158 for value in data[key]: 133 self.crear_respuesta_opciones(value, self.request.user.id)159 self.crear_respuesta_opciones(value,ente_adscrito,self.request.user.id) 134 160 elif 'abierta' in key: 135 161 value = data[key][0] … … 138 164 return redirect(reverse_lazy('participacion_busqueda',kwargs={'pk':pk})) 139 165 140 def crear_respuesta_sino(self,parent_id,value, user_id):166 def crear_respuesta_sino(self,parent_id,value,id_objetivo,user_id): 141 167 """! 142 168 Metodo para crear una respuesta de si/no … … 148 174 @param parent_id <b>{int}</b> Recibe el número del id del padre 149 175 @param value <b>{bool}</b> Recibe el valor de la respuesta 176 @param id_objetivo <b>{int}</b> Recibe el id del objetivo 150 177 @param user_id <b>{int}</b> Recibe el id del user 151 178 @return Retorna los datos de contexto … … 155 182 respuesta = RespuestaSino() 156 183 respuesta.pregunta = parent 184 respuesta.objetivo = id_objetivo 157 185 respuesta.respuesta = value 158 186 respuesta.user = user 159 187 respuesta.save() 160 188 161 def crear_respuesta_opciones(self,parent_id, user_id):189 def crear_respuesta_opciones(self,parent_id,id_objetivo,user_id): 162 190 """! 163 191 Metodo para crear una respuesta de selección simple y múltiple … … 168 196 @param self <b>{object}</b> Objeto que instancia la clase 169 197 @param parent_id <b>{int}</b> Recibe el número del id del padre 198 @param id_objetivo <b>{int}</b> Recibe el id del objetivo 170 199 @param user_id <b>{int}</b> Recibe el id del user 171 200 @return Retorna los datos de contexto … … 175 204 respuesta = RespuestaOpciones() 176 205 respuesta.opcion = parent 206 respuesta.objetivo = id_objetivo 177 207 respuesta.user = user 178 208 respuesta.save() 179 209 180 def crear_respuesta_abierta(self,parent_id,value, user_id,es_justificacion = False):210 def crear_respuesta_abierta(self,parent_id,value,id_objetivo,user_id,es_justificacion = False): 181 211 """! 182 212 Metodo para crear una respuesta abierta … … 188 218 @param parent_id <b>{int}</b> Recibe el número del id del padre 189 219 @param value <b>{str}</b> Recibe el valor de la respuesta 220 @param ente <b>{int}</b> Recibe el id del ente 190 221 @param user_id <b>{int}</b> Recibe el id del user 191 222 @param es_justificacion <b>{bool}</b> Recibe el párametro que indica si es una justifiación … … 196 227 respuesta = RespuestaAbierta() 197 228 respuesta.pregunta = parent 229 respuesta.objetivo = id_objetivo 198 230 respuesta.texto_respuesta = value 199 231 respuesta.user = user … … 214 246 if not request.is_ajax(): 215 247 return JsonResponse({'mensaje': False, 'error': str('La solicitud no es ajax')}) 248 objetivo = request.GET.get('objetivo', None) 216 249 consulta = request.GET.get('consulta', None) 217 if( consulta):218 respuesta_sino = RespuestaSino.objects.filter(pregunta__consulta=consulta )219 respuesta_abierta = RespuestaAbierta.objects.filter(pregunta__consulta=consulta )220 respuesta_opciones = RespuestaOpciones.objects.filter(opcion__pregunta__consulta=consulta )250 if(ente and consulta): 251 respuesta_sino = RespuestaSino.objects.filter(pregunta__consulta=consulta,objetivo=objetivo) 252 respuesta_abierta = RespuestaAbierta.objects.filter(pregunta__consulta=consulta,objetivo=objetivo) 253 respuesta_opciones = RespuestaOpciones.objects.filter(opcion__pregunta__consulta=consulta,objetivo=objetivo) 221 254 if(respuesta_sino or respuesta_abierta or respuesta_opciones): 222 255 return JsonResponse({'mensaje': True,'participacion':True}) 223 256 return JsonResponse({'mensaje': True,'participacion':False}) 224 257 else: 225 return JsonResponse({'mensaje': False, 'error': str('No envÃo la consulta')})258 return JsonResponse({'mensaje': False, 'error': str('No envÃo el ente y/o el id de la consulta')})
Nota: Vea TracChangeset
para ayuda en el uso del visor de conjuntos de cambios.