Browse Source

Cria PainelConfig

pull/2861/head
Cesar Carvalho 7 years ago
parent
commit
1f9e3b0b34
  1. 9
      sapl/painel/forms.py
  2. 27
      sapl/painel/migrations/0005_painelconfig.py
  3. 26
      sapl/painel/models.py
  4. 5
      sapl/painel/urls.py
  5. 44
      sapl/painel/views.py
  6. 3
      sapl/templates/menu_tabelas_auxiliares.yaml
  7. 4
      sapl/templates/painel/layouts.yaml

9
sapl/painel/forms.py

@ -1,5 +1,5 @@
from django import forms from django import forms
from .models import Cronometro from .models import Cronometro, PainelConfig
class CronometroForm(forms.ModelForm): class CronometroForm(forms.ModelForm):
@ -12,3 +12,10 @@ class CronometroForm(forms.ModelForm):
self.fields['duracao_cronometro'].widget.attrs['class'] = 'cronometro' self.fields['duracao_cronometro'].widget.attrs['class'] = 'cronometro'
if not self.instance.ordenacao: if not self.instance.ordenacao:
self.fields['ordenacao'].initial = Cronometro.objects.last().ordenacao + 1 self.fields['ordenacao'].initial = Cronometro.objects.last().ordenacao + 1
class ConfiguracoesPainelForm(forms.ModelForm):
class Meta:
model = PainelConfig
fields = ['cronometro_ordem']

27
sapl/painel/migrations/0005_painelconfig.py

@ -0,0 +1,27 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.20 on 2019-06-10 11:46
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('painel', '0004_auto_20190603_1033'),
]
operations = [
migrations.CreateModel(
name='PainelConfig',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('cronometro_ordem', models.BooleanField(choices=[(True, 'Sim'), (False, 'Não')], default=True, verbose_name='Cronômetro da Questão de Ordem deve travar os demais?')),
],
options={
'verbose_name': 'Configurações do Painel',
'verbose_name_plural': 'Configurações do Painel',
'ordering': ('-id',),
},
),
]

26
sapl/painel/models.py

@ -65,3 +65,29 @@ class Cronometro(models.Model):
def __str__(self): def __str__(self):
return self.tipo return self.tipo
@reversion.register()
class PainelConfig(models.Model):
cronometro_ordem = models.BooleanField(
verbose_name=_('Cronômetro da Questão de Ordem deve travar os demais?'),
choices=YES_NO_CHOICES, default=True)
class Meta:
verbose_name = _('Configurações do Painel')
verbose_name_plural = _('Configurações do Painel')
ordering = ('-id',)
@classmethod
def attr(cls, attr):
config = PainelConfig.objects.first()
if not config:
config = PainelConfig()
config.save()
return getattr(config, attr)
def __str__(self):
return 'Configurações do Painel'

5
sapl/painel/urls.py

@ -3,7 +3,8 @@ from django.conf.urls import url, include
from .apps import AppConfig from .apps import AppConfig
from .views import (cronometro_painel, get_dados_painel, painel_mensagem_view, from .views import (cronometro_painel, get_dados_painel, painel_mensagem_view,
painel_parlamentar_view, painel_view, painel_votacao_view, painel_parlamentar_view, painel_view, painel_votacao_view,
switch_painel, verifica_painel, votante_view, CronometroPainelCrud) switch_painel, verifica_painel, votante_view, CronometroPainelCrud,
PainelConfigCrud)
app_name = AppConfig.name app_name = AppConfig.name
@ -20,7 +21,9 @@ urlpatterns = [
url(r'^painel/verifica-painel$', verifica_painel, url(r'^painel/verifica-painel$', verifica_painel,
name="verifica_painel"), name="verifica_painel"),
url(r'^painel/cronometro$', cronometro_painel, name='cronometro_painel'), url(r'^painel/cronometro$', cronometro_painel, name='cronometro_painel'),
url(r'^sistema/cronometro/', include(CronometroPainelCrud.get_urls())), url(r'^sistema/cronometro/', include(CronometroPainelCrud.get_urls())),
url(r'^sistema/painel-config/', include(PainelConfigCrud.get_urls())),
url(r'^voto-individual/$', votante_view, url(r'^voto-individual/$', votante_view,
name='voto_individual'), name='voto_individual'),

44
sapl/painel/views.py

@ -24,8 +24,8 @@ from sapl.sessao.models import (ExpedienteMateria, OradorExpediente, OrdemDia,
VotoParlamentar) VotoParlamentar)
from sapl.utils import filiacao_data, get_client_ip, sort_lista_chave from sapl.utils import filiacao_data, get_client_ip, sort_lista_chave
from .forms import CronometroForm from .forms import CronometroForm, ConfiguracoesPainelForm
from .models import Cronometro from .models import Cronometro, PainelConfig
VOTACAO_NOMINAL = 2 VOTACAO_NOMINAL = 2
@ -36,6 +36,46 @@ class CronometroPainelCrud(CrudAux):
form_class = CronometroForm form_class = CronometroForm
class PainelConfigCrud(CrudAux):
model = PainelConfig
class BaseMixin(CrudAux.BaseMixin):
form_class = ConfiguracoesPainelForm
list_url = ''
create_url = ''
class CreateView(CrudAux.CreateView):
def get(self, request, *args, **kwargs):
painel_config = PainelConfig.objects.first()
if not painel_config:
painel_config = PainelConfig()
painel_config.save()
return HttpResponseRedirect(
reverse('sapl.painel:painelconfig_update',
kwargs={'pk': painel_config.pk}))
def post(self, request, *args, **kwargs):
return self.get(request, *args, **kwargs)
class ListView(CrudAux.ListView):
def get(self, request, *args, **kwargs):
return HttpResponseRedirect(reverse('sapl.painel:painelconfig_create'))
class DetailView(CrudAux.DetailView):
def get(self, request, *args, **kwargs):
return HttpResponseRedirect(reverse('sapl.painel:painelconfig_create'))
class DeleteView(CrudAux.DeleteView):
def get(self, request, *args, **kwargs):
return HttpResponseRedirect(reverse('sapl.painel:painelconfig_create'))
# FIXME mudar lógica # FIXME mudar lógica

3
sapl/templates/menu_tabelas_auxiliares.yaml

@ -173,6 +173,9 @@
- title: {% trans 'Cronômetro' %} - title: {% trans 'Cronômetro' %}
url: sapl.painel:cronometro_list url: sapl.painel:cronometro_list
css_class: btn btn-link css_class: btn btn-link
- title: {% trans 'Configurações do Painel' %}
url: sapl.painel:painelconfig_list
css_class: btn btn-link
- title: {% trans 'Módulo LexML' %} - title: {% trans 'Módulo LexML' %}
css_class: head_title css_class: head_title
children: children:

4
sapl/templates/painel/layouts.yaml

@ -2,3 +2,7 @@
Cronometro: Cronometro:
{% trans 'Cronometro' %}: {% trans 'Cronometro' %}:
- tipo:4 duracao_cronometro:4 ativo:2 ordenacao:2 - tipo:4 duracao_cronometro:4 ativo:2 ordenacao:2
PainelConfig:
{% trans 'Configurações do Painel' %}:
- cronometro_ordem

Loading…
Cancel
Save