Browse Source

Adiciona suporte a fotografias de parlamentares nos dados do painel

pull/3840/head
RogerKoala 6 days ago
parent
commit
9279b86a47
  1. 23
      sapl/painel/consumers.py
  2. 16
      sapl/painel/views.py

23
sapl/painel/consumers.py

@ -65,6 +65,29 @@ def get_dados_painel(sessao_plenaria_id: int) -> dict:
'nome_parlamentar',
'filiacao', )
parlamentares = [dict(zip(['parlamentar_id', 'nome_parlamentar', 'filiacao'], p)) for p in presentes]
# Adicionar fotografia dos parlamentares
from sapl.parlamentares.models import Parlamentar
from image_cropping.utils import get_backend
parlamentar_ids = [p['parlamentar_id'] for p in parlamentares]
parlamentares_db = {p.id: p for p in Parlamentar.objects.filter(id__in=parlamentar_ids)}
for p in parlamentares:
par = parlamentares_db.get(p['parlamentar_id'])
if par and par.fotografia:
try:
p['fotografia'] = get_backend().get_thumbnail_url(
par.fotografia,
{
'size': (128, 128),
'box': par.cropping,
'crop': True,
'detail': True,
}
)
except Exception:
p['fotografia'] = None
else:
p['fotografia'] = None
if materia_votacao and materia_votacao.numero_votos:
materia_votacao.numero_votos.update({"num_presentes": len(parlamentares)})

16
sapl/painel/views.py

@ -13,6 +13,7 @@ from django.shortcuts import render
from django.utils import timezone
from django.utils.translation import ugettext_lazy as _
from sapl import settings
from sapl.base.models import AppConfig as ConfiguracoesAplicacao
from sapl.base.models import CasaLegislativa
from sapl.crud.base import Crud
@ -23,6 +24,7 @@ from sapl.sessao.models import (ExpedienteMateria, OradorExpediente, OrdemDia,
SessaoPlenaria, SessaoPlenariaPresenca,
VotoParlamentar, RegistroLeitura)
from sapl.utils import filiacao_data, get_client_ip, sort_lista_chave
from image_cropping.utils import get_backend
from .models import Cronometro
@ -402,10 +404,24 @@ def get_presentes(pk, response, materia):
else:
partido = filiacao
if p.parlamentar.fotografia:
thumbnail_url = get_backend().get_thumbnail_url(
p.parlamentar.fotografia,
{
'size': (128, 128),
'box': p.parlamentar.cropping,
'crop': True,
'detail': True,
}
)
else:
thumbnail_url = False
presentes_list.append(
{'id': p.id,
'parlamentar_id': p.parlamentar.id,
'nome': p.parlamentar.nome_parlamentar,
'fotografia':thumbnail_url,
'partido': partido,
'voto': ''
})

Loading…
Cancel
Save