Browse Source

Feat(Integracao):Ajuste pdfs integracao[AB#849]

pull/3858/head
KemuelAlves 7 months ago
parent
commit
643fbb1bea
  1. 26
      sapl/api/views_sessao.py

26
sapl/api/views_sessao.py

@ -85,18 +85,31 @@ class _SessaoPlenariaViewSet:
def material_item(m: MateriaLegislativa, status_sessao: str, def material_item(m: MateriaLegislativa, status_sessao: str,
extra: dict = None): extra: dict = None):
extra = extra or {} extra = extra or {}
# Prioriza PDF assinado, depois texto original, depois documentos acessórios
pdf_url = None pdf_url = None
pdf_assinado_url = None
try: try:
if m.documentoacessorio_set.filter(arquivo__iendswith='pdf').exists(): # 1. Verifica se existe PDF assinado
if m.pdf_assinado:
pdf_assinado_url = request.build_absolute_uri(m.pdf_assinado.url)
pdf_url = pdf_assinado_url
# 2. Se não, verifica texto original
elif m.texto_original:
pdf_url = request.build_absolute_uri(m.texto_original.url)
# 3. Fallback: documentos acessórios em PDF
elif m.documentoacessorio_set.filter(arquivo__iendswith='pdf').exists():
pdf_url = request.build_absolute_uri( pdf_url = request.build_absolute_uri(
reverse('sapl.materia:merge_docacessorios', kwargs={'pk': m.pk}) reverse('sapl.materia:merge_docacessorios', kwargs={'pk': m.pk})
) )
except Exception: except Exception:
pdf_url = None pdf_url = None
pdf_assinado_url = None
status_tram, fase_materia = tramitacao_info(m) status_tram, fase_materia = tramitacao_info(m)
return { result = {
'id_materia': m.pk, 'id_materia': m.pk,
'nome_documento': str(m), 'nome_documento': str(m),
'autoria': autores_info(m), 'autoria': autores_info(m),
@ -117,6 +130,15 @@ class _SessaoPlenariaViewSet:
**extra **extra
} }
# Adiciona campo indicando se é PDF assinado
if pdf_assinado_url:
result['pdf_assinado'] = True
result['pdf_assinado_url'] = pdf_assinado_url
else:
result['pdf_assinado'] = False
return result
expediente_items = [] expediente_items = []
momentos_items = [] momentos_items = []
for em in ExpedienteMateria.objects.select_related('materia', 'materia__tipo').filter(sessao_plenaria_id=pk): for em in ExpedienteMateria.objects.select_related('materia', 'materia__tipo').filter(sessao_plenaria_id=pk):

Loading…
Cancel
Save