Browse Source

Merge 8503d3726d into 55f9312ae1

pull/3798/merge
Michel de Almeida Silva 3 weeks ago
committed by GitHub
parent
commit
d0e3b51159
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 5
      sapl/relatorios/templates/pdf_materia_gerar.py
  2. 29
      sapl/relatorios/views.py
  3. 47
      sapl/sessao/models.py
  4. 6
      sapl/templates/sessao/leitura/leitura_bloco.html
  5. 6
      sapl/templates/sessao/votacao/votacao_bloco.html

5
sapl/relatorios/templates/pdf_materia_gerar.py

@ -86,7 +86,10 @@ def materias(lst_materias):
# materias
tmp_data += '\t\t<para style="P1"> <b>' + \
dic['titulo'] + '</b> - <b>Autor: </b>' + \
dic['nom_autor'] + ' </para>\n'
dic['nom_autor']
if dic.get('nom_relator'):
tmp_data += ' - <b>Relator: </b>' + dic['nom_relator']
tmp_data += ' </para>\n'
if dic['txt_ementa'] != None:
txt_ementa = dic['txt_ementa'].replace('&', '&amp;')
tmp_data += '\t\t<para style="P2"> ' + txt_ementa + ' </para>\n'

29
sapl/relatorios/views.py

@ -136,6 +136,13 @@ def get_materias(mats):
dic['nom_autor'] = ', '.join(
[str(autor) for autor in materia.autores.all()])
# Buscar relator atual da matéria
relatoria = materia.relatoria_set.filter(data_destituicao_relator__isnull=True).order_by('-data_designacao_relator').first()
if relatoria:
dic['nom_relator'] = str(relatoria.parlamentar)
else:
dic['nom_relator'] = ''
des_status = ''
txt_tramitacao = ''
@ -146,27 +153,9 @@ def get_materias(mats):
'-data_tramitacao', '-id')
for tramitacao in tramitacoes:
des_status = tramitacao.status.descricao
dic['nom_relator'] = str(relatoria.parlamentar) if relatoria.parlamentar else ''
txt_tramitacao = tramitacao.texto
# for tramitacao in context.zsql
# .tramitacao_obter_zsql(cod_materia
# =materia.cod_materia,ind_ult_tramitacao=1):
# if tramitacao.cod_unid_tram_dest:
# cod_unid_tram = tramitacao.cod_unid_tram_dest
# else:
# cod_unid_tram = tramitacao.cod_unid_tram_local
# for unidade_tramitacao in
# context.zsql
# .unidade_tramitacao_obter_zsql(
# cod_unid_tramitacao = cod_unid_tram):
# if unidade_tramitacao.cod_orgao:
# dic['localizacao_atual']=unidade_tramitacao.nom_orgao
# else:
# dic['localizacao_atual']=unidade_tramitacao.nom_comissao
# des_status=tramitacao.des_status
# txt_tramitacao=tramitacao.txt_tramitacao
dic['nom_relator'] = ''
dic['des_situacao'] = des_status
dic['ultima_acao'] = txt_tramitacao

47
sapl/sessao/models.py

@ -402,6 +402,53 @@ class AbstractOrdemDia(models.Model):
def ementa(self):
return self.materia.ementa
@property
def turno_vigente(self):
"""
Retorna o código do turno vigente para esta inclusão na pauta.
Prioriza o campo `tramitacao` gravado na inclusão. Caso não haja,
busca a última tramitação com timestamp anterior ao início da sessão.
"""
# Usa a tramitação registrada na inclusão, se houver
if self.tramitacao and getattr(self.tramitacao, 'turno', None):
return self.tramitacao.turno
# Caso não haja tramitação registrada, calcula em função da sessão
try:
from django.conf import settings
import pytz
from datetime import datetime
except Exception:
return None
if not self.sessao_plenaria or not self.sessao_plenaria.data_inicio:
return None
# Monta datetime local da sessão a partir de data_inicio e hora_inicio
data_sessao = self.sessao_plenaria.data_inicio.strftime("%Y-%m-%d ")
hora = self.sessao_plenaria.hora_inicio or "00:00"
try:
data_hora_sessao = datetime.strptime(
data_sessao + hora, "%Y-%m-%d %H:%M")
except Exception:
return None
try:
tz_local = pytz.timezone(getattr(settings, 'TIME_ZONE', 'UTC'))
data_hora_sessao_utc = tz_local.localize(data_hora_sessao).astimezone(pytz.utc)
except Exception:
data_hora_sessao_utc = None
qs = self.materia.tramitacao_set.all()
if data_hora_sessao_utc is not None:
qs = qs.filter(timestamp__lt=data_hora_sessao_utc)
# Respeita a ordenação padrão de Tramitacao ('-data_tramitacao', '-id')
tr = qs.first()
if tr and getattr(tr, 'turno', None):
return tr.turno
return None
def __str__(self):
return 'Ordem do Dia/Expediente: %s - %s em %s' % (
self.numero_ordem, self.materia, self.sessao_plenaria)

6
sapl/templates/sessao/leitura/leitura_bloco.html

@ -62,16 +62,14 @@
{% if o.materia.numero_protocolo %}
<strong>Protocolo:</strong> &nbsp; {{o.materia.numero_protocolo}}</br>
{% endif %}
{% if o.materia.tramitacao_set.first %}
{% if o.materia.tramitacao_set.first.turno %}
{% if o.turno_vigente %}
<strong>Turno:</strong>&nbsp;
{% for t in turno_choices %}
{% if t.0 == o.materia.tramitacao_set.first.turno %}
{% if t.0 == o.turno_vigente %}
{{ t.1 }}
{% endif %}
{% endfor %}<br>
{% endif %}
{% endif %}
<strong>Ementa:</strong>&nbsp;{{ o.materia.ementa|safe }}<br>
<p></p>
</td>

6
sapl/templates/sessao/votacao/votacao_bloco.html

@ -63,16 +63,14 @@
{% if o.materia.numero_protocolo %}
<strong>Protocolo:</strong> &nbsp; {{o.materia.numero_protocolo}}</br>
{% endif %}
{% if o.materia.tramitacao_set.first %}
{% if o.materia.tramitacao_set.first.turno %}
{% if o.turno_vigente %}
<strong>Turno:</strong>&nbsp;
{% for t in turno_choices %}
{% if t.0 == o.materia.tramitacao_set.first.turno %}
{% if t.0 == o.turno_vigente %}
{{ t.1 }}
{% endif %}
{% endfor %}</br>
{% endif %}
{% endif %}
<strong>Ementa:</strong>&nbsp;{{ o.materia.ementa|safe }}</br>
<p></p>
</td>

Loading…
Cancel
Save