Browse Source

HOT-FIX: Verifica existencia de tramitação

pull/3231/head
Vinícius Cantuária 5 years ago
parent
commit
0c7a26ab5f
  1. 12
      sapl/relatorios/views.py
  2. 78
      sapl/sessao/views.py

12
sapl/relatorios/views.py

@ -593,16 +593,17 @@ def get_sessao_plenaria(sessao, casa):
# Lista das matérias do Expediente, incluindo o resultado das votacoes # Lista das matérias do Expediente, incluindo o resultado das votacoes
lst_expediente_materia = [] lst_expediente_materia = []
for expediente_materia in ExpedienteMateria.objects.filter(sessao_plenaria=sessao): for expediente_materia in ExpedienteMateria.objects.select_related("materia").filter(sessao_plenaria=sessao):
# seleciona os detalhes de uma matéria # seleciona os detalhes de uma matéria
materia = expediente_materia.materia materia = expediente_materia.materia
materia_em_tramitacao = materia.materiaemtramitacao_set.first()
dic_expediente_materia = { dic_expediente_materia = {
"num_ordem": expediente_materia.numero_ordem, "num_ordem": expediente_materia.numero_ordem,
"id_materia": "{} {} {}/{}".format(materia.tipo.sigla, materia.tipo.descricao, str(materia.numero), "id_materia": f"{materia.tipo.sigla} {materia.tipo.descricao} {str(materia.numero)}/{str(materia.ano)}",
str(materia.ano)),
"des_numeracao": ' ', "des_numeracao": ' ',
"des_turno": get_turno(materia)[0], "des_turno": get_turno(materia)[0],
"situacao": materia.materiaemtramitacao_set.first().tramitacao.status, "situacao": materia_em_tramitacao.tramitacao.status if materia_em_tramitacao else _("Não informada"),
"txt_ementa": str(materia.ementa), "txt_ementa": str(materia.ementa),
"materia_observacao": materia.observacao, "materia_observacao": materia.observacao,
"ordem_observacao": expediente_materia.observacao, "ordem_observacao": expediente_materia.observacao,
@ -701,6 +702,7 @@ def get_sessao_plenaria(sessao, casa):
if numeracao: if numeracao:
dic_votacao["des_numeracao"] = (str(numeracao.numero_materia) + '/' + str(numeracao.ano_materia)) dic_votacao["des_numeracao"] = (str(numeracao.numero_materia) + '/' + str(numeracao.ano_materia))
materia_em_tramitacao = materia.materiaemtramitacao_set.first()
dic_votacao.update({ dic_votacao.update({
"des_turno": get_turno(materia)[0], "des_turno": get_turno(materia)[0],
# https://github.com/interlegis/sapl/issues/1009 # https://github.com/interlegis/sapl/issues/1009
@ -708,7 +710,7 @@ def get_sessao_plenaria(sessao, casa):
"materia_observacao": materia.observacao, "materia_observacao": materia.observacao,
"ordem_observacao": html.unescape(votacao.observacao), "ordem_observacao": html.unescape(votacao.observacao),
"nom_autor": '', "nom_autor": '',
"situacao": materia.materiaemtramitacao_set.first().tramitacao.status "situacao": materia_em_tramitacao.tramitacao.status if materia_em_tramitacao else _("Não informada")
}) })
autoria = materia.autoria_set.all() autoria = materia.autoria_set.all()

78
sapl/sessao/views.py

@ -202,60 +202,46 @@ def customize_link_materia(context, pk, has_permission, is_expediente):
for i, row in enumerate(context['rows']): for i, row in enumerate(context['rows']):
materia = context['object_list'][i].materia materia = context['object_list'][i].materia
obj = context['object_list'][i] obj = context['object_list'][i]
url_materia = reverse('sapl.materia:materialegislativa_detail', url_materia = reverse('sapl.materia:materialegislativa_detail', kwargs={'pk': materia.id})
kwargs={'pk': materia.id}) numeracao = materia.numeracao_set.first() if materia.numeracao_set.first() else "-"
numeracao = materia.numeracao_set.first() autoria = materia.autoria_set.filter(primeiro_autor=True).first()
autoria = materia.autoria_set.filter( autor = autoria.autor if autoria else "-"
primeiro_autor=True).first() num_protocolo = materia.numero_protocolo if materia.numero_protocolo else "-"
autor = autoria.autor if autoria else None
num_protocolo = materia.numero_protocolo
data_inicio_sessao = SessaoPlenaria.objects.get(id=pk).data_inicio data_inicio_sessao = SessaoPlenaria.objects.get(id=pk).data_inicio
tramitacao = Tramitacao.objects.filter(materia=materia, tramitacao = Tramitacao.objects\
turno__isnull=False, .select_related('materia', 'status', 'materia__tipo')\
data_tramitacao__lte=data_inicio_sessao .filter(materia=materia, turno__isnull=False, data_tramitacao__lte=data_inicio_sessao)\
).exclude(turno__exact='' .exclude(turno__exact='')\
).select_related( .order_by('-data_tramitacao')\
'materia', .first()
'status', turno = '-'
'materia__tipo').order_by(
'-data_tramitacao'
).first()
turno = ' '
if tramitacao: if tramitacao:
for t in Tramitacao.TURNO_CHOICES: for t in Tramitacao.TURNO_CHOICES:
if t[0] == tramitacao.turno: if t[0] == tramitacao.turno:
turno = t[1] turno = t[1]
break break
situacao = MateriaEmTramitacao.objects.select_related("materia", "tramitacao")\ materia_em_tramitacao = MateriaEmTramitacao.objects\
.filter(materia=materia).first().tramitacao.status .select_related("materia", "tramitacao")\
.filter(materia=materia)\
title_materia = """<a id=id%s href=%s>%s</a> </br> .first()
<b>Processo:</b> %s </br> situacao = materia_em_tramitacao.tramitacao.status if materia_em_tramitacao else '-'
<b>Autor:</b> %s </br>
<b>Protocolo:</b> %s </br> title_materia = f"""<a id={obj.materia.id} href={url_materia}>{row[1][0]}</a></br>
<b>Turno:</b> %s </br> <b>Processo:</b> {numeracao}</br>
<b>Situação:</b> %s </br> <b>Autor:</b> {autor}</br>
""" % (obj.materia.id, <b>Protocolo:</b> {num_protocolo}</br>
url_materia, <b>Turno:</b> {turno}</br>
row[1][0], <b>Situação:</b> {situacao}</br>
numeracao if numeracao else '', """
autor if autor else '',
num_protocolo if num_protocolo else '',
turno,
situacao if situacao else '')
# Na linha abaixo, o segundo argumento é None para não colocar # Na linha abaixo, o segundo argumento é None para não colocar
# url em toda a string de title_materia # url em toda a string de title_materia
context['rows'][i][1] = (title_materia, None) context['rows'][i][1] = (title_materia, None)
exist_resultado = obj.registrovotacao_set.filter( exist_resultado = obj.registrovotacao_set.filter(materia=obj.materia).exists()
materia=obj.materia).exists() exist_retirada = obj.retiradapauta_set.filter(materia=obj.materia).exists()
exist_retirada = obj.retiradapauta_set.filter( exist_leitura = obj.registroleitura_set.filter(materia=obj.materia).exists()
materia=obj.materia).exists()
exist_leitura = obj.registroleitura_set.filter(
materia=obj.materia).exists()
if (obj.tipo_votacao != 4 and not exist_resultado and not exist_retirada) or\ if (obj.tipo_votacao != 4 and not exist_resultado and not exist_retirada) or\
(obj.tipo_votacao == 4 and not exist_leitura): (obj.tipo_votacao == 4 and not exist_leitura):
@ -1726,13 +1712,13 @@ def get_materias_expediente(sessao_plenaria):
resultado = _('Matéria lida') if m.tipo_votacao == 4 else _('Matéria não votada') resultado = _('Matéria lida') if m.tipo_votacao == 4 else _('Matéria não votada')
resultado_observacao = _(' ') resultado_observacao = _(' ')
materia_em_tramitacao = m.materia.materiaemtramitacao_set.first()
materias_expediente.append({ materias_expediente.append({
'ementa': m.materia.ementa, 'ementa': m.materia.ementa,
'titulo': m.materia, 'titulo': m.materia,
'numero': m.numero_ordem, 'numero': m.numero_ordem,
'turno': get_turno(tramitacao.turno) if tramitacao else None, 'turno': get_turno(tramitacao.turno) if tramitacao else None,
'situacao': m.materia.materiaemtramitacao_set.first().tramitacao.status, 'situacao': materia_em_tramitacao.tramitacao.status if materia_em_tramitacao else _("Não informada"),
'resultado': resultado, 'resultado': resultado,
'resultado_observacao': resultado_observacao, 'resultado_observacao': resultado_observacao,
'autor': [str(x.autor) for x in Autoria.objects.select_related("autor").filter(materia_id=m.materia_id)], 'autor': [str(x.autor) for x in Autoria.objects.select_related("autor").filter(materia_id=m.materia_id)],
@ -1846,14 +1832,14 @@ def get_materias_ordem_do_dia(sessao_plenaria):
voto_nao = " Não Informado" voto_nao = " Não Informado"
voto_abstencoes = " Não Informado" voto_abstencoes = " Não Informado"
materia_em_tramitacao = o.materia.materiaemtramitacao_set.first()
materias_ordem.append({ materias_ordem.append({
'ementa': o.materia.ementa, 'ementa': o.materia.ementa,
'ementa_observacao': o.observacao, 'ementa_observacao': o.observacao,
'titulo': o.materia, 'titulo': o.materia,
'numero': o.numero_ordem, 'numero': o.numero_ordem,
'turno': get_turno(tramitacao.turno) if tramitacao else None, 'turno': get_turno(tramitacao.turno) if tramitacao else None,
'situacao': o.materia.materiaemtramitacao_set.first().tramitacao.status, 'situacao': materia_em_tramitacao.tramitacao.status if materia_em_tramitacao else _("Não informada"),
'resultado': resultado, 'resultado': resultado,
'resultado_observacao': resultado_observacao, 'resultado_observacao': resultado_observacao,
'autor': [str(x.autor) for x in Autoria.objects.select_related("autor").filter(materia_id=o.materia_id)], 'autor': [str(x.autor) for x in Autoria.objects.select_related("autor").filter(materia_id=o.materia_id)],

Loading…
Cancel
Save