Conjunto de cambios 7310249 en consulta_publica para consulta


Ignorar:
Fecha y hora:
18/04/2017 17:03:13 (hace 7 años)
Autor:
rudmanmrrod <rudman22@…>
Branches:
master, base, constituyente, estudiantes, general, plan_patria, sala
Children:
bf6bc0b
Parents:
6abfabc
Mensaje:

Solventadas consultas en generales en la consulta y procesamiento, agregados graficos de barra y torta para las respuestas simple/multiple/si-no de la consulta, Agregado modelos de estado, municipio y parroquia de Argenis

Ubicación:
consulta
Ficheros:
3 añadidos
3 editados

Leyenda

No modificado
Añadido
Eliminado
  • consulta/templates/consulta.detail.html

    r6abfabc r7310249  
    2828    <a type="button" class="btn btn-danger" href="{% url 'consulta_delete' consulta.id %}"> Borrar</a>
    2929    {% if respuestas %}
    30         <a type="button" class="btn btn-primary" href="#"> Estadísticas <i class="glyphicon glyphicon-stats"></i></a>
     30        <a type="button" class="btn btn-primary" href="{% url 'consulta_stats' consulta.id %}"> Estadísticas <i class="glyphicon glyphicon-stats"></i></a>
    3131    {% endif %}
    3232    {% if respuestas_abierta %}
  • consulta/urls.py

    r6abfabc r7310249  
    2323    url(r'^create$', ConsultaCreate.as_view(), name = "consulta_create"),
    2424    url(r'^list$', ConsultaList.as_view(), name = "consulta_list"),
     25    url(r'^stats/(?P<pk>\d+)$', ConsultaStats.as_view(), name = "consulta_stats"),
    2526    url(r'^delete/(?P<pk>\d+)$', ConsultaDelete.as_view(), name = "consulta_delete"),
    2627    url(r'^detail/(?P<pk>\d+)$', ConsultaDetail.as_view(), name = "consulta_detail"),
  • consulta/views.py

    r6abfabc r7310249  
    216216       
    217217       
    218        
     218class ConsultaStats(TemplateView):
     219    """!
     220    Clase que gestiona las estadísticas de la consulta
     221
     222    @author Rodrigo Boet (rboet at cenditel.gob.ve)
     223    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
     224    @date 18-04-2017
     225    @version 1.0.0
     226    """
     227    template_name = "consulta.stats.html"
     228   
     229    def get_context_data(self, **kwargs):
     230        """!
     231        Metodo que permite cargar de nuevo valores en los datos de contexto de la vista
     232   
     233        @author Rodrigo Boet (rboet at cenditel.gob.ve)
     234        @copyright GNU/GPLv2
     235        @date 18-04-2017
     236        @param self <b>{object}</b> Objeto que instancia la clase
     237        @param kwargs <b>{object}</b> Objeto que contiene los datos de contexto
     238        @return Retorna los datos de contexto
     239        """
     240        preguntas_opciones = []
     241        preguntas_sino = []
     242        for pregunta in Pregunta.objects.filter(consulta_id=self.kwargs['pk']).exclude(tipo_pregunta_id=5).all():
     243            if pregunta.tipo_pregunta_id<3:
     244                preguntas_opciones.append(self.get_pregunta_opciones(pregunta.id,pregunta.texto_pregunta))
     245            elif pregunta.tipo_pregunta_id<5:
     246                preguntas_sino.append(self.get_pregunta_sino(pregunta.id,pregunta.texto_pregunta))
     247        kwargs['preguntas_opciones'] = preguntas_opciones
     248        kwargs['preguntas_sino'] = preguntas_sino
     249                       
     250        return super(ConsultaStats, self).get_context_data(**kwargs)
     251   
     252    def get_pregunta_opciones(self,id,titulo):
     253        """!
     254        Metodo que permite cargar las opciones para una pregunta simple o múltiple
     255   
     256        @author Rodrigo Boet (rboet at cenditel.gob.ve)
     257        @copyright GNU/GPLv2
     258        @date 18-04-2017
     259        @param self <b>{object}</b> Objeto que instancia la clase
     260        @param id <b>{int}</b> Entero con el id de la consulta
     261        @return Retorna los datos de contexto
     262        """
     263        options = []
     264        values = []
     265        for opcion in Opcion.objects.filter(pregunta_id=id).all():
     266            options.append(opcion.texto_opcion.encode('utf8'))
     267            values.append(RespuestaOpciones.objects.filter(opcion_id=opcion.id).count())
     268        data = {}
     269        data['titulo'] = titulo
     270        data['opciones'] = options
     271        data['valores'] = values
     272        return data
     273   
     274    def get_pregunta_sino(self,id,titulo):
     275        """!
     276        Metodo que permite cargar las opciones para una pregunta si o no
     277   
     278        @author Rodrigo Boet (rboet at cenditel.gob.ve)
     279        @copyright GNU/GPLv2
     280        @date 18-04-2017
     281        @param self <b>{object}</b> Objeto que instancia la clase
     282        @param id <b>{int}</b> Entero con el id de la consulta
     283        @return Retorna los datos de contexto
     284        """
     285        Si = RespuestaSino.objects.filter(respuesta=True).count()
     286        No = RespuestaSino.objects.filter(respuesta=False).count()
     287        data = {}
     288        data['titulo'] = titulo
     289        data['opciones'] = ['Si','No']
     290        data['valores'] = [Si, No]
     291        return data
     292   
     293   
    219294class OpcionesCreate(CreateView):
    220295    """!
Nota: Vea TracChangeset para ayuda en el uso del visor de conjuntos de cambios.