diff --git a/sapl/painel/urls.py b/sapl/painel/urls.py index d6a07112f..b617d8fec 100644 --- a/sapl/painel/urls.py +++ b/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\d+)$', votante_view, + name="voto_individual"), ] diff --git a/sapl/painel/views.py b/sapl/painel/views.py index d285137a0..2c2946621 100644 --- a/sapl/painel/views.py +++ b/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): diff --git a/sapl/parlamentares/models.py b/sapl/parlamentares/models.py index a4c9de42b..253bc94ca 100644 --- a/sapl/parlamentares/models.py +++ b/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 diff --git a/sapl/sessao/models.py b/sapl/sessao/models.py index eb439b69c..af22e1d1d 100644 --- a/sapl/sessao/models.py +++ b/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() diff --git a/sapl/templates/painel/voto_nominal.html b/sapl/templates/painel/voto_nominal.html new file mode 100644 index 000000000..5aff93b87 --- /dev/null +++ b/sapl/templates/painel/voto_nominal.html @@ -0,0 +1,5 @@ +head_title = {{head_title}}
+sessao_id = {{sessao_id}}
+materia = {{materia}}
+permissao = {{permissao}}
+presente = {{presente}}