Browse Source

Coloca botão de abrir/registrar votação

pull/448/head
Eduardo Edson Batista Cordeiro Alves 10 years ago
parent
commit
6196a95b90
  1. 5
      sessao/urls.py
  2. 71
      sessao/views.py

5
sessao/urls.py

@ -16,7 +16,7 @@ from sessao.views import (EditMateriaOrdemDiaView,
VotacaoExpedienteView, VotacaoNominalEditView, VotacaoExpedienteView, VotacaoNominalEditView,
VotacaoNominalExpedienteEditView, VotacaoNominalExpedienteEditView,
VotacaoNominalExpedienteView, VotacaoNominalView, VotacaoNominalExpedienteView, VotacaoNominalView,
VotacaoView, ExpedienteMateriaCrud) VotacaoView, ExpedienteMateriaCrud, abrir_votacao_view)
from .apps import AppConfig from .apps import AppConfig
@ -30,6 +30,9 @@ urlpatterns = [
url(r'^sessao/', include(SessaoCrud.get_urls() + OradorCrud.get_urls() + url(r'^sessao/', include(SessaoCrud.get_urls() + OradorCrud.get_urls() +
OradorExpedienteCrud.get_urls() + ExpedienteMateriaCrud.get_urls())), OradorExpedienteCrud.get_urls() + ExpedienteMateriaCrud.get_urls())),
url(r'^(?P<pk>\d+)/(?P<spk>\d+)/abrir-votacao$', abrir_votacao_view,
name="abrir_votacao"),
url(r'^media/(?P<path>.*)$', serve, url(r'^media/(?P<path>.*)$', serve,
{'document_root': settings.MEDIA_ROOT}), {'document_root': settings.MEDIA_ROOT}),
url(r'^rest/', include(sessao_rest)), url(r'^rest/', include(sessao_rest)),

71
sessao/views.py

@ -2,7 +2,7 @@ from datetime import datetime
from re import sub from re import sub
from django.contrib import messages from django.contrib import messages
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist, ValidationError
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.forms.utils import ErrorList from django.forms.utils import ErrorList
from django.utils.html import strip_tags from django.utils.html import strip_tags
@ -39,6 +39,21 @@ TipoExpedienteCrud = Crud.build(TipoExpediente, 'tipo_expediente')
RegistroVotacaoCrud = Crud.build(RegistroVotacao, '') RegistroVotacaoCrud = Crud.build(RegistroVotacao, '')
def abrir_votacao_view(request, pk, spk):
existe_votacao_aberta = ExpedienteMateria.objects.filter(
sessao_plenaria_id=spk, votacao_aberta=True
).exists()
if existe_votacao_aberta:
msg = _('Já existe uma matéria com votação aberta. Para abrir '
'outra, termine ou feche a votação existente.')
raise ValidationError(msg)
else:
expediente = ExpedienteMateria.objects.get(id=pk)
expediente.votacao_aberta = True
expediente.save()
return reverse('sessao:expedientemateria_list', kwargs={'pk': spk})
class ExpedienteMateriaCrud(MasterDetailCrud): class ExpedienteMateriaCrud(MasterDetailCrud):
model = ExpedienteMateria model = ExpedienteMateria
parent_field = 'sessao_plenaria' parent_field = 'sessao_plenaria'
@ -50,19 +65,47 @@ class ExpedienteMateriaCrud(MasterDetailCrud):
class ListView(MasterDetailCrud.ListView): class ListView(MasterDetailCrud.ListView):
ordering = ['numero_ordem', 'materia', 'resultado'] ordering = ['numero_ordem', 'materia', 'resultado']
#
# def get_rows(self, object_list): def get_rows(self, object_list):
# for obj in object_list:
# btn_abrir = ''' if not obj.resultado:
# Matéria não votada <br /> if obj.votacao_aberta:
# <a href=""> url = ''
# Abrir Votação if obj.tipo_votacao == 1:
# </a>''' url = reverse('sessao:votacaosimbolicaexp',
# for obj in object_list: kwargs={
# if not obj.resultado: 'pk': obj.sessao_plenaria_id,
# obj.resultado = btn_abrir 'oid': obj.materia_id,
# 'mid': obj.pk})
# return [self._as_row(obj) for obj in object_list] elif obj.tipo_votacao == 2:
url = reverse('sessao:votacaonominalexp',
kwargs={
'pk': obj.sessao_plenaria_id,
'oid': bj.materia_id,
'mid': obj.pk})
elif obj.tipo_votacao == 3:
url = reverse('sessao:votacaosecretaexp',
kwargs={
'pk': obj.sessao_plenaria_id,
'oid': obj.materia_id,
'mid': obj.pk})
btn_registrar = '''
<a href="%s"
class="btn btn-primary"
role="button">Registrar Votação</a>''' % (url)
obj.resultado = btn_registrar
else:
url = reverse('sessao:abrir_votacao', kwargs={
'pk': obj.pk, 'spk': obj.sessao_plenaria_id})
btn_abrir = '''
Matéria não votada<br />
<a href="%s"
class="btn btn-primary"
role="button">Abrir Votação</a>''' % (url)
obj.resultado = btn_abrir
return [self._as_row(obj) for obj in object_list]
class CreateView(MasterDetailCrud.CreateView): class CreateView(MasterDetailCrud.CreateView):
form_class = ExpedienteMateriaForm form_class = ExpedienteMateriaForm

Loading…
Cancel
Save