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 @@ +
+ Conteúdo Multimídia +
+
{{multimidia_audio}}
+
{{multimidia_video}}
+
+
+


\ 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 @@ +
+ Expedientes + + + {% for e in expedientes %} + + + + {% endfor %} + +
+ {{e.tipo}}:

+
+

{{e.conteudo|safe}}

+
+
+
\ 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 @@ +
+ Identificação Básica +
+ {% for b in basica %} +
{{b}}
+ {% endfor %} +
+
\ 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 @@ +
+ Lista de Presença na Sessão +
+ {% for p in presenca_sessao %} +
{{p.nome_parlamentar}} / {{ p.filiacao_atual }}
+ {% endfor %} +
+
\ 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 @@ +
+ Lista de Presença na Ordem do Dia +
+ {% for p in presenca_ordem %} +
{{p.nome_parlamentar}} / {{ p.filiacao_atual }}
+ {% endfor %} +
+
\ 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 @@ +
+ Matérias do Expediente + + + + + + + + + + {% for m in materia_expediente %} + + + + + + {% endfor %} + +
MatériaEmentaResultado da Votação
+ {{m.numero}} - {{m.titulo}} +
+ Autor{{ m.autor|length|pluralize:"es" }}: {{ m.autor|join:', ' }} +
{{m.ementa|safe}}{{m.resultado}}
{{m.resultado_observacao}}
+
\ 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 @@ +
+ Matérias da Ordem do Dia + + + + + + + + + + {% for m in materias_ordem %} + + + + + + {% endfor %} + +
MatériaEmentaResultado da Votação
+ {{m.numero}} - {{m.titulo}} +
+ Autor{{ m.autor|length|pluralize:"es" }}: {{ m.autor|join:', ' }} +
{{m.ementa|safe}}{{m.resultado}}
{{m.resultado_observacao}}
+
\ 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 @@ +
+ Mesa Diretora +
+ {% for m in mesa %} +
{{m.cargo}}: + {{m.parlamentar.nome_parlamentar}} / {{ m.parlamentar.filiacao_atual }} +
+ {% endfor %} +
+
\ 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 @@ +
+ Oradores do Expediente +
+
Parlamentar
+
Discurso
+
+
+ {% for o in oradores %} +
{{o.numero_ordem}} - {{o.parlamentar}}
+
{{o.url_discurso}}
+
+ {% endfor %} +
+
\ 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 @@ +
+ Oradores das Explicações Pessoais +
+
Parlamentar
+
Discurso
+
+
+ {% for o in oradores_explicacoes %} +
{{o.numero_ordem}} - {{o.parlamentar.nome_parlamentar}} / {{ o.parlamentar.filiacao_atual }}
+
{{o.url_discurso}}
+
+ {% endfor %} +
+
\ 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 @@

-
- Identificação Básica -
- {% for b in basica %} -
{{b}}
- {% endfor %} -
-
-


-
- Conteúdo Multimídia -
-
{{multimidia_audio}}
-
{{multimidia_video}}
-
-
-


+ {% include 'sessao/blocos_resumo/'|add:primeiro_ordenacao %} +


-
- Mesa Diretora -
- {% for m in mesa %} -
{{m.cargo}}: - {{m.parlamentar.nome_parlamentar}} / {{ m.parlamentar.filiacao_atual }}
- {% endfor %} -
-
-


+ {% include 'sessao/blocos_resumo/'|add:segundo_ordenacao %} +


-
- Lista de Presença na Sessão -
- {% for p in presenca_sessao %} -
{{p.nome_parlamentar}} / {{ p.filiacao_atual }}
- {% endfor %} -
-
-


+ {% include 'sessao/blocos_resumo/'|add:terceiro_ordenacao %} +


-
- Expedientes - - - {% for e in expedientes %} - - - - {% endfor %} - -
- {{e.tipo}}:

-
-

{{e.conteudo|safe}}

-
-
-
-


+ {% include 'sessao/blocos_resumo/'|add:quarto_ordenacao %} +


-
- Matérias do Expediente - - - - - - - - - - {% for m in materia_expediente %} - - - - - - {% endfor %} - -
MatériaEmentaResultado da Votação
- {{m.numero}} - {{m.titulo}} -
- Autor{{ m.autor|length|pluralize:"es" }}: {{ m.autor|join:', ' }} -
{{m.ementa|safe}}{{m.resultado}}
{{m.resultado_observacao}}
-
-


+ {% include 'sessao/blocos_resumo/'|add:quinto_ordenacao %} +


-
- Oradores do Expediente -
-
Parlamentar
-
Discurso
-
-
- {% for o in oradores %} -
{{o.numero_ordem}} - {{o.parlamentar}}
-
{{o.url_discurso}}
-
- {% endfor %} -
-
-


+ {% include 'sessao/blocos_resumo/'|add:sexto_ordenacao %} +


-
- Lista de Presença na Ordem do Dia -
- {% for p in presenca_ordem %} -
{{p.nome_parlamentar}} / {{ p.filiacao_atual }}
- {% endfor %} -
-
-


+ {% include 'sessao/blocos_resumo/'|add:setimo_ordenacao %} +


-
- Matérias da Ordem do Dia - - - - - - - - - - {% for m in materias_ordem %} - - - - - - {% endfor %} - -
MatériaEmentaResultado da Votação
- {{m.numero}} - {{m.titulo}} -
- Autor{{ m.autor|length|pluralize:"es" }}: {{ m.autor|join:', ' }} -
{{m.ementa|safe}}{{m.resultado}}
{{m.resultado_observacao}}
-
+ {% include 'sessao/blocos_resumo/'|add:oitavo_ordenacao %} +


+ + {% include 'sessao/blocos_resumo/'|add:nono_ordenacao %} +


+ + {% include 'sessao/blocos_resumo/'|add:decimo_ordenacao %} +


-
- Oradores das Explicações Pessoais -
-
Parlamentar
-
Discurso
-
-
- {% for o in oradores_explicacoes %} -
{{o.numero_ordem}} - {{o.parlamentar.nome_parlamentar}} / {{ o.parlamentar.filiacao_atual }}
-
{{o.url_discurso}}
-
- {% endfor %} -
-
{% endblock detail_content %} diff --git a/sapl/templates/sessao/resumo_ordenacao.html b/sapl/templates/sessao/resumo_ordenacao.html new file mode 100644 index 000000000..5d9fe816f --- /dev/null +++ b/sapl/templates/sessao/resumo_ordenacao.html @@ -0,0 +1,13 @@ +{% extends "crud/form.html" %} +{% load i18n %} +{% load crispy_forms_tags %} + +{% block title %} +

Ordenação do Resumo

+{% endblock %} + +{% block base_content %} + +{% crispy form %} + +{% endblock %} \ No newline at end of file diff --git a/sapl/templates/sistema.html b/sapl/templates/sistema.html index 99b9c7062..72ddb240a 100644 --- a/sapl/templates/sistema.html +++ b/sapl/templates/sistema.html @@ -82,7 +82,7 @@ - +