Browse Source

Add reorder materiais ordem do dia e expediente

pull/7/head
Edward Ribeiro 10 years ago
parent
commit
620b7c27da
  1. 2
      sessao/urls.py
  2. 67
      sessao/views.py
  3. 7
      templates/sessao/expediente_ordemdia_list.html
  4. 9
      templates/sessao/materia_ordemdia_list.html

2
sessao/urls.py

@ -32,6 +32,8 @@ urlpatterns_sessao = sessao_crud.urlpatterns + [
url(r'^(?P<pk>\d+)/mesa$', MesaView.as_view(), name='mesa'), url(r'^(?P<pk>\d+)/mesa$', MesaView.as_view(), name='mesa'),
url(r'^(?P<pk>\d+)/materiaordemdia/list$', url(r'^(?P<pk>\d+)/materiaordemdia/list$',
ListMateriaOrdemDiaView.as_view(), name='materiaordemdia_list'), ListMateriaOrdemDiaView.as_view(), name='materiaordemdia_list'),
url(r'^(?P<pk>\d+)/materiaordemdia/list$',
ListMateriaOrdemDiaView.as_view(), name='materiaordemdia_reorder'),
url(r'^(?P<pk>\d+)/materiaordemdia/edit/(?P<oid>\d+)$', url(r'^(?P<pk>\d+)/materiaordemdia/edit/(?P<oid>\d+)$',
EditMateriaOrdemDiaView.as_view(), name='materiaordemdia_edit'), EditMateriaOrdemDiaView.as_view(), name='materiaordemdia_edit'),
url(r'^(?P<pk>\d+)/materiaordemdia/create$', url(r'^(?P<pk>\d+)/materiaordemdia/create$',

67
sessao/views.py

@ -2,9 +2,9 @@ from datetime import datetime
from re import sub from re import sub
from django import forms from django import forms
from django.forms.util import ErrorList
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
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
@ -143,12 +143,13 @@ class PresencaView(FormMixin, sessao_crud.CrudDetailView):
if parlamentar in presentes: if parlamentar in presentes:
yield (parlamentar, True) yield (parlamentar, True)
else: else:
yield (parlamentar, False) yield (parlamentar, False)
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:presenca', kwargs={'pk': pk}) return reverse('sessaoplenaria:presenca', kwargs={'pk': pk})
class PainelView(sessao_crud.CrudDetailView): class PainelView(sessao_crud.CrudDetailView):
template_name = 'sessao/painel.html' template_name = 'sessao/painel.html'
@ -205,7 +206,7 @@ class PresencaOrdemDiaView(FormMixin, sessao_crud.CrudDetailView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:presencaordemdia', kwargs={'pk': pk}) return reverse('sessaoplenaria:presencaordemdia', kwargs={'pk': pk})
class ListMateriaOrdemDiaView(sessao_crud.CrudDetailView): class ListMateriaOrdemDiaView(sessao_crud.CrudDetailView):
@ -252,6 +253,24 @@ class ListMateriaOrdemDiaView(sessao_crud.CrudDetailView):
return self.render_to_response(context) return self.render_to_response(context)
def post(self, request, *args, **kwargs):
self.object = self.get_object()
pk = self.kwargs['pk']
# TODO: Existe uma forma de atualizar em lote de acordo
# com a forma abaixo, mas como setar o primeiro para "1"?
# OrdemDia.objects.filter(sessao_plenaria_id=pk)
# .order_by('numero_ordem').update(numero_ordem=3)
ordens = OrdemDia.objects.filter(sessao_plenaria_id=pk)
ordem_num = 1
for o in ordens:
o.numero_ordem = ordem_num
o.save()
ordem_num += 1
return self.get(self, request, args, kwargs)
class ListExpedienteOrdemDiaView(sessao_crud.CrudDetailView): class ListExpedienteOrdemDiaView(sessao_crud.CrudDetailView):
template_name = 'sessao/expediente_ordemdia_list.html' template_name = 'sessao/expediente_ordemdia_list.html'
@ -295,6 +314,24 @@ class ListExpedienteOrdemDiaView(sessao_crud.CrudDetailView):
return self.render_to_response(context) return self.render_to_response(context)
def post(self, request, *args, **kwargs):
self.object = self.get_object()
pk = self.kwargs['pk']
# TODO: Existe uma forma de atualizar em lote de acordo
# com a forma abaixo, mas como setar o primeiro para "1"?
# OrdemDia.objects.filter(sessao_plenaria_id=pk)
# .order_by('numero_ordem').update(numero_ordem=3)
expedientes = ExpedienteMateria.objects.filter(sessao_plenaria_id=pk)
exp_num = 1
for e in expedientes:
e.numero_ordem = exp_num
e.save()
exp_num += 1
return self.get(self, request, args, kwargs)
class MateriaOrdemDiaForm(forms.Form): class MateriaOrdemDiaForm(forms.Form):
data_sessao = forms.CharField(required=True) data_sessao = forms.CharField(required=True)
@ -370,7 +407,7 @@ class MateriaOrdemDiaView(FormMixin, sessao_crud.CrudDetailView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:materiaordemdia_list', return reverse('sessaoplenaria:materiaordemdia_list',
kwargs={'pk': pk}) kwargs={'pk': pk})
class EditMateriaOrdemDiaView(FormMixin, sessao_crud.CrudDetailView): class EditMateriaOrdemDiaView(FormMixin, sessao_crud.CrudDetailView):
@ -516,7 +553,7 @@ class ExpedienteOrdemDiaView(FormMixin, sessao_crud.CrudDetailView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:expedienteordemdia_list', return reverse('sessaoplenaria:expedienteordemdia_list',
kwargs={'pk': pk}) kwargs={'pk': pk})
class EditExpedienteOrdemDiaView(FormMixin, sessao_crud.CrudDetailView): class EditExpedienteOrdemDiaView(FormMixin, sessao_crud.CrudDetailView):
@ -682,7 +719,7 @@ class OradorExpedienteEdit(FormMixin, sessao_crud.CrudDetailView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:oradorexpediente', kwargs={'pk': pk}) return reverse('sessaoplenaria:oradorexpediente', kwargs={'pk': pk})
class OradorExpedienteView(FormMixin, sessao_crud.CrudDetailView): class OradorExpedienteView(FormMixin, sessao_crud.CrudDetailView):
@ -739,7 +776,7 @@ class OradorExpedienteView(FormMixin, sessao_crud.CrudDetailView):
url_discurso = orador.url_discurso url_discurso = orador.url_discurso
parlamentar = Parlamentar.objects.get( parlamentar = Parlamentar.objects.get(
id=orador.parlamentar_id) id=orador.parlamentar_id)
yield(numero_ordem, url_discurso, parlamentar) yield(numero_ordem, url_discurso, parlamentar)
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
@ -773,7 +810,7 @@ class MesaView(FormMixin, sessao_crud.CrudDetailView):
context.update({'integrantes': integrantes}) context.update({'integrantes': integrantes})
return self.render_to_response(context) return self.render_to_response(context)
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
self.object = self.get_object() self.object = self.get_object()
@ -838,7 +875,7 @@ class MesaView(FormMixin, sessao_crud.CrudDetailView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:mesa', kwargs={'pk': pk}) return reverse('sessaoplenaria:mesa', kwargs={'pk': pk})
class ResumoView(FormMixin, sessao_crud.CrudDetailView): class ResumoView(FormMixin, sessao_crud.CrudDetailView):
@ -1135,11 +1172,11 @@ class ExplicacaoView(FormMixin, sessao_crud.CrudDetailView):
url_discurso = orador.url_discurso url_discurso = orador.url_discurso
parlamentar = Parlamentar.objects.get( parlamentar = Parlamentar.objects.get(
id=orador.parlamentar_id) id=orador.parlamentar_id)
yield(numero_ordem, url_discurso, parlamentar) yield(numero_ordem, url_discurso, parlamentar)
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:explicacao', kwargs={'pk': pk}) return reverse('sessaoplenaria:explicacao', kwargs={'pk': pk})
class ExplicacaoDelete(FormMixin, sessao_crud.CrudDetailView): class ExplicacaoDelete(FormMixin, sessao_crud.CrudDetailView):
@ -1214,7 +1251,7 @@ class ExplicacaoEdit(FormMixin, sessao_crud.CrudDetailView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:explicacao', kwargs={'pk': pk}) return reverse('sessaoplenaria:explicacao', kwargs={'pk': pk})
class VotacaoForm(forms.Form): class VotacaoForm(forms.Form):
@ -1292,7 +1329,7 @@ class VotacaoEditView(FormMixin, sessao_crud.CrudDetailView):
def get_tipos_votacao(self): def get_tipos_votacao(self):
for tipo in TipoResultadoVotacao.objects.all(): for tipo in TipoResultadoVotacao.objects.all():
yield tipo yield tipo
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
@ -1404,7 +1441,7 @@ class VotacaoView(FormMixin, sessao_crud.CrudDetailView):
def get_tipos_votacao(self): def get_tipos_votacao(self):
for tipo in TipoResultadoVotacao.objects.all(): for tipo in TipoResultadoVotacao.objects.all():
yield tipo yield tipo
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
@ -1528,7 +1565,7 @@ class VotacaoNominalView(FormMixin, sessao_crud.CrudDetailView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('sessaoplenaria:materiaordemdia_list', return reverse('sessaoplenaria:materiaordemdia_list',
kwargs={'pk': pk}) kwargs={'pk': pk})
class VotacaoNominalEditView(FormMixin, sessao_crud.CrudDetailView): class VotacaoNominalEditView(FormMixin, sessao_crud.CrudDetailView):

7
templates/sessao/expediente_ordemdia_list.html

@ -29,7 +29,10 @@ Matérias do Expediente
</a></dd> </a></dd>
<button>Incluir várias matérias</button> <button>Incluir várias matérias</button>
<button>Reordenar Matérias na Ordem do Dia</button> <form method="POST" action="{% url 'sessaoplenaria:expedienteordemdia_list' object.pk %}">
<button>Atualizar</button> {% csrf_token %}
<input type="submit" id="expediente_reorder" name="expediente_reorder" value="Reordenar Matérias do Expediente" class="button secondary" />
</form>
{% endblock detail_content %} {% endblock detail_content %}

9
templates/sessao/materia_ordemdia_list.html

@ -44,11 +44,12 @@ Matérias da Ordem do Dia
</br> </br>
<a href="{% url 'sessaoplenaria:materiaordemdia_create' object.pk %}" class="button secondary"> <a href="{% url 'sessaoplenaria:materiaordemdia_create' object.pk %}" class="button secondary">
{% 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>
<button>Reordenar Matérias na Ordem do Dia</button> <form method="POST" action="{% url 'sessaoplenaria:materiaordemdia_list' object.pk %}">
<button>Atualizar</button> {% csrf_token %}
<input type="submit" id="materia_reorder" name="materia_reorder" value="Reordenar Matérias da Ordem do Dia" class="button secondary" />
</form>
{% endblock detail_content %} {% endblock detail_content %}
Loading…
Cancel
Save