Browse Source

Add page Resumo in Sessao

pull/7/head
Eduardo Edson Batista Cordeiro Alves 9 years ago
parent
commit
e7a0c2fb8c
  1. 11
      sessao/urls.py
  2. 184
      sessao/views.py
  3. 121
      templates/sessao/Resumo.html
  4. 3
      templates/sessao/sessaoplenaria_detail.html

11
sessao/urls.py

@ -3,9 +3,9 @@ from django.conf.urls import include, url
from sessao.views import (ExpedienteView, MateriaOrdemDiaView, MesaView,
OradorExpedienteDelete, OradorExpedienteEdit,
OradorExpedienteView, PainelView,
PresencaOrdemDiaView, PresencaView, sessao_crud,
tipo_expediente_crud, tipo_resultado_votacao_crud,
tipo_sessao_crud)
PresencaOrdemDiaView, PresencaView, ResumoView,
sessao_crud, tipo_expediente_crud,
tipo_resultado_votacao_crud, tipo_sessao_crud)
urlpatterns_sessao = sessao_crud.urlpatterns + [
url(r'^(?P<pk>\d+)/expediente$',
@ -25,8 +25,9 @@ urlpatterns_sessao = sessao_crud.urlpatterns + [
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')
MateriaOrdemDiaView.as_view(), name='materiaordemdia'),
url(r'^(?P<pk>\d+)/resumo$',
ResumoView.as_view(), name='resumo')
]
sessao_urls = urlpatterns_sessao, sessao_crud.namespace, sessao_crud.namespace

184
sessao/views.py

@ -8,7 +8,7 @@ from django.utils.translation import ugettext_lazy as _
from django.views.generic.edit import FormMixin
from extra_views import InlineFormSetView
from materia.models import TipoMateriaLegislativa
from materia.models import Autoria, TipoMateriaLegislativa
from parlamentares.models import Parlamentar
from sapl.crud import build_crud
@ -539,3 +539,185 @@ class MesaView(FormMixin, sessao_crud.CrudDetailView):
lista = list(set(lista_cargos) - set(lista_cargos_ocupados))
lista.sort(key=lambda x: x.descricao)
return lista
class ResumoView(FormMixin, sessao_crud.CrudDetailView):
template_name = 'sessao/Resumo.html'
def get(self, request, *args, **kwargs):
self.object = self.get_object()
context = self.get_context_data(object=self.object)
# =====================================================================
# Identificação Básica
context.update({'basica': ['Tipo de Sessão: ' + str(self.object.tipo),
'Abertura: ' + str(self.object.data_inicio),
'Encerramento: ' + str(self.object.data_fim)
]})
# =====================================================================
# Conteúdo Multimídia
if(self.object.url_audio):
context.update({'multimidia_audio':
'Audio: ' + str(self.object.url_audio)})
else:
context.update({'multimidia_audio': 'Audio: Indisponivel'})
if(self.object.url_video):
context.update({'multimidia_video':
'Video: ' + str(self.object.url_video)})
else:
context.update({'multimidia_video': 'Video: Indisponivel'})
# =====================================================================
# Mesa Diretora
mesa = IntegranteMesa.objects.filter(
sessao_plenaria=self.object)
integrantes = []
for m in mesa:
parlamentar = Parlamentar.objects.get(
id=m.parlamentar_id)
cargo = CargoMesa.objects.get(
id=m.cargo_id)
integrante = {'parlamentar': parlamentar, 'cargo': cargo}
integrantes.append(integrante)
context.update({'mesa': integrantes})
# =====================================================================
# Presença Sessão
presencas = SessaoPlenariaPresenca.objects.filter(
sessao_plen_id=self.object.id
)
parlamentares_sessao = []
for p in presencas:
parlamentar = Parlamentar.objects.get(
id=p.parlamentar_id)
parlamentares_sessao.append(parlamentar)
context.update({'presenca_sessao': parlamentares_sessao})
# =====================================================================
# 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 = e.conteudo
ex = {'tipo': tipo, 'conteudo': conteudo}
expedientes.append(ex)
context.update({'expedientes': expedientes})
# =====================================================================
# 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)
if len(autoria) > 1:
autor = 'Autores: '
else:
autor = 'Autor: '
for a in autoria:
autor += str(a.autor)
autor += ' '
mat = {'ementa': ementa,
'titulo': titulo,
'numero': numero,
'resultado': resultado,
'autor': autor
}
materias_expediente.append(mat)
context.update({'materia_expediente': materias_expediente})
# =====================================================================
# Oradores Expediente
oradores = []
for orador in OradorExpediente.objects.filter(
sessao_plenaria_id=self.object.id):
numero_ordem = orador.numero_ordem
url_discurso = orador.url_discurso
parlamentar = Parlamentar.objects.get(
id=orador.parlamentar_id)
ora = {'numero_ordem': numero_ordem,
'url_discurso': url_discurso,
'parlamentar': parlamentar
}
oradores.append(ora)
context.update({'oradores': oradores})
# =====================================================================
# Presença Ordem do Dia
presencas = PresencaOrdemDia.objects.filter(
sessao_plenaria_id=self.object.id
)
parlamentares_ordem = []
for p in presencas:
parlamentar = Parlamentar.objects.get(
id=p.parlamentar_id)
parlamentares_ordem.append(parlamentar)
context.update({'presenca_ordem': parlamentares_ordem})
# =====================================================================
# 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 m.resultado:
resultado = m.resultado
else:
resultado = 'Matéria não votada'
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 += ' '
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)

121
templates/sessao/Resumo.html

@ -0,0 +1,121 @@
{% extends "sessao/sessaoplenaria_detail.html" %}
{% load i18n %}
{% load crispy_forms_tags %}
{% block detail_content %}
<fieldset>
<legend>Resumo</legend>
<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>Conteúdo Multimídia</legend>
<ul class="small-block-grid-2 medium-block-grid-2 large-block-grid-2">
<li>{{multimidia_audio}}</li>
<li>{{multimidia_video}}</li>
</ul>
</fieldset>
<fieldset>
<legend>Mesa Diretora</legend>
<ul class="small-block-grid-1 medium-block-grid-1 large-block-grid-1">
{% for m in mesa %}
<li><b>{{m.cargo}}: </b>{{m.parlamentar.nome_parlamentar}}</li>
{% endfor %}
</ul>
</fieldset>
<fieldset>
<legend>Lista de Presença na Sessão</legend>
<ul class="small-block-grid-1 medium-block-grid-1 large-block-grid-1">
{% for p in presenca_sessao %}
<li>{{p}}</li>
{% endfor %}
</ul>
</fieldset>
<fieldset>
<legend>Expedientes</legend>
<ul class="small-block-grid-1 medium-block-grid-1 large-block-grid-1">
{% for e in expedientes %}
<li>
<b>{{e.tipo}}:</b>
<br />
{{e.conteudo}}
</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 />
{{m.autor}}
</li>
<li>{{m.ementa}}</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>Lista de Presença na Ordem do Dia</legend>
<ul class="small-block-grid-1 medium-block-grid-1 large-block-grid-1">
{% for p in presenca_ordem %}
<li>{{p}}</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 />
{{m.autor}}
</li>
<li>{{m.ementa}}</li>
<li>{{m.resultado}}</li>
{% endfor %}
</ul>
</fieldset>
</fieldset>
{% endblock detail_content %}

3
templates/sessao/sessaoplenaria_detail.html

@ -9,7 +9,8 @@
<dd><a href="{% url 'sessaoplenaria:presencaordemdia' object.pk %}" class="button secondary">{% trans 'Presença Ordem do Dia' %}</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:painel' object.pk %}" class="button secondary">{% trans 'Painel Eletrônico' %}</a></dd>
<dd><a href="{% url 'sessaoplenaria:materiaordemdia' 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>
{% endblock sections_nav %}

Loading…
Cancel
Save