Browse Source

Fix #2828 - Adiciona tipo de cronômetro

pull/2829/head
Cesar Carvalho 7 years ago
parent
commit
3f312c9821
  1. 29
      sapl/painel/migrations/0003_auto_20190603_0815.py
  2. 33
      sapl/painel/migrations/0004_auto_20190603_0826.py
  3. 24
      sapl/painel/migrations/0005_auto_20190603_0842.py
  4. 28
      sapl/painel/models.py
  5. 9
      sapl/painel/urls.py
  6. 7
      sapl/painel/views.py
  7. 6
      sapl/templates/menu_tabelas_auxiliares.yaml
  8. 4
      sapl/templates/painel/layouts.yaml

29
sapl/painel/migrations/0003_auto_20190603_0815.py

@ -0,0 +1,29 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.20 on 2019-06-03 11:15
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('painel', '0002_auto_20180523_1430'),
]
operations = [
migrations.RemoveField(
model_name='cronometro',
name='data_cronometro',
),
migrations.AddField(
model_name='cronometro',
name='duracao_cronometro',
field=models.DurationField(blank=True, null=True, verbose_name='Duração do cronômetro'),
),
migrations.AlterField(
model_name='cronometro',
name='status',
field=models.CharField(choices=[('I', 'Start'), ('R', 'Reset'), ('S', 'Stop'), ('C', 'Increment')], default='S', max_length=1, verbose_name='Status do cronômetro'),
),
]

33
sapl/painel/migrations/0004_auto_20190603_0826.py

@ -0,0 +1,33 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.20 on 2019-06-03 11:26
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('painel', '0003_auto_20190603_0815'),
]
operations = [
migrations.CreateModel(
name='TipoCronometro',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('nome', models.CharField(max_length=100, verbose_name='Tipo Cronômetro')),
],
options={
'verbose_name': 'Tipo de Cronômetro',
'verbose_name_plural': 'Tipos de Cronômetro',
'ordering': ['nome'],
},
),
migrations.AlterField(
model_name='cronometro',
name='tipo',
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='painel.TipoCronometro', verbose_name='Tipo Cronômetro'),
),
]

24
sapl/painel/migrations/0005_auto_20190603_0842.py

@ -0,0 +1,24 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.20 on 2019-06-03 11:42
from __future__ import unicode_literals
from django.db import migrations
def create_default_tipos_cronometro(apps, schema_editor):
TipoCronometro = apps.get_model('painel', 'TipoCronometro')
tipos_default = ['Cronômetro do Discurso', 'Cronômetro do Aparte',
'Cronômetro da Ordem', 'Cronômetro de Considerações Finais']
for tipo in tipos_default:
TipoCronometro.objects.get_or_create(nome=tipo)
class Migration(migrations.Migration):
dependencies = [
('painel', '0004_auto_20190603_0826'),
]
operations = [
migrations.RunPython(create_default_tipos_cronometro)
]

28
sapl/painel/models.py

@ -21,6 +21,19 @@ class Painel(models.Model):
return str(self.aberto) + ":" + self.data_painel.strftime("%d/%m/%Y") return str(self.aberto) + ":" + self.data_painel.strftime("%d/%m/%Y")
@reversion.register()
class TipoCronometro(models.Model):
nome = models.CharField(max_length=30, verbose_name=_('Tipo Cronômetro'))
class Meta:
verbose_name = _('Tipo de Cronômetro')
verbose_name_plural = _('Tipos de Cronômetro')
ordering = ['nome']
def __str__(self):
return self.nome
@reversion.register() @reversion.register()
class Cronometro(models.Model): class Cronometro(models.Model):
CRONOMETRO_TYPES = ( CRONOMETRO_TYPES = (
@ -34,6 +47,7 @@ class Cronometro(models.Model):
('I', 'Start'), ('I', 'Start'),
('R', 'Reset'), ('R', 'Reset'),
('S', 'Stop'), ('S', 'Stop'),
('C', 'Increment'),
) )
status = models.CharField( status = models.CharField(
@ -41,7 +55,13 @@ class Cronometro(models.Model):
verbose_name=_('Status do cronômetro'), verbose_name=_('Status do cronômetro'),
choices=CRONOMETRO_STATUS, choices=CRONOMETRO_STATUS,
default='S') default='S')
data_cronometro = models.DateField(verbose_name=_('Data do cronômetro')) duracao_cronometro = models.DurationField(
tipo = models.CharField( verbose_name=_('Duração do cronômetro'),
max_length=1, choices=CRONOMETRO_TYPES, blank=True,
verbose_name=_('Tipo Cronômetro')) null=True)
# tipo = models.CharField(
# max_length=1, choices=CRONOMETRO_TYPES,
# verbose_name=_('Tipo Cronômetro'))
tipo = models.ForeignKey(TipoCronometro,
on_delete=models.PROTECT,
verbose_name=_('Tipo Cronômetro'))

9
sapl/painel/urls.py

@ -1,9 +1,10 @@
from django.conf.urls import url 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) switch_painel, verifica_painel, votante_view, CronometroPainelCrud,
TipoCronometroCrud)
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'^painel/cronometro$', include(CronometroPainelCrud.get_urls())), # url(r'^painel/cronometro', include(CronometroPainelCrud.get_urls())),
url(r'^sistema/cronometro/tipo/',
include(TipoCronometroCrud.get_urls())),
url(r'^voto-individual/$', votante_view, url(r'^voto-individual/$', votante_view,
name='voto_individual'), name='voto_individual'),

7
sapl/painel/views.py

@ -15,7 +15,7 @@ from django.utils.translation import ugettext_lazy as _
from sapl.base.models import AppConfig as ConfiguracoesAplicacao from sapl.base.models import AppConfig as ConfiguracoesAplicacao
from sapl.base.models import CasaLegislativa from sapl.base.models import CasaLegislativa
from sapl.crud.base import Crud from sapl.crud.base import Crud, CrudAux
from sapl.painel.apps import AppConfig from sapl.painel.apps import AppConfig
from sapl.parlamentares.models import Legislatura, Parlamentar, Votante from sapl.parlamentares.models import Legislatura, Parlamentar, Votante
from sapl.sessao.models import (ExpedienteMateria, OradorExpediente, OrdemDia, from sapl.sessao.models import (ExpedienteMateria, OradorExpediente, OrdemDia,
@ -24,11 +24,12 @@ 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 .models import Cronometro from .models import TipoCronometro, Cronometro
VOTACAO_NOMINAL = 2 VOTACAO_NOMINAL = 2
CronometroPainelCrud = Crud.build(Cronometro, '') CronometroPainelCrud = CrudAux.build(Cronometro, '')
TipoCronometroCrud = CrudAux.build(TipoCronometro, 'tipo_cronometro')
# FIXME mudar lógica # FIXME mudar lógica

6
sapl/templates/menu_tabelas_auxiliares.yaml

@ -167,6 +167,12 @@
- title: {% trans 'Tipo de Justificativa' %} - title: {% trans 'Tipo de Justificativa' %}
url: sapl.sessao:tipojustificativa_list url: sapl.sessao:tipojustificativa_list
css_class: btn btn-link css_class: btn btn-link
- title: {% trans 'Módulo Painel' %}
css_class: head_title
children:
- title: {% trans 'Tipo de Cronômetro' %}
url: sapl.painel:tipocronometro_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' %}:
- status:3 data_cronometro:6 tipo - status:3 data_cronometro:6 tipo
TipoCronometro:
{% trans 'Tipo de Cronômetro' %}:
- nome
Loading…
Cancel
Save