From 2101ba26147965843ab4358f944b47589489bba1 Mon Sep 17 00:00:00 2001
From: Eduardo Calil
Date: Tue, 23 May 2017 18:38:03 -0300
Subject: [PATCH] Fix #414 ordem resumo (#1109)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Divide o template de resumo em blocos
* Cria a funcionalidade
* Pequena correcao
* add arq sql no instalador de reutil. da app sapl
* Conserta erro teste
* fix #1092 - Altera o destino dos documentos migrados (#1093)
* Altera o destino dos documentos migrados
Signed-off-by: Luciano Almeida
* Usa a data de matéria em doc acessório
Signed-off-by: Luciano Almeida
* ajusta caminho public private
* Faz a ordenação para o arquivo impresso
* fix #1098 (#1107)
* Padroniza tamanho foto para mesa (#1088)
* Adiciona permissão a tela de ordenação
* Bug Fix
* Fix 1104 (#1110)
* adiciona poppler-utils (#1113)
* Adiciona poppler-utils, onde está pdftotext que é usado por indexador.
* redesenha a exibição dos votos na tela de votação nominal #1100 (#1101)
* resultado de votação nominal
* Update nominal_detail.html
* Update nominal_edit.html
* Adiciona URL do Interlegis ao rodapé da página.
* Somente mostra interessado se Doc Adm e mostra Autor em listagem de pesquisa
* HOT-FIX: identificador de protocolo errado
* Atualiza código devido a deprecated na drf
* HOT-FIX: possível fix para erro de render no search index
* Add pesquisa em Autor pelo campo ativo de parlamentar
* Gera migração referente ao commit #285d32e
Signed-off-by: Eliseu Egewarth
* Add bsc param de Autor nos Models lig via GR a Autor
* campo texto para autor documentos acessorios em lote (#1117)
* Conserto paliativo para doc acessorio em lote
* Conserta DocumentoAcessorioEmLote
* fix conserta acessorio em lote (#1119)
* Melhorias no detail de protocolo
* Captura erro de indexação de arquivo.
* Fix #1111
* Divide o template de resumo em blocos
* Cria a funcionalidade
* Pequena correcao
* Conserta erro teste
* Faz a ordenação para o arquivo impresso
* Adiciona permissão a tela de ordenação
* Faz o merge das migrations
---
sapl/base/urls.py | 3 +-
.../migrations/0005_auto_20170522_1051.py | 32 ++++
sapl/materia/migrations/0006_merge.py | 16 ++
.../migrations/0004_auto_20170522_1051.py | 22 +++
sapl/norma/migrations/0005_merge.py | 16 ++
.../templates/pdf_sessao_plenaria_gerar.py | 48 ++++-
sapl/rules/map_rules.py | 1 +
sapl/sessao/forms.py | 81 ++++++++-
.../sessao/migrations/0003_resumoordenacao.py | 35 ++++
sapl/sessao/models.py | 25 +++
sapl/sessao/urls.py | 6 +-
sapl/sessao/views.py | 99 ++++++++++-
.../blocos_resumo/conteudo_multimidia.html | 8 +
.../sessao/blocos_resumo/expedientes.html | 17 ++
.../blocos_resumo/identificacao_basica.html | 8 +
.../sessao/blocos_resumo/lista_presenca.html | 8 +
.../lista_presenca_ordem_dia.html | 8 +
.../blocos_resumo/materias_expediente.html | 25 +++
.../blocos_resumo/materias_ordem_dia.html | 25 +++
.../sessao/blocos_resumo/mesa_diretora.html | 10 ++
.../blocos_resumo/oradores_expediente.html | 14 ++
.../blocos_resumo/oradores_explicacoes.html | 14 ++
sapl/templates/sessao/resumo.html | 165 +++---------------
sapl/templates/sessao/resumo_ordenacao.html | 13 ++
sapl/templates/sistema.html | 2 +-
25 files changed, 538 insertions(+), 163 deletions(-)
create mode 100644 sapl/materia/migrations/0005_auto_20170522_1051.py
create mode 100644 sapl/materia/migrations/0006_merge.py
create mode 100644 sapl/norma/migrations/0004_auto_20170522_1051.py
create mode 100644 sapl/norma/migrations/0005_merge.py
create mode 100644 sapl/sessao/migrations/0003_resumoordenacao.py
create mode 100644 sapl/templates/sessao/blocos_resumo/conteudo_multimidia.html
create mode 100644 sapl/templates/sessao/blocos_resumo/expedientes.html
create mode 100644 sapl/templates/sessao/blocos_resumo/identificacao_basica.html
create mode 100644 sapl/templates/sessao/blocos_resumo/lista_presenca.html
create mode 100644 sapl/templates/sessao/blocos_resumo/lista_presenca_ordem_dia.html
create mode 100644 sapl/templates/sessao/blocos_resumo/materias_expediente.html
create mode 100644 sapl/templates/sessao/blocos_resumo/materias_ordem_dia.html
create mode 100644 sapl/templates/sessao/blocos_resumo/mesa_diretora.html
create mode 100644 sapl/templates/sessao/blocos_resumo/oradores_expediente.html
create mode 100644 sapl/templates/sessao/blocos_resumo/oradores_explicacoes.html
create mode 100644 sapl/templates/sessao/resumo_ordenacao.html
diff --git a/sapl/base/urls.py b/sapl/base/urls.py
index d5e4ae98a..ea7d54a04 100644
--- a/sapl/base/urls.py
+++ b/sapl/base/urls.py
@@ -92,7 +92,8 @@ urlpatterns = [
# todos os sublinks de sistema devem vir acima deste
url(r'^sistema/$', permission_required('base.view_tabelas_auxiliares')
- (TemplateView.as_view(template_name='sistema.html'))),
+ (TemplateView.as_view(template_name='sistema.html')),
+ name='sistema'),
url(r'^login/$', views.login, {
'template_name': 'base/login.html', 'authentication_form': LoginForm},
diff --git a/sapl/materia/migrations/0005_auto_20170522_1051.py b/sapl/materia/migrations/0005_auto_20170522_1051.py
new file mode 100644
index 000000000..5904fa7d1
--- /dev/null
+++ b/sapl/materia/migrations/0005_auto_20170522_1051.py
@@ -0,0 +1,32 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2017-05-22 10:51
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import sapl.materia.models
+import sapl.utils
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('materia', '0004_auto_20170504_1751'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='documentoacessorio',
+ name='arquivo',
+ field=models.FileField(blank=True, null=True, upload_to=sapl.materia.models.anexo_upload_path, validators=[sapl.utils.restringe_tipos_de_arquivo_txt], verbose_name='Texto Integral'),
+ ),
+ migrations.AlterField(
+ model_name='materialegislativa',
+ name='texto_original',
+ field=models.FileField(blank=True, null=True, upload_to=sapl.materia.models.materia_upload_path, validators=[sapl.utils.restringe_tipos_de_arquivo_txt], verbose_name='Texto Original'),
+ ),
+ migrations.AlterField(
+ model_name='proposicao',
+ name='texto_original',
+ field=models.FileField(blank=True, null=True, upload_to=sapl.materia.models.materia_upload_path, validators=[sapl.utils.restringe_tipos_de_arquivo_txt], verbose_name='Texto Original'),
+ ),
+ ]
diff --git a/sapl/materia/migrations/0006_merge.py b/sapl/materia/migrations/0006_merge.py
new file mode 100644
index 000000000..c3ffdd30d
--- /dev/null
+++ b/sapl/materia/migrations/0006_merge.py
@@ -0,0 +1,16 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2017-05-23 18:20
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('materia', '0005_auto_20170522_1051'),
+ ('materia', '0005_auto_20170522_1904'),
+ ]
+
+ operations = [
+ ]
diff --git a/sapl/norma/migrations/0004_auto_20170522_1051.py b/sapl/norma/migrations/0004_auto_20170522_1051.py
new file mode 100644
index 000000000..d2a3b4a8c
--- /dev/null
+++ b/sapl/norma/migrations/0004_auto_20170522_1051.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2017-05-22 10:51
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import sapl.norma.models
+import sapl.utils
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('norma', '0003_auto_20170510_1549'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='normajuridica',
+ name='texto_integral',
+ field=models.FileField(blank=True, null=True, upload_to=sapl.norma.models.norma_upload_path, validators=[sapl.utils.restringe_tipos_de_arquivo_txt], verbose_name='Texto Integral'),
+ ),
+ ]
diff --git a/sapl/norma/migrations/0005_merge.py b/sapl/norma/migrations/0005_merge.py
new file mode 100644
index 000000000..0e3cc25d0
--- /dev/null
+++ b/sapl/norma/migrations/0005_merge.py
@@ -0,0 +1,16 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2017-05-23 18:20
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('norma', '0004_auto_20170522_1115'),
+ ('norma', '0004_auto_20170522_1051'),
+ ]
+
+ operations = [
+ ]
diff --git a/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py b/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py
index 8890b9dcf..96fb7d581 100644
--- a/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py
+++ b/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py
@@ -6,6 +6,8 @@
"""
import time
+from sapl.sessao.models import ResumoOrdenacao
+
from trml2pdf import parseString
@@ -287,15 +289,43 @@ def principal(cabecalho_dic, rodape_dic, imagem, sessao, inf_basicas_dic, lst_me
tmp += '\t\n'
tmp += paraStyle()
tmp += '\t\n'
- tmp += inf_basicas(inf_basicas_dic)
- tmp += mesa(lst_mesa)
- tmp += presenca(lst_presenca_sessao)
- tmp += expedientes(lst_expedientes)
- tmp += expediente_materia(lst_expediente_materia)
- tmp += oradores_expediente(lst_oradores_expediente)
- tmp += presenca_ordem_dia(lst_presenca_ordem_dia)
- tmp += votacao(lst_votacao)
- tmp += oradores(lst_oradores)
+
+ ordenacao = ResumoOrdenacao.objects.first()
+ dict_ord_template = {
+ 'cont_mult': '',
+ 'exp': expedientes(lst_expedientes),
+ 'id_basica': inf_basicas(inf_basicas_dic),
+ 'lista_p': presenca(lst_presenca_sessao),
+ 'lista_p_o_d': presenca_ordem_dia(lst_presenca_ordem_dia),
+ 'mat_exp': expediente_materia(lst_expediente_materia),
+ 'mat_o_d': votacao(lst_votacao),
+ 'mesa_d': mesa(lst_mesa),
+ 'oradores_exped': oradores_expediente(lst_oradores_expediente),
+ 'oradores_expli': oradores(lst_oradores)
+ }
+
+ if ordenacao:
+ tmp += dict_ord_template[ordenacao.primeiro]
+ tmp += dict_ord_template[ordenacao.segundo]
+ tmp += dict_ord_template[ordenacao.terceiro]
+ tmp += dict_ord_template[ordenacao.quarto]
+ tmp += dict_ord_template[ordenacao.quinto]
+ tmp += dict_ord_template[ordenacao.sexto]
+ tmp += dict_ord_template[ordenacao.setimo]
+ tmp += dict_ord_template[ordenacao.oitavo]
+ tmp += dict_ord_template[ordenacao.nono]
+ tmp += dict_ord_template[ordenacao.decimo]
+ else:
+ tmp += inf_basicas(inf_basicas_dic)
+ tmp += mesa(lst_mesa)
+ tmp += presenca(lst_presenca_sessao)
+ tmp += expedientes(lst_expedientes)
+ tmp += expediente_materia(lst_expediente_materia)
+ tmp += oradores_expediente(lst_oradores_expediente)
+ tmp += presenca_ordem_dia(lst_presenca_ordem_dia)
+ tmp += votacao(lst_votacao)
+ tmp += oradores(lst_oradores)
+
tmp += '\t\n'
tmp += '\n'
diff --git a/sapl/rules/map_rules.py b/sapl/rules/map_rules.py
index 05d869fd8..01493818f 100644
--- a/sapl/rules/map_rules.py
+++ b/sapl/rules/map_rules.py
@@ -251,6 +251,7 @@ rules_group_geral = {
(sessao.TipoResultadoVotacao, __base__),
(sessao.TipoExpediente, __base__),
(sessao.Bloco, __base__),
+ (sessao.ResumoOrdenacao, __base__),
(lexml.LexmlProvedor, __base__),
(lexml.LexmlPublicador, __base__),
diff --git a/sapl/sessao/forms.py b/sapl/sessao/forms.py
index 4303dabcc..9c2f879bf 100644
--- a/sapl/sessao/forms.py
+++ b/sapl/sessao/forms.py
@@ -28,7 +28,7 @@ def recupera_anos():
# apos a adicao do .dates(), por isso o reversed() abaixo
anos = [(k.year, k.year) for k in reversed(anos_list)]
return anos
- except:
+ except Exception:
return []
@@ -39,6 +39,18 @@ MES_CHOICES = [('', '---------')] + RANGE_MESES
DIA_CHOICES = [('', '---------')] + RANGE_DIAS_MES
+ORDENACAO_RESUMO = [('cont_mult', 'Conteúdo Multimídia'),
+ ('exp', 'Expedientes'),
+ ('id_basica', 'Identificação Básica'),
+ ('lista_p', 'Lista de Presença'),
+ ('lista_p_o_d', 'Lista de Presença Ordem do Dia'),
+ ('mat_exp', 'Matérias do Expediente'),
+ ('mat_o_d', 'Matérias da Ordem do Dia'),
+ ('mesa_d', 'Mesa Diretora'),
+ ('oradores_exped', 'Oradores do Expediente'),
+ ('oradores_expli', 'Oradores das Explicações Pessoais')]
+
+
class BancadaForm(ModelForm):
class Meta:
@@ -359,3 +371,70 @@ class OradorExpedienteForm(ModelForm):
class PautaSessaoFilterSet(SessaoPlenariaFilterSet):
titulo = _('Pesquisa de Pauta de Sessão')
+
+
+class ResumoOrdenacaoForm(forms.Form):
+ primeiro = forms.ChoiceField(label=_('1°'),
+ choices=ORDENACAO_RESUMO)
+ segundo = forms.ChoiceField(label=_('2°'),
+ choices=ORDENACAO_RESUMO)
+ terceiro = forms.ChoiceField(label=u'3°',
+ choices=ORDENACAO_RESUMO)
+ quarto = forms.ChoiceField(label=_('4°'),
+ choices=ORDENACAO_RESUMO)
+ quinto = forms.ChoiceField(label=_('5°'),
+ choices=ORDENACAO_RESUMO)
+ sexto = forms.ChoiceField(label=_('6°'),
+ choices=ORDENACAO_RESUMO)
+ setimo = forms.ChoiceField(label=_('7°'),
+ choices=ORDENACAO_RESUMO)
+ oitavo = forms.ChoiceField(label=_('8°'),
+ choices=ORDENACAO_RESUMO)
+ nono = forms.ChoiceField(label=_('9°'),
+ choices=ORDENACAO_RESUMO)
+ decimo = forms.ChoiceField(label=u'10°',
+ choices=ORDENACAO_RESUMO)
+
+ def __init__(self, *args, **kwargs):
+ super(ResumoOrdenacaoForm, self).__init__(*args, **kwargs)
+
+ row1 = to_row(
+ [('primeiro', 12)])
+ row2 = to_row(
+ [('segundo', 12)])
+ row3 = to_row(
+ [('terceiro', 12)])
+ row4 = to_row(
+ [('quarto', 12)])
+ row5 = to_row(
+ [('quinto', 12)])
+ row6 = to_row(
+ [('sexto', 12)])
+ row7 = to_row(
+ [('setimo', 12)])
+ row8 = to_row(
+ [('oitavo', 12)])
+ row9 = to_row(
+ [('nono', 12)])
+ row10 = to_row(
+ [('decimo', 12)])
+
+ self.helper = FormHelper()
+ self.helper.layout = Layout(
+ Fieldset(_(''),
+ row1, row2, row3, row4, row5,
+ row6, row7, row8, row9, row10,
+ form_actions(save_label='Atualizar'))
+ )
+
+ def clean(self):
+ cleaned_data = self.cleaned_data
+
+ for c1 in cleaned_data:
+ i = 0
+ for c2 in cleaned_data:
+ if cleaned_data[str(c1)] == cleaned_data[str(c2)]:
+ i = i + 1
+ if i > 1:
+ raise ValidationError(_(
+ 'Não é possível ter campos repetidos'))
diff --git a/sapl/sessao/migrations/0003_resumoordenacao.py b/sapl/sessao/migrations/0003_resumoordenacao.py
new file mode 100644
index 000000000..ef6e990c5
--- /dev/null
+++ b/sapl/sessao/migrations/0003_resumoordenacao.py
@@ -0,0 +1,35 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2017-05-22 10:51
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('sessao', '0002_sessaoplenaria_interativa'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='ResumoOrdenacao',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('primeiro', models.CharField(max_length=30)),
+ ('segundo', models.CharField(max_length=30)),
+ ('terceiro', models.CharField(max_length=30)),
+ ('quarto', models.CharField(max_length=30)),
+ ('quinto', models.CharField(max_length=30)),
+ ('sexto', models.CharField(max_length=30)),
+ ('setimo', models.CharField(max_length=30)),
+ ('oitavo', models.CharField(max_length=30)),
+ ('nono', models.CharField(max_length=30)),
+ ('decimo', models.CharField(max_length=30)),
+ ],
+ options={
+ 'verbose_name': 'Ordenação do Resumo de uma Sessão',
+ 'verbose_name_plural': 'Ordenação do Resumo de uma Sessão',
+ },
+ ),
+ ]
diff --git a/sapl/sessao/models.py b/sapl/sessao/models.py
index b76fac9f3..4d7c22ca1 100644
--- a/sapl/sessao/models.py
+++ b/sapl/sessao/models.py
@@ -493,3 +493,28 @@ class Bloco(models.Model):
def __str__(self):
return self.nome
+
+
+@reversion.register()
+class ResumoOrdenacao(models.Model):
+ '''
+ Tabela para registrar em qual ordem serão renderizados os componentes
+ da tela de resumo de uma sessão
+ '''
+ primeiro = models.CharField(max_length=30)
+ segundo = models.CharField(max_length=30)
+ terceiro = models.CharField(max_length=30)
+ quarto = models.CharField(max_length=30)
+ quinto = models.CharField(max_length=30)
+ sexto = models.CharField(max_length=30)
+ setimo = models.CharField(max_length=30)
+ oitavo = models.CharField(max_length=30)
+ nono = models.CharField(max_length=30)
+ decimo = models.CharField(max_length=30)
+
+ class Meta:
+ verbose_name = _('Ordenação do Resumo de uma Sessão')
+ verbose_name_plural = _('Ordenação do Resumo de uma Sessão')
+
+ def __str__(self):
+ return 'Ordenação do Resumo de uma Sessão'
diff --git a/sapl/sessao/urls.py b/sapl/sessao/urls.py
index f237bf721..93fd953bb 100644
--- a/sapl/sessao/urls.py
+++ b/sapl/sessao/urls.py
@@ -10,7 +10,8 @@ from sapl.sessao.views import (AdicionarVariasMateriasExpediente,
PautaSessaoDetailView, PautaSessaoListView,
PesquisarPautaSessaoView,
PesquisarSessaoPlenariaView,
- PresencaOrdemDiaView, PresencaView, ResumoView,
+ PresencaOrdemDiaView, PresencaView,
+ ResumoOrdenacaoView, ResumoView,
SessaoCrud, TipoExpedienteCrud,
TipoResultadoVotacaoCrud, TipoSessaoCrud,
VotacaoEditView, VotacaoExpedienteEditView,
@@ -68,6 +69,9 @@ urlpatterns = [
include(BlocoCrud.get_urls())),
url(r'^sistema/cargo-bancada/',
include(CargoBancadaCrud.get_urls())),
+ url(r'^sistema/resumo-ordenacao/',
+ ResumoOrdenacaoView.as_view(),
+ name='resumo_ordenacao'),
url(r'^sessao/(?P\d+)/adicionar-varias-materias-expediente/',
AdicionarVariasMateriasExpediente.as_view(),
name='adicionar_varias_materias_expediente'),
diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py
index 980594784..6130eb997 100644
--- a/sapl/sessao/views.py
+++ b/sapl/sessao/views.py
@@ -3,6 +3,7 @@ from re import sub
from django.contrib import messages
from django.contrib.auth.decorators import permission_required
+from django.contrib.auth.mixins import PermissionRequiredMixin
from django.core.exceptions import MultipleObjectsReturned, ObjectDoesNotExist
from django.core.urlresolvers import reverse
from django.forms.utils import ErrorList
@@ -13,7 +14,7 @@ from django.utils.decorators import method_decorator
from django.utils.html import strip_tags
from django.utils.translation import ugettext_lazy as _
from django.views.decorators.csrf import csrf_exempt
-from django.views.generic import ListView, TemplateView
+from django.views.generic import FormView, ListView, TemplateView
from django.views.generic.base import RedirectView
from django.views.generic.detail import DetailView
from django.views.generic.edit import FormMixin
@@ -36,13 +37,14 @@ from sapl.sessao.forms import ExpedienteMateriaForm, OrdemDiaForm
from .forms import (AdicionarVariasMateriasFilterSet, ExpedienteForm,
ListMateriaForm, MesaForm, OradorExpedienteForm,
OradorForm, PautaSessaoFilterSet, PresencaForm,
+ ResumoOrdenacaoForm,
SessaoPlenariaFilterSet, VotacaoEditForm, VotacaoForm,
VotacaoNominalForm)
from .models import (Bancada, Bloco, CargoBancada, CargoMesa,
ExpedienteMateria, ExpedienteSessao, IntegranteMesa,
MateriaLegislativa, Orador, OradorExpediente, OrdemDia,
- PresencaOrdemDia, RegistroVotacao, SessaoPlenaria,
- SessaoPlenariaPresenca, TipoExpediente,
+ PresencaOrdemDia, RegistroVotacao, ResumoOrdenacao,
+ SessaoPlenaria, SessaoPlenariaPresenca, TipoExpediente,
TipoResultadoVotacao, TipoSessaoPlenaria, VotoNominal,
VotoParlamentar)
@@ -930,6 +932,48 @@ class MesaView(FormMixin, DetailView):
return reverse('sapl.sessao:mesa', kwargs={'pk': pk})
+class ResumoOrdenacaoView(PermissionRequiredMixin, FormView):
+ template_name = 'sessao/resumo_ordenacao.html'
+ form_class = ResumoOrdenacaoForm
+ permission_required = 'sessao.change_resumoordenacao'
+
+ def get_success_url(self):
+ return reverse('sapl.base:sistema')
+
+ def get_initial(self):
+ ordenacao = ResumoOrdenacao.objects.first()
+ if ordenacao:
+ return {'primeiro': ordenacao.primeiro,
+ 'segundo': ordenacao.segundo,
+ 'terceiro': ordenacao.terceiro,
+ 'quarto': ordenacao.quarto,
+ 'quinto': ordenacao.quinto,
+ 'sexto': ordenacao.sexto,
+ 'setimo': ordenacao.setimo,
+ 'oitavo': ordenacao.oitavo,
+ 'nono': ordenacao.nono,
+ 'decimo': ordenacao.decimo}
+ return self.initial.copy()
+
+ def form_valid(self, form):
+ ordenacao = ResumoOrdenacao.objects.get_or_create()[0]
+
+ ordenacao.primeiro = form.cleaned_data['primeiro']
+ ordenacao.segundo = form.cleaned_data['segundo']
+ ordenacao.terceiro = form.cleaned_data['terceiro']
+ ordenacao.quarto = form.cleaned_data['quarto']
+ ordenacao.quinto = form.cleaned_data['quinto']
+ ordenacao.sexto = form.cleaned_data['sexto']
+ ordenacao.setimo = form.cleaned_data['setimo']
+ ordenacao.oitavo = form.cleaned_data['oitavo']
+ ordenacao.nono = form.cleaned_data['nono']
+ ordenacao.decimo = form.cleaned_data['decimo']
+
+ ordenacao.save()
+
+ return HttpResponseRedirect(self.get_success_url())
+
+
class ResumoView(DetailView):
template_name = 'sessao/resumo.html'
model = SessaoPlenaria
@@ -1121,13 +1165,54 @@ class ResumoView(DetailView):
if not partido_sigla:
partido_sigla = ''
oradores = {
- 'numero_ordem': orador.numero_ordem,
- 'parlamentar': parlamentar,
- 'sgl_partido': partido_sigla
- }
+ 'numero_ordem': orador.numero_ordem,
+ 'parlamentar': parlamentar,
+ 'sgl_partido': partido_sigla
+ }
oradores_explicacoes.append(oradores)
context.update({'oradores_explicacoes': oradores_explicacoes})
+ # =====================================================================
+ # Indica a ordem com a qual o template será renderizado
+ ordenacao = ResumoOrdenacao.objects.first()
+ dict_ord_template = {
+ 'cont_mult': 'conteudo_multimidia.html',
+ 'exp': 'expedientes.html',
+ 'id_basica': 'identificacao_basica.html',
+ 'lista_p': 'lista_presenca.html',
+ 'lista_p_o_d': 'lista_presenca_ordem_dia.html',
+ 'mat_exp': 'materias_expediente.html',
+ 'mat_o_d': 'materias_ordem_dia.html',
+ 'mesa_d': 'mesa_diretora.html',
+ 'oradores_exped': 'oradores_expediente.html',
+ 'oradores_expli': 'oradores_explicacoes.html'
+ }
+
+ if ordenacao:
+ context.update(
+ {'primeiro_ordenacao': dict_ord_template[ordenacao.primeiro],
+ 'segundo_ordenacao': dict_ord_template[ordenacao.segundo],
+ 'terceiro_ordenacao': dict_ord_template[ordenacao.terceiro],
+ 'quarto_ordenacao': dict_ord_template[ordenacao.quarto],
+ 'quinto_ordenacao': dict_ord_template[ordenacao.quinto],
+ 'sexto_ordenacao': dict_ord_template[ordenacao.sexto],
+ 'setimo_ordenacao': dict_ord_template[ordenacao.setimo],
+ 'oitavo_ordenacao': dict_ord_template[ordenacao.oitavo],
+ 'nono_ordenacao': dict_ord_template[ordenacao.nono],
+ 'decimo_ordenacao': dict_ord_template[ordenacao.decimo]})
+ else:
+ context.update(
+ {'primeiro_ordenacao': dict_ord_template['id_basica'],
+ 'segundo_ordenacao': dict_ord_template['cont_mult'],
+ 'terceiro_ordenacao': dict_ord_template['mesa_d'],
+ 'quarto_ordenacao': dict_ord_template['lista_p'],
+ 'quinto_ordenacao': dict_ord_template['exp'],
+ 'sexto_ordenacao': dict_ord_template['mat_exp'],
+ 'setimo_ordenacao': dict_ord_template['oradores_exped'],
+ 'oitavo_ordenacao': dict_ord_template['lista_p_o_d'],
+ 'nono_ordenacao': dict_ord_template['mat_o_d'],
+ 'decimo_ordenacao': dict_ord_template['oradores_expli']})
+
return self.render_to_response(context)
diff --git a/sapl/templates/sessao/blocos_resumo/conteudo_multimidia.html b/sapl/templates/sessao/blocos_resumo/conteudo_multimidia.html
new file mode 100644
index 000000000..4749f5ad2
--- /dev/null
+++ b/sapl/templates/sessao/blocos_resumo/conteudo_multimidia.html
@@ -0,0 +1,8 @@
+
+
\ No newline at end of file
diff --git a/sapl/templates/sessao/blocos_resumo/expedientes.html b/sapl/templates/sessao/blocos_resumo/expedientes.html
new file mode 100644
index 000000000..e233fcb58
--- /dev/null
+++ b/sapl/templates/sessao/blocos_resumo/expedientes.html
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/sapl/templates/sessao/blocos_resumo/identificacao_basica.html b/sapl/templates/sessao/blocos_resumo/identificacao_basica.html
new file mode 100644
index 000000000..aa0ad9e46
--- /dev/null
+++ b/sapl/templates/sessao/blocos_resumo/identificacao_basica.html
@@ -0,0 +1,8 @@
+
\ No newline at end of file
diff --git a/sapl/templates/sessao/blocos_resumo/lista_presenca.html b/sapl/templates/sessao/blocos_resumo/lista_presenca.html
new file mode 100644
index 000000000..c89f23588
--- /dev/null
+++ b/sapl/templates/sessao/blocos_resumo/lista_presenca.html
@@ -0,0 +1,8 @@
+
\ No newline at end of file
diff --git a/sapl/templates/sessao/blocos_resumo/lista_presenca_ordem_dia.html b/sapl/templates/sessao/blocos_resumo/lista_presenca_ordem_dia.html
new file mode 100644
index 000000000..910e6a3d2
--- /dev/null
+++ b/sapl/templates/sessao/blocos_resumo/lista_presenca_ordem_dia.html
@@ -0,0 +1,8 @@
+
\ No newline at end of file
diff --git a/sapl/templates/sessao/blocos_resumo/materias_expediente.html b/sapl/templates/sessao/blocos_resumo/materias_expediente.html
new file mode 100644
index 000000000..00f385bdd
--- /dev/null
+++ b/sapl/templates/sessao/blocos_resumo/materias_expediente.html
@@ -0,0 +1,25 @@
+
\ No newline at end of file
diff --git a/sapl/templates/sessao/blocos_resumo/materias_ordem_dia.html b/sapl/templates/sessao/blocos_resumo/materias_ordem_dia.html
new file mode 100644
index 000000000..7e3fd4af9
--- /dev/null
+++ b/sapl/templates/sessao/blocos_resumo/materias_ordem_dia.html
@@ -0,0 +1,25 @@
+
\ No newline at end of file
diff --git a/sapl/templates/sessao/blocos_resumo/mesa_diretora.html b/sapl/templates/sessao/blocos_resumo/mesa_diretora.html
new file mode 100644
index 000000000..7baf0cb67
--- /dev/null
+++ b/sapl/templates/sessao/blocos_resumo/mesa_diretora.html
@@ -0,0 +1,10 @@
+
\ No newline at end of file
diff --git a/sapl/templates/sessao/blocos_resumo/oradores_expediente.html b/sapl/templates/sessao/blocos_resumo/oradores_expediente.html
new file mode 100644
index 000000000..064b7d033
--- /dev/null
+++ b/sapl/templates/sessao/blocos_resumo/oradores_expediente.html
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/sapl/templates/sessao/blocos_resumo/oradores_explicacoes.html b/sapl/templates/sessao/blocos_resumo/oradores_explicacoes.html
new file mode 100644
index 000000000..e97ac5aea
--- /dev/null
+++ b/sapl/templates/sessao/blocos_resumo/oradores_explicacoes.html
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/sapl/templates/sessao/resumo.html b/sapl/templates/sessao/resumo.html
index d4fb23d75..b5831bdca 100644
--- a/sapl/templates/sessao/resumo.html
+++ b/sapl/templates/sessao/resumo.html
@@ -19,157 +19,36 @@
-
-
-
-
+ {% include 'sessao/blocos_resumo/'|add:primeiro_ordenacao %}
+
-
-
+ {% include 'sessao/blocos_resumo/'|add:segundo_ordenacao %}
+
-
-
+ {% include 'sessao/blocos_resumo/'|add:terceiro_ordenacao %}
+
-
-
+ {% include 'sessao/blocos_resumo/'|add:quarto_ordenacao %}
+
-
-
+ {% include 'sessao/blocos_resumo/'|add:quinto_ordenacao %}
+
-
-
+ {% include 'sessao/blocos_resumo/'|add:sexto_ordenacao %}
+
-
-
+ {% include 'sessao/blocos_resumo/'|add:setimo_ordenacao %}
+
-
+ {% include 'sessao/blocos_resumo/'|add:oitavo_ordenacao %}
+
+
+ {% include 'sessao/blocos_resumo/'|add:nono_ordenacao %}
+
+
+ {% include 'sessao/blocos_resumo/'|add:decimo_ordenacao %}
+