Browse Source

Add list materias da ordem do dia

pull/7/head
Edward Ribeiro 9 years ago
parent
commit
ddf154b092
  1. 21
      sessao/urls.py
  2. 52
      sessao/views.py
  3. 26
      templates/sessao/materia_ordemdia_list.html
  4. 2
      templates/sessao/sessaoplenaria_detail.html

21
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<pk>\d+)/oradorexpediente/editar/(?P<oid>\d+)$',
OradorExpedienteEdit.as_view(), name='oradoreditar'),
url(r'^(?P<pk>\d+)/mesa$', MesaView.as_view(), name='mesa'),
url(r'^(?P<pk>\d+)/materiaordemdia$',
MateriaOrdemDiaView.as_view(), name='materiaordemdia'),
url(r'^(?P<pk>\d+)/materiaordemdia/list$',
ListMateriaOrdemDiaView.as_view(), name='materiaordemdia_list'),
url(r'^(?P<pk>\d+)/materiaordemdia/edit/(?P<mid>\d+)$$',
EditMateriaOrdemDiaView.as_view(), name='materiaordemdia_edit'),
url(r'^(?P<pk>\d+)/materiaordemdia/create$',
MateriaOrdemDiaView.as_view(), name='materiaordemdia_create'),
url(r'^(?P<pk>\d+)/resumo$',
ResumoView.as_view(), name='resumo'),
url(r'^(?P<pk>\d+)/explicacao$',

52
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,

26
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
<table border="1">
<tr><td>Matéria</th><th>Ementa</th><th>Resultado da Votação</th></tr>
{% for m in materias_ordem %}
<tr>
<td>
{{m.numero}} - {{m.titulo}}
</br>
{{m.autor}}
<td/>
<td>
{{m.observacao}}
</td>
</tr>
{% endfor %}
</table>
</ul>
</br>
<a href="{% url 'sessaoplenaria:materiaordemdia_create' object.pk %}" class="button secondary">{% trans 'Adicionar Matérias' %}</a></dd>
{% endblock detail_content %}

2
templates/sessao/sessaoplenaria_detail.html

@ -10,7 +10,7 @@
<dd><a href="{% url 'sessaoplenaria:oradorexpediente' object.pk %}" class="button secondary">{% trans 'Oradores do Expediente' %}</a></dd>
<dd><a href="{% url 'sessaoplenaria:mesa' object.pk %}" class="button secondary">{% trans 'Mesa' %}</a></dd>
<dd><a href="{% url 'sessaoplenaria:explicacao' object.pk %}" class="button secondary">{% trans 'Explicações Pessoais' %}</a></dd>
<dd><a href="{% url 'sessaoplenaria:materiaordemdia' object.pk %}" class="button secondary">{% trans 'Matérias' %}</a></dd>
<dd><a href="{% url 'sessaoplenaria:materiaordemdia_list' object.pk %}" class="button secondary">{% trans 'Matérias' %}</a></dd>
<dd><a href="{% url 'sessaoplenaria:painel' object.pk %}" class="button secondary">{% trans 'Painel Eletrônico' %}</a></dd>
<dd><a href="{% url 'sessaoplenaria:resumo' object.pk %}" class="button secondary">{% trans 'Resumo' %}</a></dd>
</dl>

Loading…
Cancel
Save