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): class ReunioesView(comissao_crud.CrudDetailView):
template_name = 'comissoes/reunioes.html' template_name = 'comissoes/reunioes.html'
class ParticipacaoCadastroForm(ModelForm): class ParticipacaoCadastroForm(ModelForm):
YES_OR_NO = ( YES_OR_NO = (
@ -132,7 +133,7 @@ class ParticipacaoCadastroForm(ModelForm):
data_desfiliacao__isnull=True, parlamentar__ativo=True).order_by( data_desfiliacao__isnull=True, parlamentar__ativo=True).order_by(
'parlamentar__nome_parlamentar'), 'parlamentar__nome_parlamentar'),
empty_label='Selecione', empty_label='Selecione',
) )
titular = forms.BooleanField( titular = forms.BooleanField(
widget=forms.RadioSelect(choices=YES_OR_NO), required=True) 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 django.conf.urls import include, url
from sessao.views import (EditExpedienteOrdemDiaView, EditMateriaOrdemDiaView, from sessao.views import (EditExpedienteOrdemDiaView, EditMateriaOrdemDiaView,
ExpedienteOrdemDiaView, ExpedienteView, ExpedienteOrdemDiaView, ExpedienteView,
ExplicacaoDelete, ExplicacaoEdit, ExplicacaoView, ExplicacaoDelete, ExplicacaoEdit, ExplicacaoView,
@ -6,6 +7,7 @@ from sessao.views import (EditExpedienteOrdemDiaView, EditMateriaOrdemDiaView,
MateriaOrdemDiaView, MesaView, MateriaOrdemDiaView, MesaView,
OradorExpedienteDelete, OradorExpedienteEdit, OradorExpedienteDelete, OradorExpedienteEdit,
OradorExpedienteView, PainelView, OradorExpedienteView, PainelView,
PautaSessaoDetailView, PautaSessaoListView,
PresencaOrdemDiaView, PresencaView, ResumoView, PresencaOrdemDiaView, PresencaView, ResumoView,
SessaoListView, VotacaoEditView, SessaoListView, VotacaoEditView,
VotacaoExpedienteEditView, VotacaoExpedienteView, VotacaoExpedienteEditView, VotacaoExpedienteView,
@ -81,6 +83,10 @@ urlpatterns_sessao = sessao_crud.urlpatterns + [
VotacaoExpedienteEditView.as_view(), name='votacaosecretaexpedit'), VotacaoExpedienteEditView.as_view(), name='votacaosecretaexpedit'),
url(r'^sessao-list$', url(r'^sessao-list$',
SessaoListView.as_view(), name='list_sessao'), 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 sessao_urls = urlpatterns_sessao, sessao_crud.namespace, sessao_crud.namespace

102
sessao/views.py

@ -1,7 +1,6 @@
from datetime import datetime from datetime import datetime
from re import sub from re import sub
import sapl
from django import forms from django import forms
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist
from django.core.urlresolvers import reverse 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.utils.translation import ugettext_lazy as _
from django.views.generic import ListView from django.views.generic import ListView
from django.views.generic.edit import FormMixin from django.views.generic.edit import FormMixin
import sapl
from materia.models import Autoria, TipoMateriaLegislativa from materia.models import Autoria, TipoMateriaLegislativa
from parlamentares.models import Parlamentar from parlamentares.models import Parlamentar
from sapl.crud import build_crud from sapl.crud import build_crud
@ -1156,7 +1157,6 @@ class ResumoView(FormMixin, sessao_crud.CrudDetailView):
context.update({'presenca_ordem': parlamentares_ordem}) context.update({'presenca_ordem': parlamentares_ordem})
# ===================================================================== # =====================================================================
# Matérias Ordem do Dia # Matérias Ordem do Dia
ordem = OrdemDia.objects.filter( ordem = OrdemDia.objects.filter(
sessao_plenaria_id=self.object.id) sessao_plenaria_id=self.object.id)
@ -2229,3 +2229,101 @@ class SessaoListView(ListView):
context['page_range'] = sapl.crud.make_pagination( context['page_range'] = sapl.crud.make_pagination(
page_obj.number, paginator.num_pages) page_obj.number, paginator.num_pages)
return context 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 '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 '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="{% 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="#">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="#">Reuniões das Comissões</a></li>
<!-- <li class="nav__sub-item"><a class="nav__sub-link" href="#">Tramitação em Lote</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