From a1f2bc8c5697a83b105f0085caa01f8aeaf798c5 Mon Sep 17 00:00:00 2001 From: Cesar Carvalho Date: Fri, 31 May 2019 10:14:54 -0300 Subject: [PATCH] =?UTF-8?q?Inser=C3=A7=C3=A3o=20de=20mensagem=20solene?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sapl/painel/views.py | 1 + .../templates/pdf_sessao_plenaria_gerar.py | 3 ++ sapl/relatorios/views.py | 3 ++ .../0041_sessaoplenaria_mensagem_solene.py | 20 ++++++++ sapl/sessao/models.py | 2 + sapl/sessao/views.py | 49 +++++++++++++++---- sapl/templates/painel/index.html | 3 +- .../blocos_ata/identificacao_basica.html | 10 +++- .../blocos_resumo/identificacao_basica.html | 4 ++ sapl/templates/sessao/layouts.yaml | 9 ++++ 10 files changed, 91 insertions(+), 13 deletions(-) create mode 100644 sapl/sessao/migrations/0041_sessaoplenaria_mensagem_solene.py diff --git a/sapl/painel/views.py b/sapl/painel/views.py index 41fe67b9d..bf58c49a5 100644 --- a/sapl/painel/views.py +++ b/sapl/painel/views.py @@ -529,6 +529,7 @@ def get_dados_painel(request, pk): 'sessao_plenaria_data': sessao.data_inicio.strftime('%d/%m/%Y'), 'sessao_plenaria_hora_inicio': sessao.hora_inicio, 'sessao_solene': sessao.tipo.nome == "Solene", + 'mensagem_solene': sessao.mensagem_solene, 'cronometro_aparte': get_cronometro_status(request, 'aparte'), 'cronometro_discurso': get_cronometro_status(request, 'discurso'), 'cronometro_ordem': get_cronometro_status(request, 'ordem'), diff --git a/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py b/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py index 4b1d62719..d76c5bd21 100644 --- a/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py +++ b/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py @@ -128,6 +128,9 @@ def inf_basicas(inf_basicas_dic): if dat_fim_sessao or hr_fim_sessao: tmp += '\t\tEncerramento: ' + \ dat_fim_sessao + ' - ' + hr_fim_sessao + '\n' + if inf_basicas_dic.get('mensagem_solene'): + tmp += '\t\tMensagem Solene: ' + \ + inf_basicas_dic['mensagem_solene'] + '\n' return tmp diff --git a/sapl/relatorios/views.py b/sapl/relatorios/views.py index cb1d05cca..4ffe0cc49 100755 --- a/sapl/relatorios/views.py +++ b/sapl/relatorios/views.py @@ -519,6 +519,9 @@ def get_sessao_plenaria(sessao, casa): inf_basicas_dic["dat_fim_sessao"] = '' inf_basicas_dic["hr_fim_sessao"] = sessao.hora_fim inf_basicas_dic["nom_camara"] = casa.nome + + if sessao.tipo.nome == 'Solene': + inf_basicas_dic["mensagem_solene"] = sessao.mensagem_solene # Conteudo multimidia cont_mult_dic = {} diff --git a/sapl/sessao/migrations/0041_sessaoplenaria_mensagem_solene.py b/sapl/sessao/migrations/0041_sessaoplenaria_mensagem_solene.py new file mode 100644 index 000000000..33c649fcd --- /dev/null +++ b/sapl/sessao/migrations/0041_sessaoplenaria_mensagem_solene.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.20 on 2019-05-31 12:37 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('sessao', '0040_auto_20190523_1130'), + ] + + operations = [ + migrations.AddField( + model_name='sessaoplenaria', + name='mensagem_solene', + field=models.TextField(blank=True, max_length=500, verbose_name='Mensagem Solene'), + ), + ] diff --git a/sapl/sessao/models.py b/sapl/sessao/models.py index 8ab65ebfd..61e703d9e 100644 --- a/sapl/sessao/models.py +++ b/sapl/sessao/models.py @@ -208,6 +208,8 @@ class SessaoPlenaria(models.Model): interativa = models.NullBooleanField(blank=True, choices=YES_NO_CHOICES, verbose_name=_('Sessão interativa')) + mensagem_solene = models.TextField( + blank=True, max_length=500, verbose_name=_('Mensagem Solene')) class Meta: verbose_name = _('Sessão Plenária') diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index 93d9d9ff6..2b2c7a42c 100755 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -871,6 +871,14 @@ class SessaoCrud(Crud): form_class = SessaoPlenariaForm + @property + def layout_key(self): + sessao = self.object + tipo_sessao = sessao.tipo + if tipo_sessao.nome == "Solene": + return 'SessaoSolene' + return 'SessaoPlenaria' + def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) sessao = context['object'] @@ -887,6 +895,14 @@ class SessaoCrud(Crud): form_class = SessaoPlenariaForm logger = logging.getLogger(__name__) + @property + def layout_key(self): + sessao = self.object + tipo_sessao = sessao.tipo + if tipo_sessao.nome == "Solene": + return 'SessaoSolene' + return 'SessaoPlenaria' + @property def cancel_url(self): return self.search_url @@ -921,12 +937,22 @@ class SessaoCrud(Crud): class DetailView(Crud.DetailView): + @property + def layout_key(self): + sessao = self.object + tipo_sessao = sessao.tipo + if tipo_sessao.nome == "Solene": + return 'SessaoSolene' + return 'SessaoPlenaria' + + def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) sessao = context['object'] tipo_sessao = sessao.tipo if tipo_sessao.nome == "Solene": context.update({'subnav_template_name': 'sessao/subnav-solene.yaml'}) + # self.layout_key = 'SessaoSolene' return context @@ -1063,12 +1089,6 @@ class PainelView(PermissionRequiredForAppCrudMixin, TemplateView): 'cronometro_ordem': cronometro_ordem, 'cronometro_consideracoes': cronometro_consideracoes}) - context.update({'sessao_solene': False}) - tipo_sessao = sessao.tipo - if tipo_sessao.nome == "Solene": - context.update({'subnav_template_name': 'sessao/subnav-solene.yaml'}) - context.update({'sessao_solene': True}) - return context @@ -1504,14 +1524,18 @@ def get_identificação_basica(sessao_plenaria): abertura = data_inicio.strftime('%d/%m/%Y') if data_inicio else '' data_fim = sessao_plenaria.data_fim encerramento = data_fim.strftime('%d/%m/%Y') + ' -' if data_fim else '' - return({'basica': [ + mensagem_solene = sessao_plenaria.mensagem_solene + context = {'basica': [ _('Tipo de Sessão: %(tipo)s') % {'tipo': sessao_plenaria.tipo}, _('Abertura: %(abertura)s - %(hora_inicio)s') % { 'abertura': abertura, 'hora_inicio': sessao_plenaria.hora_inicio}, _('Encerramento: %(encerramento)s %(hora_fim)s') % { - 'encerramento': encerramento, 'hora_fim': sessao_plenaria.hora_fim} - ], - 'sessaoplenaria': sessao_plenaria}) + 'encerramento': encerramento, 'hora_fim': sessao_plenaria.hora_fim}, + ], + 'sessaoplenaria': sessao_plenaria} + if sessao_plenaria.tipo.nome == "Solene" and mensagem_solene: + context.update({'mensagem_solene': 'Mensagem Solene: %s' % mensagem_solene}) + return context def get_conteudo_multimidia(sessao_plenaria): @@ -1965,6 +1989,11 @@ class ResumoView(DetailView): 'decimo_terceiro_ordenacao': 'oradores_explicacoes.html', 'decimo_quarto_ordenacao': 'ocorrencias_da_sessao.html' }) + + sessao = context['object'] + tipo_sessao = sessao.tipo + if tipo_sessao.nome == "Solene": + context.update({'subnav_template_name': 'sessao/subnav-solene.yaml'}) return context def get(self, request, *args, **kwargs): diff --git a/sapl/templates/painel/index.html b/sapl/templates/painel/index.html index 6e6bbe7ad..2bc74c8ac 100644 --- a/sapl/templates/painel/index.html +++ b/sapl/templates/painel/index.html @@ -102,7 +102,7 @@ -
+ @@ -203,6 +203,7 @@ $("#sessao_plenaria").text(data["sessao_plenaria"]) $("#sessao_plenaria_data").text("Data Início: " + data["sessao_plenaria_data"]) $("#sessao_plenaria_hora_inicio").text("Hora Início: " + data["sessao_plenaria_hora_inicio"]) + $("#sessao_solene_tema").text(data["mensagem_solene"]) if (data["status_painel"] == false) { $("#message").text("PAINEL ENCONTRA-SE FECHADO"); } diff --git a/sapl/templates/sessao/blocos_ata/identificacao_basica.html b/sapl/templates/sessao/blocos_ata/identificacao_basica.html index 84eeb2a11..bfae9c041 100644 --- a/sapl/templates/sessao/blocos_ata/identificacao_basica.html +++ b/sapl/templates/sessao/blocos_ata/identificacao_basica.html @@ -2,8 +2,14 @@

Identificação Básica: {% for b in basica %} - {{b}} - {% if not forloop.last %} ; {% endif %} + {{b}} + {% if not forloop.last %} + ; + {% else %} + {% if mensagem_solene %} + ; {{mensagem_solene}} + {% endif %} + {% endif %} {% 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 index 75ba5ba68..868d10de8 100644 --- a/sapl/templates/sessao/blocos_resumo/identificacao_basica.html +++ b/sapl/templates/sessao/blocos_resumo/identificacao_basica.html @@ -5,6 +5,10 @@ {% for b in basica %}
{{b}}
{% endfor %} + {% if mensagem_solene %} +

+
{{mensagem_solene}}
+ {% endif %}



diff --git a/sapl/templates/sessao/layouts.yaml b/sapl/templates/sessao/layouts.yaml index f5356a829..5e2e6fc35 100644 --- a/sapl/templates/sessao/layouts.yaml +++ b/sapl/templates/sessao/layouts.yaml @@ -11,6 +11,15 @@ SessaoPlenaria: - upload_pauta upload_ata upload_anexo - url_audio url_video +SessaoSolene: + {% trans 'Dados Básicos' %}: + - legislatura sessao_legislativa tipo:3 numero:1 + - data_inicio:5 hora_inicio:5 iniciada + - data_fim:5 hora_fim:5 finalizada + - mensagem_solene + - upload_pauta upload_ata upload_anexo + - url_audio url_video + TipoResultadoVotacao: {% trans 'Tipo de Resultado da Votação' %}: - nome