Browse Source

Add Pauta da Sessao

pull/98/head
Eduardo Edson Batista Cordeiro Alves 9 years ago
parent
commit
725c6fc2e7
  1. 3
      comissoes/views.py
  2. 6
      sessao/urls.py
  3. 102
      sessao/views.py
  4. 2
      templates/base.html
  5. 85
      templates/sessao/pauta_sessao_detail.html
  6. 20
      templates/sessao/pauta_sessao_list.html

3
comissoes/views.py

@ -118,6 +118,7 @@ class MateriasView(comissao_crud.CrudDetailView):
class ReunioesView(comissao_crud.CrudDetailView):
template_name = 'comissoes/reunioes.html'
class ParticipacaoCadastroForm(ModelForm):
YES_OR_NO = (
@ -132,7 +133,7 @@ class ParticipacaoCadastroForm(ModelForm):
data_desfiliacao__isnull=True, parlamentar__ativo=True).order_by(
'parlamentar__nome_parlamentar'),
empty_label='Selecione',
)
)
titular = forms.BooleanField(
widget=forms.RadioSelect(choices=YES_OR_NO), required=True)

6
sessao/urls.py

@ -1,4 +1,5 @@
from django.conf.urls import include, url
from sessao.views import (EditExpedienteOrdemDiaView, EditMateriaOrdemDiaView,
ExpedienteOrdemDiaView, ExpedienteView,
ExplicacaoDelete, ExplicacaoEdit, ExplicacaoView,
@ -6,6 +7,7 @@ from sessao.views import (EditExpedienteOrdemDiaView, EditMateriaOrdemDiaView,
MateriaOrdemDiaView, MesaView,
OradorExpedienteDelete, OradorExpedienteEdit,
OradorExpedienteView, PainelView,
PautaSessaoDetailView, PautaSessaoListView,
PresencaOrdemDiaView, PresencaView, ResumoView,
SessaoListView, VotacaoEditView,
VotacaoExpedienteEditView, VotacaoExpedienteView,
@ -81,6 +83,10 @@ urlpatterns_sessao = sessao_crud.urlpatterns + [
VotacaoExpedienteEditView.as_view(), name='votacaosecretaexpedit'),
url(r'^sessao-list$',
SessaoListView.as_view(), name='list_sessao'),
url(r'^pauta-sessao-list$',
PautaSessaoListView.as_view(), name='list_pauta_sessao'),
url(r'^(?P<pk>\d+)/pauta-sessao-detail$',
PautaSessaoDetailView.as_view(), name='pauta_sessao_detail'),
]
sessao_urls = urlpatterns_sessao, sessao_crud.namespace, sessao_crud.namespace

102
sessao/views.py

@ -1,7 +1,6 @@
from datetime import datetime
from re import sub
import sapl
from django import forms
from django.core.exceptions import ObjectDoesNotExist
from django.core.urlresolvers import reverse
@ -10,6 +9,8 @@ from django.utils.html import strip_tags
from django.utils.translation import ugettext_lazy as _
from django.views.generic import ListView
from django.views.generic.edit import FormMixin
import sapl
from materia.models import Autoria, TipoMateriaLegislativa
from parlamentares.models import Parlamentar
from sapl.crud import build_crud
@ -1156,7 +1157,6 @@ class ResumoView(FormMixin, sessao_crud.CrudDetailView):
context.update({'presenca_ordem': parlamentares_ordem})
# =====================================================================
# Matérias Ordem do Dia
ordem = OrdemDia.objects.filter(
sessao_plenaria_id=self.object.id)
@ -2229,3 +2229,101 @@ class SessaoListView(ListView):
context['page_range'] = sapl.crud.make_pagination(
page_obj.number, paginator.num_pages)
return context
class PautaSessaoListView(SessaoListView):
template_name = "sessao/pauta_sessao_list.html"
class PautaSessaoDetailView(sessao_crud.CrudDetailView):
template_name = "sessao/pauta_sessao_detail.html"
def get(self, request, *args, **kwargs):
self.object = self.get_object()
context = self.get_context_data(object=self.object)
# =====================================================================
# Identificação Básica
abertura = self.object.data_inicio.strftime('%d/%m/%Y')
encerramento = self.object.data_fim.strftime('%d/%m/%Y')
context.update({'basica': ['Tipo de Sessão: ' + str(self.object.tipo),
'Abertura: ' + abertura,
'Encerramento: ' + encerramento,
]})
# =====================================================================
# Matérias Expediente
materias = ExpedienteMateria.objects.filter(
sessao_plenaria_id=self.object.id)
materias_expediente = []
for m in materias:
ementa = m.observacao
titulo = m.materia
numero = m.numero_ordem
if m.resultado:
resultado = m.resultado
else:
resultado = 'Matéria não votada'
autoria = Autoria.objects.filter(materia_id=m.materia_id)
autor = [str(x.autor) for x in autoria]
mat = {'ementa': ementa,
'titulo': titulo,
'numero': numero,
'resultado': resultado,
'autor': autor
}
materias_expediente.append(mat)
context.update({'materia_expediente': materias_expediente})
# =====================================================================
# Expedientes
expediente = ExpedienteSessao.objects.filter(
sessao_plenaria_id=self.object.id)
expedientes = []
for e in expediente:
tipo = TipoExpediente.objects.get(
id=e.tipo_id)
conteudo = sub(
'&nbsp;', ' ', strip_tags(e.conteudo))
ex = {'tipo': tipo, 'conteudo': conteudo}
expedientes.append(ex)
context.update({'expedientes': expedientes})
# =====================================================================
# Matérias Ordem do Dia
ordem = OrdemDia.objects.filter(
sessao_plenaria_id=self.object.id)
materias_ordem = []
for o in ordem:
ementa = o.observacao
titulo = o.materia
numero = o.numero_ordem
# Verificar resultado
if o.resultado:
resultado = o.resultado
else:
resultado = 'Matéria não votada'
autoria = Autoria.objects.filter(
materia_id=o.materia_id)
autor = [str(x.autor) for x in autoria]
mat = {'ementa': ementa,
'titulo': titulo,
'numero': numero,
'resultado': resultado,
'autor': autor
}
materias_ordem.append(mat)
context.update({'materias_ordem': materias_ordem})
return self.render_to_response(context)

2
templates/base.html

@ -79,7 +79,7 @@
<li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'list_proposicao' %}">Proposições</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'materialegislativa:list' %}">Matérias Legislativas</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'sessaoplenaria:list_sessao' %}">Sessões Plenárias</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="#">Pautas das Sessões</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="{% url 'sessaoplenaria:list_pauta_sessao' %}">Pautas das Sessões</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="#">Atas das Sessões</a></li>
<li class="nav__sub-item"><a class="nav__sub-link" href="#">Reuniões das Comissões</a></li>
<!-- <li class="nav__sub-item"><a class="nav__sub-link" href="#">Tramitação em Lote</a></li>

85
templates/sessao/pauta_sessao_detail.html

@ -0,0 +1,85 @@
{% extends "crud/detail.html" %}
{% load i18n %}
{% load crispy_forms_tags %}
{% block actions %}{% endblock %}
{% block detail_content %}
<fieldset>
<legend>Pauta da Sessão</legend>
<h5 align="center">{{ sessaoplenaria }}</h5>
<fieldset>
<legend>Identificação Básica</legend>
<ul class="small-block-grid-3 medium-block-grid-3 large-block-grid-3">
{% for b in basica %}
<li>{{b}}</li>
{% endfor %}
</ul>
</fieldset>
<fieldset>
<legend>Expedientes</legend>
<ul class="small-block-grid-2 medium-block-grid-2 large-block-grid-2">
{% for e in expedientes %}
<li><b>{{e.tipo}}:</b></li>
<li>{{e.conteudo|safe}}</li>
{% endfor %}
</ul>
</fieldset>
<fieldset>
<legend>Matérias do Expediente</legend>
<ul class="small-block-grid-3 medium-block-grid-3 large-block-grid-3">
<li>Matéria</li>
<li>Ementa</li>
<li>Resultado da Votação</li>
</ul>
<ul class="small-block-grid-3 medium-block-grid-3 large-block-grid-3">
{% for m in materia_expediente %}
<li>
{{m.numero}} - {{m.titulo}}
<br />
<b>Autor{{ m.autor|length|pluralize:"es" }}</b>: {{ m.autor|join:', ' }}
</li>
<li>{{m.ementa|safe}}</li>
<li>{{m.resultado}}</li>
{% endfor %}
</ul>
</fieldset>
<fieldset>
<legend>Oradores do Expediente</legend>
<ul class="small-block-grid-2 medium-block-grid-2 large-block-grid-2">
<li>Parlamentar</li>
<li>Discurso</li>
</ul>
<ul class="small-block-grid-2 medium-block-grid-2 large-block-grid-2">
{% for o in oradores %}
<li><b>{{o.numero_ordem}}</b> - {{o.parlamentar}}</li>
<li>{{o.url_discurso}}</li>
{% endfor %}
</ul>
</fieldset>
<fieldset>
<legend>Matérias da Ordem do Dia</legend>
<ul class="small-block-grid-3 medium-block-grid-3 large-block-grid-3">
<li>Matéria</li>
<li>Ementa</li>
<li>Resultado da Votação</li>
</ul>
<ul class="small-block-grid-3 medium-block-grid-3 large-block-grid-3">
{% for m in materias_ordem %}
<li>
{{m.numero}} - {{m.titulo}}
<br />
<b>Autor{{ m.autor|length|pluralize:"es" }}</b>: {{ m.autor|join:', ' }}
</li>
<li>{{m.ementa|safe}}</li>
<li>{{m.resultado}}</li>
{% endfor %}
</ul>
</fieldset>
</fieldset>
{% endblock detail_content %}

20
templates/sessao/pauta_sessao_list.html

@ -0,0 +1,20 @@
{% extends "crud/list.html" %}
{% load i18n %}
{% load crispy_forms_tags %}
{% block base_content %}
{% block detail_content %}
<table width="100%">
{% for sessao in page_obj %}
<tr>
<th>
<a href="{% url 'sessaoplenaria:pauta_sessao_detail' sessao.id %}">{{sessao}}</a>
<br />
Data: {{sessao.data_inicio}} - Abertura {{sessao.hora_inicio}}
</th>
</tr>
{% endfor %}
</table>
{% include "paginacao.html" %}
{% endblock %}
{% endblock %}
Loading…
Cancel
Save