diff --git a/sapl/api/views.py b/sapl/api/views.py index a8f6f3349..74a7f8d04 100644 --- a/sapl/api/views.py +++ b/sapl/api/views.py @@ -27,7 +27,7 @@ from sapl.materia.models import Proposicao, TipoMateriaLegislativa,\ from sapl.parlamentares.models import Parlamentar from sapl.protocoloadm.models import DocumentoAdministrativo,\ DocumentoAcessorioAdministrativo, TramitacaoAdministrativo -from sapl.sessao.models import SessaoPlenaria +from sapl.sessao.models import SessaoPlenaria, ExpedienteSessao from sapl.utils import models_with_gr_for_model, choice_anos_com_sessaoplenaria class BusinessRulesNotImplementedMixin: @@ -497,3 +497,17 @@ class _SessaoPlenariaViewSet: serializer = ChoiceSerializer(years, many=True) return Response(serializer.data) + + @action(detail=True) + def expedientes(self, request, *args, **kwargs): + + sessao = self.get_object() + + page = self.paginate_queryset(sessao.expedientesessao_set.all()) + if page is not None: + serializer = SaplApiViewSetConstrutor.get_class_for_model( + ExpedienteSessao).serializer_class(page, many=True) + return self.get_paginated_response(serializer.data) + + serializer = self.get_serializer(page, many=True) + return Response(serializer.data) diff --git a/sapl/sessao/models.py b/sapl/sessao/models.py index 7267e78fc..725898b57 100644 --- a/sapl/sessao/models.py +++ b/sapl/sessao/models.py @@ -290,8 +290,11 @@ class TipoExpediente(models.Model): @reversion.register() class ExpedienteSessao(models.Model): # ExpedienteSessaoPlenaria - sessao_plenaria = models.ForeignKey(SessaoPlenaria, - on_delete=models.CASCADE) + sessao_plenaria = models.ForeignKey( + SessaoPlenaria, + on_delete=models.CASCADE, + related_name='expedientesessao_set' + ) tipo = models.ForeignKey(TipoExpediente, on_delete=models.PROTECT) conteudo = models.TextField( blank=True, verbose_name=_('Conteúdo do expediente')) @@ -379,7 +382,7 @@ class OradorExpediente(AbstractOrador): # OradoresExpediente @reversion.register() -class OradorOrdemDia(AbstractOrador): # OradoresOrdemDia +class OradorOrdemDia(AbstractOrador): # OradoresOrdemDia class Meta: verbose_name = _('Orador da Ordem do Dia') @@ -584,10 +587,14 @@ class ResumoOrdenacao(models.Model): oitavo = models.CharField(max_length=30) nono = models.CharField(max_length=30) decimo = models.CharField(max_length=30) - decimo_primeiro = models.CharField(max_length=30,default="Ocorrências da Sessão") - decimo_segundo = models.CharField(max_length=30, default="Votos Nominais Mat Expediente") - decimo_terceiro = models.CharField(max_length=30, default="Votos Nominais Mat Ordem Dia") - decimo_quarto = models.CharField(max_length=30, default="Oradores da Ordem do Dia") + decimo_primeiro = models.CharField( + max_length=30, default="Ocorrências da Sessão") + decimo_segundo = models.CharField( + max_length=30, default="Votos Nominais Mat Expediente") + decimo_terceiro = models.CharField( + max_length=30, default="Votos Nominais Mat Ordem Dia") + decimo_quarto = models.CharField( + max_length=30, default="Oradores da Ordem do Dia") class Meta: verbose_name = _('Ordenação do Resumo de uma Sessão') @@ -596,6 +603,7 @@ class ResumoOrdenacao(models.Model): def __str__(self): return 'Ordenação do Resumo de uma Sessão' + @reversion.register() class TipoRetiradaPauta(models.Model): descricao = models.CharField(max_length=150, verbose_name=_('Descrição')) @@ -687,6 +695,7 @@ class JustificativaAusencia(models.Model): using=using, update_fields=update_fields) + class RetiradaPauta(models.Model): materia = models.ForeignKey(MateriaLegislativa, on_delete=models.CASCADE,