Conjunto e1c108e en gestor_consulta


Ignorar:
Fecha y hora:
22/06/2017 08:59:46 (hace 7 años)
Autor:
rudmanmrrod <rudman22@…>
Branches:
master
Children:
a984241
Parents:
d7b19bc
Mensaje:

Agregado servicio de consulta por token, documentado el codigo

Ficheros:
5 editados

Leyenda

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

    rd7b19bc re1c108e  
    6565   
    6666    ## Relación con el tipo de pregunta
    67     tipo_pregunta = models.ForeignKey(TipoPregunta)
     67    tipo_pregunta = models.ForeignKey(TipoPregunta,related_name='tipo_pregunta')
    6868   
    6969    ## Relación con la consulta
    70     consulta = models.ForeignKey(Consulta)
     70    consulta = models.ForeignKey(Consulta,related_name='preguntas')
    7171   
    7272   
     
    8484   
    8585    ## Relación con la pregunta
    86     pregunta = models.ForeignKey(Pregunta)
     86    pregunta = models.ForeignKey(Pregunta,related_name='opciones')
  • consulta/rest.py

    rd7b19bc re1c108e  
    1 from .serializers import ConsultaSerializer
    2 from .models import Consulta
     1# -*- coding: utf-8 -*-
     2"""
     3Sistema de Consulta Pública
     4
     5Copyleft (@) 2017 CENDITEL nodo Mérida - https://planificacion.cenditel.gob.ve/trac/wiki/ModeladoTopicos_2017
     6"""
     7## @package consulta.rest
     8#
     9# ViewSet (vistas de los rest) para el rest framework
     10# @author Rodrigo Boet (rboet at cenditel.gob.ve)
     11# @author <a href='http://www.cenditel.gob.ve'>Centro Nacional de Desarrollo e Investigación en Tecnologías Libres
     12# (CENDITEL) nodo Mérida - Venezuela</a>
     13# @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
     14# @version 1.0
     15from .serializers import ConsultaSerializer, PreguntaSerializer
     16from .models import Consulta, Pregunta
    317from rest_framework import viewsets
    418
    519
    620class ConsultaViewSet(viewsets.ModelViewSet):
    7     queryset = Consulta.objects.all()
     21    """!
     22    Clase que gestiona los datos rest de la consulta
     23
     24    @author Rodrigo Boet (rboet at cenditel.gob.ve)
     25    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
     26    @date 20-06-2017
     27    @version 1.0.0
     28    """
    829    serializer_class = ConsultaSerializer
     30    http_method_names = ['get','head']
     31   
     32    def get_queryset(self):
     33        """!
     34        Metodo que permite generar la consulta al modelo
     35   
     36        @author Rodrigo Boet (rboet at cenditel.gob.ve)
     37        @copyright GNU/GPLv2
     38        @date 22-06-2017
     39        @param self <b>{object}</b> Objeto que instancia la clase
     40        @return Retorna los datos de contexto
     41        """
     42        return Consulta.objects.filter(token=self.kwargs['token']).all()
  • consulta/serializers.py

    rd7b19bc re1c108e  
    1 from .models import Consulta
     1# -*- coding: utf-8 -*-
     2"""
     3Sistema de Consulta Pública
     4
     5Copyleft (@) 2017 CENDITEL nodo Mérida - https://planificacion.cenditel.gob.ve/trac/wiki/ModeladoTopicos_2017
     6"""
     7## @package consulta.serializers
     8#
     9# Serializadores de los modelos de consulta para el rest framework
     10# @author Rodrigo Boet (rboet at cenditel.gob.ve)
     11# @author <a href='http://www.cenditel.gob.ve'>Centro Nacional de Desarrollo e Investigación en Tecnologías Libres
     12# (CENDITEL) nodo Mérida - Venezuela</a>
     13# @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
     14# @version 1.0
     15from .models import Consulta, Pregunta, Opcion, TipoPregunta
    216from rest_framework import serializers
    317
     18# Serializers define the API representation.
     19class OpcionSerializer(serializers.HyperlinkedModelSerializer):
     20    """!
     21    Metodo que permite serializar el modelo opcion
     22
     23    @author Rodrigo Boet (rboet at cenditel.gob.ve)
     24    @copyright GNU/GPLv2
     25    @date 22-06-2017
     26    @param serializers.HyperlinkedModelSerializer <b>{object}</b> Objeto del serializer
     27    @return Retorna los datos de contexto
     28    """
     29   
     30    class Meta:
     31        model = Opcion
     32        fields = ('texto_opcion',)
     33
     34# Serializers define the API representation.
     35class TipoPreguntaSerializer(serializers.HyperlinkedModelSerializer):
     36    """!
     37    Metodo que permite serializar el modelo tipo de pregunta
     38
     39    @author Rodrigo Boet (rboet at cenditel.gob.ve)
     40    @copyright GNU/GPLv2
     41    @date 22-06-2017
     42    @param serializers.HyperlinkedModelSerializer <b>{object}</b> Objeto del serializer
     43    @return Retorna los datos de contexto
     44    """
     45   
     46    class Meta:
     47        model = TipoPregunta
     48        fields = ('tipo',)
     49
     50# Serializers define the API representation.
     51class PreguntaSerializer(serializers.HyperlinkedModelSerializer):
     52    """!
     53    Metodo que permite serializar el modelo pregunta
     54
     55    @author Rodrigo Boet (rboet at cenditel.gob.ve)
     56    @copyright GNU/GPLv2
     57    @date 20-06-2017
     58    @param serializers.HyperlinkedModelSerializer <b>{object}</b> Objeto del serializer
     59    @return Retorna los datos de contexto
     60    """
     61   
     62    tipo_pregunta = TipoPreguntaSerializer(read_only=True)
     63   
     64    opciones = OpcionSerializer(many=True, read_only=True)
     65   
     66    class Meta:
     67        model = Pregunta
     68        fields = ('texto_pregunta','tipo_pregunta','opciones')
    469
    570# Serializers define the API representation.
    671class ConsultaSerializer(serializers.HyperlinkedModelSerializer):
     72   
     73    preguntas = PreguntaSerializer(many=True, read_only=True)
    774    class Meta:
    875        model = Consulta
    9         fields = ('nombre_consulta', 'activa')
     76        fields = ('nombre_consulta', 'activa','preguntas')
     77       
  • rest/routers.py

    rd7b19bc re1c108e  
     1# -*- coding: utf-8 -*-
     2"""
     3Sistema de Consulta Pública
     4
     5Copyleft (@) 2017 CENDITEL nodo Mérida - https://planificacion.cenditel.gob.ve/trac/wiki/ModeladoTopicos_2017
     6"""
     7## @package rest.routers
     8#
     9# Routers de los viewset de la aplicaciones rest
     10# @author Rodrigo Boet (rboet at cenditel.gob.ve)
     11# @author <a href='http://www.cenditel.gob.ve'>Centro Nacional de Desarrollo e Investigación en Tecnologías Libres
     12# (CENDITEL) nodo Mérida - Venezuela</a>
     13# @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
     14# @version 1.0
    115from rest_framework.routers import DefaultRouter
    216from consulta.rest import ConsultaViewSet
     
    418router = DefaultRouter()
    519# ------------------------------------------
    6 router.register(r'consulta', ConsultaViewSet, 'consulta')
     20router.register(r'consulta/(?P<token>.+)', ConsultaViewSet, 'consulta')
Nota: Vea TracChangeset para ayuda en el uso del visor de conjuntos de cambios.