Browse Source

Show error open two votações

pull/7/head
Eduardo Edson Batista Cordeiro Alves 9 years ago
parent
commit
03254bd1ef
  1. 50
      sessao/views.py
  2. 111
      templates/sessao/materia_ordemdia_list.html

50
sessao/views.py

@ -8,7 +8,6 @@ from django.forms.util import ErrorList
from django.utils.html import strip_tags from django.utils.html import strip_tags
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.views.generic.edit import FormMixin from django.views.generic.edit import FormMixin
from materia.models import Autoria, TipoMateriaLegislativa from materia.models import Autoria, TipoMateriaLegislativa
from parlamentares.models import Parlamentar from parlamentares.models import Parlamentar
from sapl.crud import build_crud from sapl.crud import build_crud
@ -209,8 +208,13 @@ class PresencaOrdemDiaView(FormMixin, sessao_crud.CrudDetailView):
return reverse('sessaoplenaria:presencaordemdia', kwargs={'pk': pk}) return reverse('sessaoplenaria:presencaordemdia', kwargs={'pk': pk})
class ListMateriaForm(forms.Form):
error_message = forms.CharField(required=False, label='votacao_aberta')
class ListMateriaOrdemDiaView(sessao_crud.CrudDetailView): class ListMateriaOrdemDiaView(sessao_crud.CrudDetailView):
template_name = 'sessao/materia_ordemdia_list.html' template_name = 'sessao/materia_ordemdia_list.html'
form_class = ListMateriaForm
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
self.object = self.get_object() self.object = self.get_object()
@ -250,8 +254,8 @@ class ListMateriaOrdemDiaView(sessao_crud.CrudDetailView):
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
self.object = self.get_object() self.object = self.get_object()
context = self.get_context_data(object=self.object)
pk = self.kwargs['pk'] pk = self.kwargs['pk']
form = ListMateriaForm(request.POST)
# TODO: Existe uma forma de atualizar em lote de acordo # TODO: Existe uma forma de atualizar em lote de acordo
# com a forma abaixo, mas como setar o primeiro para "1"? # com a forma abaixo, mas como setar o primeiro para "1"?
@ -266,10 +270,46 @@ class ListMateriaOrdemDiaView(sessao_crud.CrudDetailView):
o.save() o.save()
ordem_num += 1 ordem_num += 1
elif 'abrir-votacao' in request.POST: elif 'abrir-votacao' in request.POST:
existe_votacao_aberta = OrdemDia.objects.filter(sessao_plenaria_id=pk, votacao_aberta=True).exists()
existe_votacao_aberta = OrdemDia.objects.filter(
sessao_plenaria_id=pk, votacao_aberta=True
).exists()
if existe_votacao_aberta: if existe_votacao_aberta:
context.update( context = self.get_context_data(object=self.object)
{'error_message': "Já existe um formulário aberto!"})
form._errors = {'error_message': 'error_message'}
context.update({'form': form})
pk = self.kwargs['pk']
ordem = OrdemDia.objects.filter(sessao_plenaria_id=pk)
materias_ordem = []
for o in ordem:
ementa = o.observacao
titulo = o.materia
numero = o.numero_ordem
autoria = Autoria.objects.filter(materia_id=o.materia_id)
autor = [str(a.autor) for a in autoria]
mat = {'pk': pk,
'oid': o.materia_id,
'ordem_id': o.id,
'ementa': ementa,
'titulo': titulo,
'numero': numero,
'resultado': o.resultado,
'autor': autor,
'votacao_aberta': o.votacao_aberta,
'tipo_votacao': o.tipo_votacao
}
materias_ordem.append(mat)
sorted(materias_ordem, key=lambda x: x['numero'])
context.update({'materias_ordem': materias_ordem})
return self.render_to_response(context)
else: else:
ordem_id = request.POST['ordem_id'] ordem_id = request.POST['ordem_id']
ordem = OrdemDia.objects.get(id=ordem_id) ordem = OrdemDia.objects.get(id=ordem_id)

111
templates/sessao/materia_ordemdia_list.html

@ -3,61 +3,76 @@
{% block detail_content %} {% block detail_content %}
Matérias da Ordem do Dia {% if form.errors %}
<div class="alert-box alert">
<ul>
{% for field in form %}
{% if field.errors %}
{% if field.label == 'votacao_aberta' %}
<li>Já existe uma matéria com a votação aberta!<br />
Para abrir outra, termine ou feche a votação existente!</li>
{% endif %}
{% endif %}
{% endfor %}
</ul>
</div>
{% endif %}
<ul class="small-block-grid-3 medium-block-grid-3 large-block-grid-3"> Matérias da Ordem do Dia
<li>Matéria</li> <ul class="small-block-grid-3 medium-block-grid-3 large-block-grid-3">
<li>Ementa</li> <li>Matéria</li>
<li>Resultado da Votação</li> <li>Ementa</li>
</ul> <li>Resultado da Votação</li>
<ul class="small-block-grid-3 medium-block-grid-3 large-block-grid-3"> </ul>
{% for m in materias_ordem %} <ul class="small-block-grid-3 medium-block-grid-3 large-block-grid-3">
<li> {% for m in materias_ordem %}
{{m.numero}} - <a href="{% url 'sessaoplenaria:materiaordemdia_edit' m.pk m.oid %}">{{m.titulo}}</a> <li>
&nbsp; {{m.numero}} - <a href="{% url 'sessaoplenaria:materiaordemdia_edit' m.pk m.oid %}">{{m.titulo}}</a>
</br> &nbsp;
<strong>Autor{{m.autor|length|pluralize:"es"}}</strong>: {{m.autor|join:', '}} </br>
</li> <strong>Autor{{m.autor|length|pluralize:"es"}}</strong>: {{m.autor|join:', '}}
<li>{{m.ementa|safe}}</li> </li>
<li> <li>{{m.ementa|safe}}</li>
{% if m.resultado %} <li>
{% if m.resultado %}
{% if m.tipo_votacao == 1 %}
<b><a href="{% url 'sessaoplenaria:votacaosimbolicaedit' m.pk m.oid m.ordem_id %}">{{m.resultado}}</a></b>
{% elif m.tipo_votacao == 2 %}
<b><a href="{% url 'sessaoplenaria:votacaonominaledit' m.pk m.oid m.ordem_id %}">{{m.resultado}}</a></b>
{% elif m.tipo_votacao == 3%}
<b><a href="{% url 'sessaoplenaria:votacaosecretaedit' m.pk m.oid m.ordem_id %}">{{m.resultado}}</a></b>
{% endif %}
{% else %}
Matéria não votada <br />
{% if m.votacao_aberta %}
{% if m.tipo_votacao == 1 %} {% if m.tipo_votacao == 1 %}
<b><a href="{% url 'sessaoplenaria:votacaosimbolicaedit' m.pk m.oid m.ordem_id %}">{{m.resultado}}</a></b> <b><a href="{% url 'sessaoplenaria:votacaosimbolica' m.pk m.oid m.ordem_id %}">Registrar Votação</a></b>
{% elif m.tipo_votacao == 2 %} {% elif m.tipo_votacao == 2 %}
<b><a href="{% url 'sessaoplenaria:votacaonominaledit' m.pk m.oid m.ordem_id %}">{{m.resultado}}</a></b> <b><a href="{% url 'sessaoplenaria:votacaonominal' m.pk m.oid m.ordem_id %}">Registrar Votação</a></b>
{% elif m.tipo_votacao == 3%} {% elif m.tipo_votacao == 3%}
<b><a href="{% url 'sessaoplenaria:votacaosecretaedit' m.pk m.oid m.ordem_id %}">{{m.resultado}}</a></b> <b><a href="{% url 'sessaoplenaria:votacaosecreta' m.pk m.oid m.ordem_id %}">Registrar Votação</a></b>
{% endif %} {% endif %}
{% else %} {% else %}
Matéria não votada <br /> <form method="POST" action="{% url 'sessaoplenaria:materiaordemdia_list' object.pk %}">
{% if m.votacao_aberta %} {% csrf_token %}
{% if m.tipo_votacao == 1 %} <input type="hidden" id="ordem_id" name="ordem_id" value="{{ m.ordem_id }}">
<b><a href="{% url 'sessaoplenaria:votacaosimbolica' m.pk m.oid m.ordem_id %}">Registrar Votação</a></b> <input type="submit" id="abrir-votacao" name="abrir-votacao" value="Abrir Votação" class="button primary">
{% elif m.tipo_votacao == 2 %} </form>
<b><a href="{% url 'sessaoplenaria:votacaonominal' m.pk m.oid m.ordem_id %}">Registrar Votação</a></b>
{% elif m.tipo_votacao == 3%}
<b><a href="{% url 'sessaoplenaria:votacaosecreta' m.pk m.oid m.ordem_id %}">Registrar Votação</a></b>
{% endif %}
{% else %}
<form method="POST" action="{% url 'sessaoplenaria:materiaordemdia_list' object.pk %}">
{% csrf_token %}
<input type="hidden" id="ordem_id" name="ordem_id" value="{{ m.ordem_id }}">
<input type="submit" id="abrir-votacao" name="abrir-votacao" value="Abrir Votação" class="button primary">
</form>
{% endif %}
{% endif %} {% endif %}
</li> {% endif %}
{% endfor %} </li>
</ul> {% endfor %}
</ul>
</br> </br>
<a href="{% url 'sessaoplenaria:materiaordemdia_create' object.pk %}" class="button primary"> <a href="{% url 'sessaoplenaria:materiaordemdia_create' object.pk %}" class="button primary">
{% trans 'Adicionar Matérias' %} {% trans 'Adicionar Matérias' %}
</a></dd> </a></dd>
<button>Incluir várias matérias</button> <button>Incluir várias matérias</button>
<form method="POST" action="{% url 'sessaoplenaria:materiaordemdia_list' object.pk %}"> <form method="POST" action="{% url 'sessaoplenaria:materiaordemdia_list' object.pk %}">
{% csrf_token %} {% csrf_token %}
<input type="submit" id="materia_reorder" name="materia_reorder" value="Reordenar Matérias da Ordem do Dia" class="button primary" /> <input type="hidden" name="error_message" id="error_message" />
</form> <input type="submit" id="materia_reorder" name="materia_reorder" value="Reordenar Matérias da Ordem do Dia" class="button primary" />
</form>
{% endblock detail_content %} {% endblock detail_content %}
Loading…
Cancel
Save