From 97f645958a30c56fc37aa99aab5dc18c4a61cd8c Mon Sep 17 00:00:00 2001 From: Cesar Carvalho Date: Mon, 3 Jun 2019 12:45:09 -0300 Subject: [PATCH] Altera view do painel em Sessao --- sapl/base/templatetags/common_tags.py | 5 + ...603_1009.py => 0003_auto_20190603_1033.py} | 14 +- ...603_1010.py => 0004_auto_20190603_1033.py} | 8 +- sapl/painel/models.py | 14 +- sapl/sessao/views.py | 29 +- sapl/templates/painel/layouts.yaml | 2 +- sapl/templates/sessao/painel.html | 445 +++++------------- 7 files changed, 167 insertions(+), 350 deletions(-) rename sapl/painel/migrations/{0003_auto_20190603_1009.py => 0003_auto_20190603_1033.py} (65%) rename sapl/painel/migrations/{0004_auto_20190603_1010.py => 0004_auto_20190603_1033.py} (76%) diff --git a/sapl/base/templatetags/common_tags.py b/sapl/base/templatetags/common_tags.py index 26fd54f4d..35424ddb9 100644 --- a/sapl/base/templatetags/common_tags.py +++ b/sapl/base/templatetags/common_tags.py @@ -241,6 +241,11 @@ def cronometro_to_seconds(value): return AppConfig.attr('cronometro_' + value).seconds +@register.filter +def duration_to_seconds(cronometro_duration): + return cronometro_duration.seconds + + @register.filter def to_list_pk(object_list): return [o.pk for o in object_list] diff --git a/sapl/painel/migrations/0003_auto_20190603_1009.py b/sapl/painel/migrations/0003_auto_20190603_1033.py similarity index 65% rename from sapl/painel/migrations/0003_auto_20190603_1009.py rename to sapl/painel/migrations/0003_auto_20190603_1033.py index a7c4f0611..5a0851e09 100644 --- a/sapl/painel/migrations/0003_auto_20190603_1009.py +++ b/sapl/painel/migrations/0003_auto_20190603_1033.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.11.20 on 2019-06-03 13:09 +# Generated by Django 1.11.20 on 2019-06-03 13:33 from __future__ import unicode_literals from django.db import migrations, models @@ -14,17 +14,27 @@ class Migration(migrations.Migration): operations = [ migrations.AlterModelOptions( name='cronometro', - options={'ordering': ['tipo'], 'verbose_name': 'Cronômetro', 'verbose_name_plural': 'Cronômetros'}, + options={'ordering': ['ordenacao'], 'verbose_name': 'Cronômetro', 'verbose_name_plural': 'Cronômetros'}, ), migrations.RemoveField( model_name='cronometro', name='data_cronometro', ), + migrations.AddField( + model_name='cronometro', + name='ativo', + field=models.BooleanField(choices=[(True, 'Sim'), (False, 'Não')], default=False, verbose_name='Ativo?'), + ), migrations.AddField( model_name='cronometro', name='duracao_cronometro', field=models.DurationField(blank=True, null=True, verbose_name='Duração do cronômetro'), ), + migrations.AddField( + model_name='cronometro', + name='ordenacao', + field=models.PositiveIntegerField(blank=True, null=True, verbose_name='Ordenação'), + ), migrations.AlterField( model_name='cronometro', name='status', diff --git a/sapl/painel/migrations/0004_auto_20190603_1010.py b/sapl/painel/migrations/0004_auto_20190603_1033.py similarity index 76% rename from sapl/painel/migrations/0004_auto_20190603_1010.py rename to sapl/painel/migrations/0004_auto_20190603_1033.py index 939577d79..5a167e47c 100644 --- a/sapl/painel/migrations/0004_auto_20190603_1010.py +++ b/sapl/painel/migrations/0004_auto_20190603_1033.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.11.20 on 2019-06-03 13:10 +# Generated by Django 1.11.20 on 2019-06-03 13:33 from __future__ import unicode_literals from django.db import migrations @@ -9,14 +9,16 @@ def create_default_cronometros(apps, schema_editor): tipos_default = ['Cronômetro do Discurso', 'Cronômetro do Aparte', 'Cronômetro da Ordem', 'Cronômetro de Considerações Finais'] Cronometro = apps.get_model('painel', 'Cronometro') + cont = 1 for tipo in tipos_default: - Cronometro.objects.get_or_create(tipo=tipo, duracao_cronometro='00:30:00', status='S') + Cronometro.objects.get_or_create(tipo=tipo, duracao_cronometro='00:30:00', status='S', ativo=True, ordenacao=cont) + cont += 1 class Migration(migrations.Migration): dependencies = [ - ('painel', '0003_auto_20190603_1009'), + ('painel', '0003_auto_20190603_1033'), ] operations = [ diff --git a/sapl/painel/models.py b/sapl/painel/models.py index 80e565734..0659b15a1 100644 --- a/sapl/painel/models.py +++ b/sapl/painel/models.py @@ -1,6 +1,7 @@ import reversion from django.db import models from django.utils.translation import ugettext_lazy as _ +from sapl.utils import YES_NO_CHOICES @reversion.register() @@ -46,14 +47,23 @@ class Cronometro(models.Model): verbose_name=_('Duração do cronômetro'), blank=True, null=True) - tipo = models.CharField(max_length=100, + tipo = models.CharField( + max_length=100, verbose_name=_('Tipo Cronômetro'), unique=True) + ativo = models.BooleanField( + default=False, + choices=YES_NO_CHOICES, + verbose_name=_('Ativo?')) + ordenacao = models.PositiveIntegerField( + blank=True, + null=True, + verbose_name=_("Ordenação")) class Meta: verbose_name = _('Cronômetro') verbose_name_plural = _('Cronômetros') - ordering = ['tipo'] + ordering = ['ordenacao'] def __str__(self): return self.tipo \ No newline at end of file diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index d5794f421..d9a452bc6 100755 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -31,6 +31,7 @@ from sapl.materia.forms import filtra_tramitacao_status from sapl.materia.models import (Autoria, TipoMateriaLegislativa, Tramitacao) from sapl.materia.views import MateriaLegislativaPesquisaView +from sapl.painel.models import Cronometro from sapl.parlamentares.models import (Filiacao, Legislatura, Mandato, Parlamentar, SessaoLegislativa) from sapl.sessao.apps import AppConfig @@ -874,6 +875,8 @@ class PainelView(PermissionRequiredForAppCrudMixin, TemplateView): if request.user.is_anonymous(): self.template_name = 'painel/index.html' + # import ipdb; ipdb.set_trace() + request.session['discurso'] = 'stop' request.session['aparte'] = 'stop' request.session['ordem'] = 'stop' @@ -882,14 +885,15 @@ class PainelView(PermissionRequiredForAppCrudMixin, TemplateView): return TemplateView.get(self, request, *args, **kwargs) def get_context_data(self, **kwargs): - cronometro_discurso = AppsAppConfig.attr('cronometro_discurso') - cronometro_aparte = AppsAppConfig.attr('cronometro_aparte') - cronometro_ordem = AppsAppConfig.attr('cronometro_ordem') - cronometro_consideracoes = AppsAppConfig.attr( - 'cronometro_consideracoes') + # cronometro_discurso = AppsAppConfig.attr('cronometro_discurso') + # cronometro_aparte = AppsAppConfig.attr('cronometro_aparte') + # cronometro_ordem = AppsAppConfig.attr('cronometro_ordem') + # cronometro_consideracoes = AppsAppConfig.attr( + # 'cronometro_consideracoes') + + cronometros = Cronometro.objects.all().order_by('ordenacao') - if (not cronometro_discurso or not cronometro_aparte - or not cronometro_ordem or not cronometro_consideracoes): + if not cronometros: username = self.request.user.username self.logger.error('user=' + username + '. Você precisa primeiro configurar os cronômetros' @@ -899,22 +903,13 @@ class PainelView(PermissionRequiredForAppCrudMixin, TemplateView): nas Configurações da Aplicação') messages.add_message(self.request, messages.ERROR, msg) - else: - cronometro_discurso = cronometro_discurso.seconds - cronometro_aparte = cronometro_aparte.seconds - cronometro_ordem = cronometro_ordem.seconds - cronometro_consideracoes = cronometro_consideracoes.seconds - context = TemplateView.get_context_data(self, **kwargs) context.update({ 'head_title': str(_('Painel Plenário')), 'sessao_id': kwargs['pk'], 'root_pk': kwargs['pk'], 'sessaoplenaria': SessaoPlenaria.objects.get(pk=kwargs['pk']), - 'cronometro_discurso': cronometro_discurso, - 'cronometro_aparte': cronometro_aparte, - 'cronometro_ordem': cronometro_ordem, - 'cronometro_consideracoes': cronometro_consideracoes}) + 'cronometros': cronometros}) return context diff --git a/sapl/templates/painel/layouts.yaml b/sapl/templates/painel/layouts.yaml index 1f270a142..0238e74db 100644 --- a/sapl/templates/painel/layouts.yaml +++ b/sapl/templates/painel/layouts.yaml @@ -1,4 +1,4 @@ {% load i18n %} Cronometro: {% trans 'Cronometro' %}: - - tipo:6 duracao_cronometro:6 \ No newline at end of file + - tipo:4 duracao_cronometro:4 ativo:2 ordenacao:2 \ No newline at end of file diff --git a/sapl/templates/sessao/painel.html b/sapl/templates/sessao/painel.html index 44f345a75..5b1226eef 100644 --- a/sapl/templates/sessao/painel.html +++ b/sapl/templates/sessao/painel.html @@ -1,7 +1,11 @@ {% extends "crud/detail.html" %} {% load i18n %} +{% load common_tags %} {% load staticfiles %} + {% load webpack_static from webpack_loader %} +{% load render_bundle from webpack_loader %} + {% block actions %} {% endblock %} {% block title %} @@ -25,67 +29,25 @@

Operação do Painel Eletrônico


-
-

Cronômetro do Discurso

-
- -
-
-
-
- -
-
-
-
- -

-
-

Cronômetro do Aparte

-
- -
-
-
-
-
-
-
-
+ {% for cronometro in cronometros %} -

-
-

Cronômetro da Questão de Ordem

-
+
+

{{cronometro}}

+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
- -
-

Cronômetro de Considerações Finais

-
- -
-
-
-
- -
-
-
-
-

+

+ {% endfor %}
@@ -95,291 +57,124 @@ {% block extra_js %}