diff --git a/sapl/painel/consumers.py b/sapl/painel/consumers.py index 0e6f06b97..895a4844e 100644 --- a/sapl/painel/consumers.py +++ b/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)}) diff --git a/sapl/painel/views.py b/sapl/painel/views.py index 53abaa1de..fe227740f 100644 --- a/sapl/painel/views.py +++ b/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': '' })