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. 37
      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)

37
templates/sessao/materia_ordemdia_list.html

@ -3,14 +3,28 @@
{% 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
<ul class="small-block-grid-3 medium-block-grid-3 large-block-grid-3">
<li>Matéria</li> <li>Matéria</li>
<li>Ementa</li> <li>Ementa</li>
<li>Resultado da Votação</li> <li>Resultado da Votação</li>
</ul> </ul>
<ul class="small-block-grid-3 medium-block-grid-3 large-block-grid-3"> <ul class="small-block-grid-3 medium-block-grid-3 large-block-grid-3">
{% for m in materias_ordem %} {% for m in materias_ordem %}
<li> <li>
{{m.numero}} - <a href="{% url 'sessaoplenaria:materiaordemdia_edit' m.pk m.oid %}">{{m.titulo}}</a> {{m.numero}} - <a href="{% url 'sessaoplenaria:materiaordemdia_edit' m.pk m.oid %}">{{m.titulo}}</a>
@ -48,16 +62,17 @@ Matérias da Ordem do Dia
{% endif %} {% endif %}
</li> </li>
{% endfor %} {% endfor %}
</ul> </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="hidden" name="error_message" id="error_message" />
<input type="submit" id="materia_reorder" name="materia_reorder" value="Reordenar Matérias da Ordem do Dia" class="button primary" /> <input type="submit" id="materia_reorder" name="materia_reorder" value="Reordenar Matérias da Ordem do Dia" class="button primary" />
</form> </form>
{% endblock detail_content %} {% endblock detail_content %}
Loading…
Cancel
Save