Browse Source

Init view/template votação nominal

pull/906/head
Eduardo Edson Batista Cordeiro Alves 8 years ago
parent
commit
2808d7d250
  1. 5
      sapl/painel/urls.py
  2. 52
      sapl/painel/views.py
  3. 4
      sapl/parlamentares/models.py
  4. 2
      sapl/sessao/models.py
  5. 5
      sapl/templates/painel/voto_nominal.html

5
sapl/painel/urls.py

@ -3,7 +3,7 @@ from django.conf.urls import url
from .apps import AppConfig
from .views import (controlador_painel, cronometro_painel, get_dados_painel,
painel_mensagem_view, painel_parlamentar_view, painel_view,
painel_votacao_view)
painel_votacao_view, votante_view)
app_name = AppConfig.name
@ -19,4 +19,7 @@ urlpatterns = [
url(r'^painel/votacao$', painel_votacao_view, name='painel_votacao'),
url(r'^painel/cronometro$', cronometro_painel, name='cronometro_painel'),
# url(r'^painel/cronometro$', include(CronometroPainelCrud.get_urls())),
url(r'^voto-individual/(?P<pk>\d+)$', votante_view,
name="voto_individual"),
]

52
sapl/painel/views.py

@ -9,7 +9,7 @@ from django.utils.translation import ugettext_lazy as _
from sapl.crud.base import Crud
from sapl.painel.apps import AppConfig
from sapl.painel.models import Painel
from sapl.parlamentares.models import Filiacao
from sapl.parlamentares.models import Filiacao, Votante
from sapl.sessao.models import (ExpedienteMateria, OrdemDia, PresencaOrdemDia,
RegistroVotacao, SessaoPlenaria,
SessaoPlenariaPresenca, VotoParlamentar)
@ -25,6 +25,56 @@ def check_permission(user):
return user.has_module_perms(AppConfig.label)
def votante_view(request, pk):
context = {'head_title': str(_('Votação Individual')), 'sessao_id': pk}
# Inicializa presentes
presentes = []
# Verifica votação aberta
# Se aberta, verifica se é nominal. ID nominal == 2
ordem_dia = get_materia_aberta(pk)
expediente = get_materia_expediente_aberta(pk)
if ordem_dia:
if ordem_dia.tipo_votacao == 2:
context.update({'materia': ordem_dia})
presentes = PresencaOrdemDia.objects.filter(sessao_plenaria_id=pk)
elif expediente:
if expediente.tipo_votacao == 2:
context.update({'materia': expediente})
presentes = SessaoPlenariaPresenca.objects.filter(
sessao_plenaria_id=pk)
else:
context.update(
{'materia': 'Nenhuma matéria com votação nominal aberta.'})
# Verifica se usuário possui permissão para votar
if 'parlamentares.can_vote' in request.user.get_all_permissions():
context.update({'permissao': True})
else:
context.update({'permissao': False})
# Verifica se usuário está presente na sessão
try:
votante = Votante.objects.get(user=request.user)
except ObjectDoesNotExist:
context.update({'error_message':
'Erro ao recuperar parlamentar ligado ao usuário'})
else:
parlamentar = votante.parlamentar
context.update({'presente': False})
if len(presentes) > 0:
for p in presentes:
if p.parlamentar.id == parlamentar:
context.update({'presente': True})
break
# FIXME: Verificar se usuário já votou
return render(request, 'painel/voto_nominal.html', context)
@user_passes_test(check_permission)
def controlador_painel(request):

4
sapl/parlamentares/models.py

@ -509,8 +509,8 @@ class Votante(models.Model):
verbose_name=_('IP'), max_length=30, null=True, blank=True)
class Meta:
verbose_name = _('Votante')
verbose_name = _('Votantes')
verbose_name = _('Usuário')
verbose_name = _('Usuários')
def __str__(self):
return self.user.username

2
sapl/sessao/models.py

@ -160,7 +160,7 @@ class SessaoPlenaria(models.Model):
if self.upload_ata:
self.upload_ata.delete()
if self.upload_anexo:
self.upload_anexo.delete()

5
sapl/templates/painel/voto_nominal.html

@ -0,0 +1,5 @@
head_title = {{head_title}} <br />
sessao_id = {{sessao_id}} <br />
materia = {{materia}} <br />
permissao = {{permissao}} <br />
presente = {{presente}} <br />
Loading…
Cancel
Save