Browse Source

Add list materias da ordem do dia

pull/6/head
Edward Ribeiro 9 years ago
committed by LeandroRoberto
parent
commit
eaaca4dbe7
  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 django.conf.urls import include, url
from sessao.views import (ExpedienteView, ExplicacaoDelete, ExplicacaoEdit, from sessao.views import (EditMateriaOrdemDiaView, ExpedienteView,
ExplicacaoView, MateriaOrdemDiaView, MesaView, ExplicacaoDelete, ExplicacaoEdit, ExplicacaoView,
OradorExpedienteDelete, OradorExpedienteEdit, ListMateriaOrdemDiaView, MateriaOrdemDiaView,
OradorExpedienteView, PainelView, MesaView, OradorExpedienteDelete,
PresencaOrdemDiaView, PresencaView, ResumoView, OradorExpedienteEdit, OradorExpedienteView,
sessao_crud, tipo_expediente_crud, PainelView, PresencaOrdemDiaView, PresencaView,
ResumoView, sessao_crud, tipo_expediente_crud,
tipo_resultado_votacao_crud, tipo_sessao_crud) tipo_resultado_votacao_crud, tipo_sessao_crud)
urlpatterns_sessao = sessao_crud.urlpatterns + [ urlpatterns_sessao = sessao_crud.urlpatterns + [
@ -25,8 +26,12 @@ urlpatterns_sessao = sessao_crud.urlpatterns + [
url(r'^(?P<pk>\d+)/oradorexpediente/editar/(?P<oid>\d+)$', url(r'^(?P<pk>\d+)/oradorexpediente/editar/(?P<oid>\d+)$',
OradorExpedienteEdit.as_view(), name='oradoreditar'), OradorExpedienteEdit.as_view(), name='oradoreditar'),
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$', url(r'^(?P<pk>\d+)/materiaordemdia/list$',
MateriaOrdemDiaView.as_view(), name='materiaordemdia'), 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$', url(r'^(?P<pk>\d+)/resumo$',
ResumoView.as_view(), name='resumo'), ResumoView.as_view(), name='resumo'),
url(r'^(?P<pk>\d+)/explicacao$', 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.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 extra_views import InlineFormSetView
from materia.models import Autoria, TipoMateriaLegislativa from materia.models import Autoria, TipoMateriaLegislativa
from parlamentares.models import Parlamentar from parlamentares.models import Parlamentar
@ -215,6 +214,51 @@ class PresencaOrdemDiaView(FormMixin, sessao_crud.CrudDetailView):
yield (parlamentar, True) 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): class MateriaOrdemDiaForm(forms.Form):
data_sessao = forms.CharField(required=True) data_sessao = forms.CharField(required=True)
numero_ordem = forms.IntegerField(required=True) numero_ordem = forms.IntegerField(required=True)
@ -287,6 +331,11 @@ class MateriaOrdemDiaView(FormMixin, sessao_crud.CrudDetailView):
return self.form_invalid(form) return self.form_invalid(form)
class EditMateriaOrdemDiaView(FormMixin, sessao_crud.CrudDetailView):
template_name = 'sessao/materia_ordemdia.html'
form_class = MateriaOrdemDiaForm
class OradorForm(forms.Form): class OradorForm(forms.Form):
numero_ordem = forms.IntegerField(required=True) numero_ordem = forms.IntegerField(required=True)
parlamentar = forms.CharField(required=False, max_length=20) parlamentar = forms.CharField(required=False, max_length=20)
@ -697,6 +746,7 @@ class ResumoView(FormMixin, sessao_crud.CrudDetailView):
for a in autoria: for a in autoria:
autor += str(a.autor) autor += str(a.autor)
autor += ' ' autor += ' '
# autor += ' '.join(map(lambda a : str(a.autor), autoria))
mat = {'ementa': ementa, mat = {'ementa': ementa,
'titulo': titulo, '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: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: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: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: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> <dd><a href="{% url 'sessaoplenaria:resumo' object.pk %}" class="button secondary">{% trans 'Resumo' %}</a></dd>
</dl> </dl>

Loading…
Cancel
Save