From ddf154b0921bc103ea24e2080ab466c238b34251 Mon Sep 17 00:00:00 2001 From: Edward Ribeiro Date: Mon, 21 Sep 2015 17:43:49 -0300 Subject: [PATCH] Add list materias da ordem do dia --- sessao/urls.py | 21 +++++---- sessao/views.py | 52 ++++++++++++++++++++- templates/sessao/materia_ordemdia_list.html | 26 +++++++++++ templates/sessao/sessaoplenaria_detail.html | 2 +- 4 files changed, 91 insertions(+), 10 deletions(-) create mode 100644 templates/sessao/materia_ordemdia_list.html diff --git a/sessao/urls.py b/sessao/urls.py index 4fb71fb98..f7b7eb482 100644 --- a/sessao/urls.py +++ b/sessao/urls.py @@ -1,11 +1,12 @@ from django.conf.urls import include, url -from sessao.views import (ExpedienteView, ExplicacaoDelete, ExplicacaoEdit, - ExplicacaoView, MateriaOrdemDiaView, MesaView, - OradorExpedienteDelete, OradorExpedienteEdit, - OradorExpedienteView, PainelView, - PresencaOrdemDiaView, PresencaView, ResumoView, - sessao_crud, tipo_expediente_crud, +from sessao.views import (EditMateriaOrdemDiaView, ExpedienteView, + ExplicacaoDelete, ExplicacaoEdit, ExplicacaoView, + ListMateriaOrdemDiaView, MateriaOrdemDiaView, + MesaView, OradorExpedienteDelete, + OradorExpedienteEdit, OradorExpedienteView, + PainelView, PresencaOrdemDiaView, PresencaView, + ResumoView, sessao_crud, tipo_expediente_crud, tipo_resultado_votacao_crud, tipo_sessao_crud) urlpatterns_sessao = sessao_crud.urlpatterns + [ @@ -25,8 +26,12 @@ urlpatterns_sessao = sessao_crud.urlpatterns + [ url(r'^(?P\d+)/oradorexpediente/editar/(?P\d+)$', OradorExpedienteEdit.as_view(), name='oradoreditar'), url(r'^(?P\d+)/mesa$', MesaView.as_view(), name='mesa'), - url(r'^(?P\d+)/materiaordemdia$', - MateriaOrdemDiaView.as_view(), name='materiaordemdia'), + url(r'^(?P\d+)/materiaordemdia/list$', + ListMateriaOrdemDiaView.as_view(), name='materiaordemdia_list'), + url(r'^(?P\d+)/materiaordemdia/edit/(?P\d+)$$', + EditMateriaOrdemDiaView.as_view(), name='materiaordemdia_edit'), + url(r'^(?P\d+)/materiaordemdia/create$', + MateriaOrdemDiaView.as_view(), name='materiaordemdia_create'), url(r'^(?P\d+)/resumo$', ResumoView.as_view(), name='resumo'), url(r'^(?P\d+)/explicacao$', diff --git a/sessao/views.py b/sessao/views.py index 04e607760..bd92c96fc 100644 --- a/sessao/views.py +++ b/sessao/views.py @@ -6,7 +6,6 @@ from django.core.urlresolvers import reverse from django.utils.html import strip_tags from django.utils.translation import ugettext_lazy as _ from django.views.generic.edit import FormMixin -from extra_views import InlineFormSetView from materia.models import Autoria, TipoMateriaLegislativa from parlamentares.models import Parlamentar @@ -215,6 +214,51 @@ class PresencaOrdemDiaView(FormMixin, sessao_crud.CrudDetailView): yield (parlamentar, True) +class ListMateriaOrdemDiaView(sessao_crud.CrudDetailView): + template_name = 'sessao/materia_ordemdia_list.html' + + def get(self, request, *args, **kwargs): + self.object = self.get_object() + context = self.get_context_data(object=self.object) + + 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) + if len(autoria) > 1: + autor = 'Autores: ' + else: + autor = 'Autor: ' + + for a in autoria: + autor += str(a.autor) + autor += ' ' + + resultado = '' + + mat = {'pk': pk, + 'oid': o.id, + 'ementa': ementa, + 'titulo': titulo, + 'numero': numero, + 'resultado': resultado, + 'autor': autor + } + materias_ordem.append(mat) + + sorted(materias_ordem, key=lambda x: x['numero']) + + context.update({'materias_ordem': materias_ordem}) + + return self.render_to_response(context) + + class MateriaOrdemDiaForm(forms.Form): data_sessao = forms.CharField(required=True) numero_ordem = forms.IntegerField(required=True) @@ -287,6 +331,11 @@ class MateriaOrdemDiaView(FormMixin, sessao_crud.CrudDetailView): return self.form_invalid(form) +class EditMateriaOrdemDiaView(FormMixin, sessao_crud.CrudDetailView): + template_name = 'sessao/materia_ordemdia.html' + form_class = MateriaOrdemDiaForm + + class OradorForm(forms.Form): numero_ordem = forms.IntegerField(required=True) parlamentar = forms.CharField(required=False, max_length=20) @@ -697,6 +746,7 @@ class ResumoView(FormMixin, sessao_crud.CrudDetailView): for a in autoria: autor += str(a.autor) autor += ' ' + # autor += ' '.join(map(lambda a : str(a.autor), autoria)) mat = {'ementa': ementa, 'titulo': titulo, diff --git a/templates/sessao/materia_ordemdia_list.html b/templates/sessao/materia_ordemdia_list.html new file mode 100644 index 000000000..748dc8548 --- /dev/null +++ b/templates/sessao/materia_ordemdia_list.html @@ -0,0 +1,26 @@ +{% extends "sessao/sessaoplenaria_detail.html" %} +{% load i18n %} + +{% block detail_content %} + +Matérias da Ordem do Dia + + + + {% for m in materias_ordem %} + + + + {% endfor %} +
MatériaEmentaResultado da Votação
+ {{m.numero}} - {{m.titulo}} +
+ {{m.autor}} +
+ + {{m.observacao}} +
+ +
+ {% trans 'Adicionar Matérias' %} +{% endblock detail_content %} \ No newline at end of file diff --git a/templates/sessao/sessaoplenaria_detail.html b/templates/sessao/sessaoplenaria_detail.html index d48b0e606..3ffd8460d 100644 --- a/templates/sessao/sessaoplenaria_detail.html +++ b/templates/sessao/sessaoplenaria_detail.html @@ -10,7 +10,7 @@
{% trans 'Oradores do Expediente' %}
{% trans 'Mesa' %}
{% trans 'Explicações Pessoais' %}
-
{% trans 'Matérias' %}
+
{% trans 'Matérias' %}
{% trans 'Painel Eletrônico' %}
{% trans 'Resumo' %}