mirror of https://github.com/interlegis/sapl.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.5 KiB
47 lines
1.5 KiB
|
|
from django.apps.registry import apps
|
|
from rest_framework.decorators import action
|
|
from rest_framework.response import Response
|
|
|
|
from drfautoapi.drfautoapi import ApiViewSetConstrutor, \
|
|
customize, wrapper_queryset_response_for_drf_action
|
|
from sapl.api.serializers import ChoiceSerializer,\
|
|
SessaoPlenariaECidadaniaSerializer
|
|
from sapl.sessao.models import SessaoPlenaria, ExpedienteSessao
|
|
from sapl.utils import choice_anos_com_sessaoplenaria
|
|
|
|
|
|
ApiViewSetConstrutor.build_class(
|
|
[
|
|
apps.get_app_config('sessao')
|
|
]
|
|
)
|
|
|
|
|
|
@customize(SessaoPlenaria)
|
|
class _SessaoPlenariaViewSet:
|
|
|
|
@action(detail=False)
|
|
def years(self, request, *args, **kwargs):
|
|
years = choice_anos_com_sessaoplenaria()
|
|
|
|
serializer = ChoiceSerializer(years, many=True)
|
|
return Response(serializer.data)
|
|
|
|
@action(detail=True)
|
|
def expedientes(self, request, *args, **kwargs):
|
|
return self.get_expedientes()
|
|
|
|
@wrapper_queryset_response_for_drf_action(model=ExpedienteSessao)
|
|
def get_expedientes(self):
|
|
return self.get_queryset().filter(sessao_plenaria_id=self.kwargs['pk'])
|
|
|
|
@action(detail=True)
|
|
def ecidadania(self, request, *args, **kwargs):
|
|
self.serializer_class = SessaoPlenariaECidadaniaSerializer
|
|
return self.retrieve(request, *args, **kwargs)
|
|
|
|
@action(detail=False, url_path='ecidadania')
|
|
def ecidadania_list(self, request, *args, **kwargs):
|
|
self.serializer_class = SessaoPlenariaECidadaniaSerializer
|
|
return self.list(request, *args, **kwargs)
|
|
|