Browse Source

feat: #3769 (#3770)

pull/3772/head
LeandroJataí 2 months ago
committed by GitHub
parent
commit
a39e2698d4
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 17
      sapl/api/views_comissoes.py
  2. 26
      sapl/materia/migrations/0087_update_viewdb_materiaemtramitacao.py
  3. 12
      sapl/materia/models.py

17
sapl/api/views_comissoes.py

@ -3,6 +3,10 @@ from django.apps.registry import apps
from drfautoapi.drfautoapi import ApiViewSetConstrutor, \
customize, wrapper_queryset_response_for_drf_action
from sapl.comissoes.models import Comissao
from rest_framework.decorators import action
from sapl.materia.models import MateriaEmTramitacao
ApiViewSetConstrutor.build_class(
@ -10,3 +14,16 @@ ApiViewSetConstrutor.build_class(
apps.get_app_config('comissoes')
]
)
@customize(Comissao)
class _ComissaoViewSet:
@action(detail=True)
def materiaemtramitacao(self, request, *args, **kwargs):
return self.get_materiaemtramitacao(**kwargs)
@wrapper_queryset_response_for_drf_action(model=MateriaEmTramitacao)
def get_materiaemtramitacao(self, **kwargs):
return self.get_queryset().filter(
unidade_tramitacao_atual__comissao=kwargs['pk'],
)

26
sapl/materia/migrations/0087_update_viewdb_materiaemtramitacao.py

@ -0,0 +1,26 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.20 on 2019-08-27 20:13
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('materia', '0086_auto_20240711_1400'),
]
operations = [
migrations.RunSQL("""
create or replace view materia_materiaemtramitacao as
select m.id as id,
m.id as materia_id,
t.id as tramitacao_id,
t.unidade_tramitacao_destino_id as unidade_tramitacao_atual_id
from materia_materialegislativa m
inner join materia_tramitacao t on (m.id = t.materia_id)
where t.id = (select max(id) from materia_tramitacao where materia_id = m.id)
order by m.id DESC
"""),
]

12
sapl/materia/models.py

@ -934,7 +934,7 @@ class Proposicao(models.Model):
"""
Ao ser recebida, irá gerar uma nova matéria ou um documento acessorio de uma existente
materia_gerada = models.ForeignKey(
MateriaLegislativa,
blank=True,
@ -1263,6 +1263,16 @@ class MateriaEmTramitacao(models.Model):
MateriaLegislativa, on_delete=models.DO_NOTHING)
tramitacao = models.ForeignKey(Tramitacao, on_delete=models.DO_NOTHING)
unidade_tramitacao_atual = models.ForeignKey(
UnidadeTramitacao,
related_name='materiaemtramitacao_set',
on_delete=models.DO_NOTHING,
verbose_name=_('Unidade de Tramitação Atual'),
db_column='unidade_tramitacao_atual_id',
null=True,
blank=True
)
class Meta:
managed = False
db_table = "materia_materiaemtramitacao"

Loading…
Cancel
Save