Conjunto de cambios 59f3e60 en consulta_publica para consulta/views.py


Ignorar:
Fecha y hora:
20/07/2017 09:41:50 (hace 7 años)
Autor:
rudmanmrrod <rudman22@…>
Branches:
estudiantes, general, plan_patria, sala
Children:
8f1d98d
Parents:
bcf369a
Mensaje:

Modificados gráficos y filtros de reportes y estadísticas

Fichero:
1 editado

Leyenda

No modificado
Añadido
Eliminado
  • consulta/views.py

    rbe17cf0 r59f3e60  
    261261        opciones = []
    262262        valores = []
    263         for item in OBJETIVOS:
    264             respuesta = RespuestaAbierta.objects.filter(pregunta__consulta_id=self.kwargs['pk'],objetivo=item[0]).count()
    265             opciones.append(item[1].encode('utf8'))
    266             valores.append(respuesta)
     263        kwargs['participacion'] = []
     264        if RespuestaAbierta.objects.filter(pregunta__consulta_id=self.kwargs['pk']):
     265            for item in OBJETIVOS:
     266                respuesta = RespuestaAbierta.objects.filter(pregunta__consulta_id=self.kwargs['pk'],objetivo=item[0]).count()
     267                opciones.append(item[1].encode('utf8'))
     268                valores.append(respuesta)
     269            kwargs['participacion'].append({'titulo':'Respuestas por Objetivo de la Constituyente','opciones':json.dumps(opciones),'valores':valores})
     270        if RespuestaOpciones.objects.filter(opcion__pregunta__consulta_id=self.kwargs['pk']):
     271            kwargs['participacion'].append(self.get_pregunta_sino(self.kwargs['pk']))
     272        if RespuestaSino.objects.filter(pregunta__consulta_id=self.kwargs['pk']):
     273            kwargs['participacion'].append(self.get_pregunta_opciones(self.kwargs['pk']))
     274       
    267275        kwargs['usuarios'] = [self.get_users()]
    268         kwargs['participacion'] = [{'titulo':'Respuestas por Objetivo de la Constituyente','opciones':json.dumps(opciones),'valores':valores}]
    269276        return super(ConsultaStats, self).get_context_data(**kwargs)
    270277   
     
    288295       
    289296   
    290     def get_pregunta_opciones(self,id,titulo):
     297    def get_pregunta_opciones(self,id,titulo=''):
    291298        """!
    292299        Metodo que permite cargar las opciones para una pregunta simple o múltiple
     
    301308        options = []
    302309        values = []
    303         for opcion in Opcion.objects.filter(pregunta_id=id).all():
     310        for opcion in Opcion.objects.filter(pregunta__consulta_id=id).all():
    304311            options.append(opcion.texto_opcion.encode('utf8'))
    305312            values.append(RespuestaOpciones.objects.filter(opcion_id=opcion.id).count())
     313        if titulo=='':
     314            opc = Opcion.objects.filter(pregunta__consulta_id=id).first()
     315            titulo = opc.pregunta.texto_pregunta
    306316        data = {}
    307317        data['titulo'] = titulo
     
    310320        return data
    311321   
    312     def get_pregunta_sino(self,id,titulo):
     322    def get_pregunta_sino(self,id,titulo=''):
    313323        """!
    314324        Metodo que permite cargar las opciones para una pregunta si o no
     
    321331        @return Retorna los datos de contexto
    322332        """
    323         Si = RespuestaSino.objects.filter(respuesta=True).count()
    324         No = RespuestaSino.objects.filter(respuesta=False).count()
     333        if titulo=='':
     334            opc = RespuestaSino.objects.filter(pregunta__consulta_id=id).first()
     335            titulo = opc.pregunta.texto_pregunta
     336        Si = RespuestaSino.objects.filter(respuesta=True,pregunta__consulta_id=id).count()
     337        No = RespuestaSino.objects.filter(respuesta=False,pregunta__consulta_id=id).count()
    325338        data = {}
    326339        data['titulo'] = titulo
     
    353366        """
    354367        tipo_pregunta = self.request.POST['tipo_pregunta']
    355         objetivo = self.request.POST['objetivo']
     368        objetivo = self.request.POST.get('objetivo','')
     369        print objetivo
    356370        estado = self.request.POST.get('estado','')
    357371        municipio = self.request.POST.get('municipio','')
     
    360374        sector_trabajador = self.request.POST.get('sector_trabajador','')
    361375        sector_estudiante = self.request.POST.get('sector_estudiante','')
    362         url = '%s?estado=%s&municipio=%s&parroquia=%s&sector=%s&sector_trabajador=%s&sector_estudiante=%s' % (reverse_lazy('consulta_pdf',
    363             kwargs={'pk': self.kwargs['pk'],'tipo_pregunta': tipo_pregunta,'objetivo': objetivo}),
    364             estado,municipio,parroquia,sector,sector_trabajador,sector_estudiante)
     376        url = '%s?objetivo=%s&estado=%s&municipio=%s&parroquia=%s&sector=%s&sector_trabajador=%s&sector_estudiante=%s' % (reverse_lazy('consulta_pdf',
     377            kwargs={'pk': self.kwargs['pk'],'tipo_pregunta': tipo_pregunta}),
     378            objetivo,estado,municipio,parroquia,sector,sector_trabajador,sector_estudiante)
    365379        return url
    366380   
     
    403417        pk = int(self.kwargs['pk'])
    404418        tipo_pregunta = int(self.kwargs['tipo_pregunta'])
    405         objetivo = int(self.kwargs['objetivo'])
    406419        ## Variables por get
     420        objetivo = self.request.GET['objetivo']
    407421        estado = self.request.GET['estado']
    408422        municipio = self.request.GET['municipio']
     
    413427        resp = 0
    414428        est, mun, parr = 0, 0, 0
    415         preg = Pregunta.objects.get(pk=pk).texto_pregunta
    416         if tipo_pregunta == 1:
    417             resp = RespuestaSino.objects.filter(pregunta__consulta_id=pk,objetivo=objetivo)
    418         elif tipo_pregunta == 2:
     429        preg = Pregunta.objects.get(pk=tipo_pregunta)
     430        if preg.tipo_pregunta_id >=1 and preg.tipo_pregunta_id <3:
     431            resp = RespuestaSino.objects.filter(pregunta__consulta_id=pk)
     432        elif preg.tipo_pregunta_id >2 and preg.tipo_pregunta_id <5:   
     433            resp = RespuestaOpciones.objects.filter(opcion__pregunta__consulta_id=pk)
     434        elif preg.tipo_pregunta_id == 5:
    419435            resp = RespuestaAbierta.objects.filter(pregunta__consulta_id=pk,objetivo=objetivo)
    420         elif tipo_pregunta == 3:   
    421             resp = RespuestaOpciones.objects.filter(opcion__pregunta__consulta_id=pk,objetivo=objetivo)
    422436        ## Se validan los filtros por territorio
    423437        if estado == '':
     
    431445            kwargs['lugar'] = est.count()
    432446            kwargs['ubicacion'] = Entidad.objects.get(pk=estado)
     447            ## Muestra los datos por los municipios del estado
     448            datos = []
     449            for municipio in Municipio.objects.filter(entidad_id=estado).all():
     450                data = Perfil.objects.filter(parroquia__municipio_id=municipio.id,user_id__in=resp.values_list('user_id',flat=True)).count()
     451                datos.append([municipio.nombre,data])
     452            kwargs['municipios'] = datos
    433453        elif municipio!='' and parroquia=='':
    434454            mun = Perfil.objects.filter(parroquia__municipio_id=municipio,user_id__in=resp.values_list('user_id',flat=True))
    435455            kwargs['lugar'] = mun.count()
    436             kwargs['ubicacion'] = Municipio.objects.filter(pk=municipio)
     456            kwargs['ubicacion'] = Municipio.objects.get(pk=municipio)
     457            ## Muestra los datos por la parroquia
     458            datos = []
     459            for parroquia in Parroquia.objects.filter(municipio_id=municipio).all():
     460                data = Perfil.objects.filter(parroquia_id=parroquia.id,user_id__in=resp.values_list('user_id',flat=True)).count()
     461                datos.append([parroquia.nombre,data])
     462            kwargs['parroquias'] = datos
    437463        elif parroquia!='':
    438464            parr = Perfil.objects.filter(parroquia_id=parroquia,user_id__in=resp.values_list('user_id',flat=True))
     
    468494            kwargs['sector_texto'] = SECTOR[sector]
    469495        kwargs['respuestas'] = resp.count()
    470         kwargs['pregunta_texto'] = preg
    471         kwargs['objetivo_texto'] = OBJETIVOS[objetivo-1][1]
     496        kwargs['pregunta_texto'] = preg.texto_pregunta
     497        kwargs['objetivo_texto'] = OBJETIVOS[int(objetivo)-1][1] if objetivo else None
    472498        return super(ConsultaPdf, self).get_context_data(**kwargs)
    473499
Nota: Vea TracChangeset para ayuda en el uso del visor de conjuntos de cambios.