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', 'nome_parlamentar',
'filiacao', ) 'filiacao', )
parlamentares = [dict(zip(['parlamentar_id', 'nome_parlamentar', 'filiacao'], p)) for p in presentes] 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: if materia_votacao and materia_votacao.numero_votos:
materia_votacao.numero_votos.update({"num_presentes": len(parlamentares)}) 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 import timezone
from django.utils.translation import ugettext_lazy as _ 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 AppConfig as ConfiguracoesAplicacao
from sapl.base.models import CasaLegislativa from sapl.base.models import CasaLegislativa
from sapl.crud.base import Crud from sapl.crud.base import Crud
@ -23,6 +24,7 @@ from sapl.sessao.models import (ExpedienteMateria, OradorExpediente, OrdemDia,
SessaoPlenaria, SessaoPlenariaPresenca, SessaoPlenaria, SessaoPlenariaPresenca,
VotoParlamentar, RegistroLeitura) VotoParlamentar, RegistroLeitura)
from sapl.utils import filiacao_data, get_client_ip, sort_lista_chave from sapl.utils import filiacao_data, get_client_ip, sort_lista_chave
from image_cropping.utils import get_backend
from .models import Cronometro from .models import Cronometro
@ -402,10 +404,24 @@ def get_presentes(pk, response, materia):
else: else:
partido = filiacao 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( presentes_list.append(
{'id': p.id, {'id': p.id,
'parlamentar_id': p.parlamentar.id, 'parlamentar_id': p.parlamentar.id,
'nome': p.parlamentar.nome_parlamentar, 'nome': p.parlamentar.nome_parlamentar,
'fotografia':thumbnail_url,
'partido': partido, 'partido': partido,
'voto': '' 'voto': ''
}) })

Loading…
Cancel
Save