Browse Source

Fix #2518 (#2540)

pull/2614/head
Vinícius Cantuária 6 years ago
committed by Edward
parent
commit
f68a0f57ad
  1. 4
      sapl/materia/forms.py
  2. 46
      sapl/materia/views.py

4
sapl/materia/forms.py

@ -26,7 +26,7 @@ import django_filters
import sapl import sapl
from sapl.base.models import AppConfig, Autor, TipoAutor from sapl.base.models import AppConfig, Autor, TipoAutor
from sapl.comissoes.models import Comissao from sapl.comissoes.models import Comissao, Participacao
from sapl.compilacao.models import (STATUS_TA_IMMUTABLE_PUBLIC, from sapl.compilacao.models import (STATUS_TA_IMMUTABLE_PUBLIC,
STATUS_TA_PRIVATE) STATUS_TA_PRIVATE)
from sapl.crispy_layout_mixin import (SaplFormLayout, form_actions, to_column, from sapl.crispy_layout_mixin import (SaplFormLayout, form_actions, to_column,
@ -375,7 +375,7 @@ class RelatoriaForm(ModelForm):
widgets = {'comissao': forms.Select(attrs={'disabled': 'disabled'})} widgets = {'comissao': forms.Select(attrs={'disabled': 'disabled'})}
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super(RelatoriaForm, self).__init__(*args, **kwargs) super().__init__(*args, **kwargs)
def clean(self): def clean(self):
super(RelatoriaForm, self).clean() super(RelatoriaForm, self).clean()

46
sapl/materia/views.py

@ -1115,8 +1115,7 @@ class RelatoriaCrud(MasterDetailCrud):
try: try:
self.logger.debug("user=" + username + ". Tentando obter objeto Comissao de pk={}.".format( self.logger.debug("user=" + username + ". Tentando obter objeto Comissao de pk={}.".format(
context['form'].initial['comissao'])) context['form'].initial['comissao']))
comissao = Comissao.objects.get( comissao = Comissao.objects.get(pk=context['form'].initial['comissao'])
pk=context['form'].initial['comissao'])
except: except:
self.logger.error("user=" + username + ". Objeto Comissão de pk={} não encontrado.".format( self.logger.error("user=" + username + ". Objeto Comissão de pk={} não encontrado.".format(
context['form'].initial['comissao'])) context['form'].initial['comissao']))
@ -1125,17 +1124,20 @@ class RelatoriaCrud(MasterDetailCrud):
else: else:
self.logger.info("user=" + username + ". Objeto Comissao de pk={} obtido com sucesso.".format( self.logger.info("user=" + username + ". Objeto Comissao de pk={} obtido com sucesso.".format(
context['form'].initial['comissao'])) context['form'].initial['comissao']))
composicao = comissao.composicao_set.order_by(
'-periodo__data_inicio').first() materia = MateriaLegislativa.objects.get(pk=self.kwargs.get('pk'))
participacao = Participacao.objects.filter( ano_materia = materia.ano
composicao=composicao)
comissao = Comissao.objects.get(pk=context['form'].initial['comissao'])
parlamentares = [] composicoes = comissao.composicao_set.all()
parlamentares.append(['', '---------']) composicao = comissao.composicao_set.filter(periodo__data_inicio__year=ano_materia)
for p in participacao:
if p.titular: participacoes = Participacao.objects.select_related().filter(composicao=composicao)
parlamentares.append(
[p.parlamentar.id, p.parlamentar.nome_parlamentar]) parlamentares = [('', '---------')] + [
(participacao.parlamentar.id, participacao.parlamentar.nome_parlamentar) for participacao in
participacoes if participacao.titular]
context['form'].fields['parlamentar'].choices = parlamentares context['form'].fields['parlamentar'].choices = parlamentares
return context return context
@ -1179,13 +1181,19 @@ class RelatoriaCrud(MasterDetailCrud):
else: else:
self.logger.info("user=" + username + ". Objeto Comissao de pk={} obtido com sucesso.".format( self.logger.info("user=" + username + ". Objeto Comissao de pk={} obtido com sucesso.".format(
context['form'].initial['comissao'])) context['form'].initial['comissao']))
composicao = comissao.composicao_set.order_by(
'-periodo__data_inicio').first()
participacao = Participacao.objects.filter(
composicao=composicao)
parlamentares = [[p.parlamentar.id, p.parlamentar.nome_parlamentar] for relatoria = Relatoria.objects.select_related('materia').get(pk=self.kwargs.get('pk'))
p in participacao if p.titular] ano_materia = relatoria.materia.ano
comissao = Comissao.objects.get(pk=context['form'].initial['comissao'])
composicoes = comissao.composicao_set.all()
composicao = comissao.composicao_set.filter(periodo__data_inicio__year=ano_materia)
participacoes = Participacao.objects.select_related().filter(composicao=composicao)
parlamentares = [('', '---------')] + [
(participacao.parlamentar.id, participacao.parlamentar.nome_parlamentar) for participacao in
participacoes if participacao.titular]
context['form'].fields['parlamentar'].choices = parlamentares context['form'].fields['parlamentar'].choices = parlamentares

Loading…
Cancel
Save