Browse Source

Permite exibição do voto no painel com votação ainda aberta (#3615)

pull/3623/head
cristian-longhi 2 years ago
committed by GitHub
parent
commit
e3e958ab44
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 7
      sapl/base/forms.py
  2. 18
      sapl/base/migrations/0055_appconfig_mostrar_voto.py
  3. 4
      sapl/base/models.py
  4. 18
      sapl/painel/views.py
  5. 2
      sapl/templates/base/layouts.yaml
  6. 3
      sapl/templates/painel/index.html

7
sapl/base/forms.py

@ -1557,6 +1557,12 @@ class ConfiguracoesAppForm(ModelForm):
label=_('Mostrar brasão da Casa no painel?'),
required=False)
mostrar_voto = forms.BooleanField(
help_text=_('Se selecionado, exibe qual é o voto, e não apenas a indicação de que já votou, '
'com a votação ainda aberta.'),
label=_('Mostrar voto do Parlamentar no painel durante a votação?'),
required=False)
google_recaptcha_site_key = forms.CharField(
label=AppConfig._meta.get_field(
'google_recaptcha_site_key').verbose_name,
@ -1596,6 +1602,7 @@ class ConfiguracoesAppForm(ModelForm):
'cronometro_ordem',
'cronometro_consideracoes',
'mostrar_brasao_painel',
'mostrar_voto',
'receber_recibo_proposicao',
'assinatura_ata',
'estatisticas_acesso_normas',

18
sapl/base/migrations/0055_appconfig_mostrar_voto.py

@ -0,0 +1,18 @@
# Generated by Django 2.2.28 on 2022-10-05 18:33
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('base', '0054_auto_20220921_1217'),
]
operations = [
migrations.AddField(
model_name='appconfig',
name='mostrar_voto',
field=models.BooleanField(choices=[(True, 'Sim'), (False, 'Não')], default=False, verbose_name='Exibir voto do Parlamentar antes de encerrar a votação?'),
),
]

4
sapl/base/models.py

@ -233,6 +233,10 @@ class AppConfig(models.Model):
default=False,
verbose_name=_('Mostrar brasão da Casa no painel?'))
mostrar_voto = models.BooleanField(
verbose_name=_('Exibir voto do Parlamentar antes de encerrar a votação?'),
choices=YES_NO_CHOICES, default=False)
# MÓDULO ESTATÍSTICAS DE ACESSO
estatisticas_acesso_normas = models.CharField(
max_length=1,

18
sapl/painel/views.py

@ -446,7 +446,7 @@ def response_nenhuma_materia(response):
return JsonResponse(response)
def get_votos(response, materia):
def get_votos(response, materia, mostrar_voto):
logger = logging.getLogger(__name__)
if type(materia) == OrdemDia:
if materia.tipo_votacao != 4:
@ -492,7 +492,12 @@ def get_votos(response, materia):
for i, p in enumerate(response['presentes']):
try:
logger.info("Tentando obter votos do parlamentar (id={}).".format(p['parlamentar_id']))
if votos_parlamentares.get(parlamentar_id=p['parlamentar_id']).voto:
voto = votos_parlamentares.get(parlamentar_id=p['parlamentar_id']).voto
if voto:
if mostrar_voto:
response['presentes'][i]['voto'] = voto
else:
response['presentes'][i]['voto'] = 'Voto Informado'
except ObjectDoesNotExist:
# logger.error("Votos do parlamentar (id={}) não encontrados. Retornado vazio."
@ -563,7 +568,8 @@ def get_dados_painel(request, pk):
'cronometro_ordem': get_cronometro_status(request, 'ordem'),
'cronometro_consideracoes': get_cronometro_status(request, 'consideracoes'),
'status_painel': sessao.painel_aberto,
'brasao': brasao
'brasao': brasao,
'mostrar_voto': app_config.mostrar_voto
}
ordem_dia = get_materia_aberta(pk)
@ -574,11 +580,11 @@ def get_dados_painel(request, pk):
if ordem_dia:
return JsonResponse(get_votos(
get_presentes(pk, response, ordem_dia),
ordem_dia))
ordem_dia, app_config.mostrar_voto))
elif expediente:
return JsonResponse(get_votos(
get_presentes(pk, response, expediente),
expediente))
expediente, app_config.mostrar_voto))
# Caso não tenha nenhuma aberta,
# a matéria a ser mostrada no Painel deve ser a última votada
@ -614,7 +620,7 @@ def get_dados_painel(request, pk):
if ordem_expediente:
return JsonResponse(get_votos(
get_presentes(pk, response, ordem_expediente),
ordem_expediente))
ordem_expediente, app_config.mostrar_voto))
# Retorna que não há nenhuma matéria já votada ou aberta
return response_nenhuma_materia(get_presentes(pk, response, None))

2
sapl/templates/base/layouts.yaml

@ -48,7 +48,7 @@ AppConfig:
{% trans 'Módulo Painel' %}:
- cronometro_discurso cronometro_aparte
- cronometro_ordem cronometro_consideracoes
- mostrar_brasao_painel
- mostrar_brasao_painel mostrar_voto
{% trans 'Estatísticas de acesso' %}:
- estatisticas_acesso_normas

3
sapl/templates/painel/index.html

@ -281,11 +281,12 @@
var presentes_list = data["presentes"];
if (data["status_painel"] == true) {
mostrar_voto = data["mostrar_voto"];
presentes.append('<table id="parlamentares_list">');
$.each(presentes_list, function (index, parlamentar) {
if (parlamentar.voto == 'Voto Informado'){
if (parlamentar.voto == 'Voto Informado' && mostrar_voto == false){
$('#parlamentares_list').append('<tr><td style="padding-right:20px; color:yellow" >' +
parlamentar.nome +
'</td> <td style="padding-right:20px; color:yellow">' +

Loading…
Cancel
Save