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 %}
+
+
+ {{e.tipo}}:
+
+
+
+ {% endfor %}
+
+
+
\ 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
+
+
+
+ Matéria
+ Ementa
+ Resultado da Votação
+
+
+
+ {% for m in materia_expediente %}
+
+
+ {{m.numero}} - {{m.titulo}}
+
+ Autor{{ m.autor|length|pluralize:"es" }} : {{ m.autor|join:', ' }}
+
+ {{m.ementa|safe}}
+ {{m.resultado}} {{m.resultado_observacao}}
+
+ {% endfor %}
+
+
+
\ 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
+
+
+
+ Matéria
+ Ementa
+ Resultado da Votação
+
+
+
+ {% for m in materias_ordem %}
+
+
+ {{m.numero}} - {{m.titulo}}
+
+ Autor{{ m.autor|length|pluralize:"es" }} : {{ m.autor|join:', ' }}
+
+ {{m.ementa|safe}}
+ {{m.resultado}} {{m.resultado_observacao}}
+
+ {% endfor %}
+
+
+
\ 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 %}
-
-
- {{e.tipo}}:
-
-
-
- {% endfor %}
-
-
-
-
+ {% include 'sessao/blocos_resumo/'|add:quarto_ordenacao %}
+
-
- Matérias do Expediente
-
-
-
- Matéria
- Ementa
- Resultado da Votação
-
-
-
- {% for m in materia_expediente %}
-
-
- {{m.numero}} - {{m.titulo}}
-
- Autor{{ m.autor|length|pluralize:"es" }} : {{ m.autor|join:', ' }}
-
- {{m.ementa|safe}}
- {{m.resultado}} {{m.resultado_observacao}}
-
- {% endfor %}
-
-
-
-
+ {% 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
-
-
-
- Matéria
- Ementa
- Resultado da Votação
-
-
-
- {% for m in materias_ordem %}
-
-
- {{m.numero}} - {{m.titulo}}
-
- Autor{{ m.autor|length|pluralize:"es" }} : {{ m.autor|join:', ' }}
-
- {{m.ementa|safe}}
- {{m.resultado}} {{m.resultado_observacao}}
-
- {% endfor %}
-
-
-
+ {% 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 %}
+
+{% 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 @@
-
+