Browse Source

Fix #2711 e erro introduzido no commit 7f90bd7 - Numeração de Proposições e Protocolos (#2733)

* Fix 2711 e erro introduzido no commit 7f90bd7

* Corrige CHOICES de tramitacao
pull/2811/head
Cesar Augusto de Carvalho 6 years ago
committed by Cesar Carvalho
parent
commit
010efbedd8
  1. 3
      sapl/base/forms.py
  2. 29
      sapl/base/migrations/0034_auto_20190417_0941.py
  3. 20
      sapl/base/migrations/0035_auto_20190417_1009.py
  4. 20
      sapl/base/migrations/0036_auto_20190417_1432.py
  5. 17
      sapl/base/models.py
  6. 22
      sapl/materia/forms.py
  7. 20
      sapl/materia/migrations/0046_auto_20190417_0941.py
  8. 20
      sapl/materia/migrations/0047_auto_20190417_1432.py
  9. 4
      sapl/materia/models.py
  10. 3
      sapl/templates/base/layouts.yaml

3
sapl/base/forms.py

@ -1203,7 +1203,8 @@ class ConfiguracoesAppForm(ModelForm):
class Meta: class Meta:
model = AppConfig model = AppConfig
fields = ['documentos_administrativos', fields = ['documentos_administrativos',
'sequencia_numeracao', 'sequencia_numeracao_protocolo',
'sequencia_numeracao_proposicao',
'esfera_federacao', 'esfera_federacao',
# 'painel_aberto', # TODO: a ser implementado na versão 3.2 # 'painel_aberto', # TODO: a ser implementado na versão 3.2
'texto_articulado_proposicao', 'texto_articulado_proposicao',

29
sapl/base/migrations/0034_auto_20190417_0941.py

@ -0,0 +1,29 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.20 on 2019-04-17 12:41
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('base', '0033_auto_20190415_1050'),
]
operations = [
migrations.RemoveField(
model_name='appconfig',
name='sequencia_numeracao',
),
migrations.AddField(
model_name='appconfig',
name='sequencia_numeracao_proposicao',
field=models.CharField(choices=[('A', 'Sequencial por ano para cada autor'), ('B', 'Sequencial por ano indepententemente do autor'), ('L', 'Sequencial por legislatura'), ('U', 'Sequencial único')], default='A', max_length=1, verbose_name='Sequência de numeração de proposições'),
),
migrations.AddField(
model_name='appconfig',
name='sequencia_numeracao_protocolo',
field=models.CharField(choices=[('A', 'Sequencial por ano para cada autor'), ('L', 'Sequencial por legislatura'), ('U', 'Sequencial único')], default='A', max_length=1, verbose_name='Sequência de numeração de protocolos'),
),
]

20
sapl/base/migrations/0035_auto_20190417_1009.py

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.20 on 2019-04-17 13:09
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('base', '0034_auto_20190417_0941'),
]
operations = [
migrations.AlterField(
model_name='appconfig',
name='sequencia_numeracao_proposicao',
field=models.CharField(choices=[('A', 'Sequencial por ano para cada autor'), ('B', 'Sequencial por ano indepententemente do autor')], default='A', max_length=1, verbose_name='Sequência de numeração de proposições'),
),
]

20
sapl/base/migrations/0036_auto_20190417_1432.py

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.20 on 2019-04-17 17:32
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('base', '0035_auto_20190417_1009'),
]
operations = [
migrations.AlterField(
model_name='appconfig',
name='sequencia_numeracao_protocolo',
field=models.CharField(choices=[('A', 'Sequencial por ano'), ('L', 'Sequencial por legislatura'), ('U', 'Sequencial único')], default='A', max_length=1, verbose_name='Sequência de numeração de protocolos'),
),
]

17
sapl/base/models.py

@ -17,11 +17,13 @@ TIPO_DOCUMENTO_ADMINISTRATIVO = ((DOC_ADM_OSTENSIVO, _('Ostensiva')),
RELATORIO_ATOS_ACESSADOS = (('S', _('Sim')), RELATORIO_ATOS_ACESSADOS = (('S', _('Sim')),
('N', _('Não'))) ('N', _('Não')))
SEQUENCIA_NUMERACAO = (('A', _('Sequencial por ano para cada autor')), SEQUENCIA_NUMERACAO_PROTOCOLO = (('A', _('Sequencial por ano')),
('B', _('Sequencial por ano indepententemente do autor')),
('L', _('Sequencial por legislatura')), ('L', _('Sequencial por legislatura')),
('U', _('Sequencial único'))) ('U', _('Sequencial único')))
SEQUENCIA_NUMERACAO_PROPOSICAO = (('A', _('Sequencial por ano para cada autor')),
('B', _('Sequencial por ano indepententemente do autor')))
ESFERA_FEDERACAO_CHOICES = (('M', _('Municipal')), ESFERA_FEDERACAO_CHOICES = (('M', _('Municipal')),
('E', _('Estadual')), ('E', _('Estadual')),
('F', _('Federal')), ('F', _('Federal')),
@ -95,10 +97,15 @@ class AppConfig(models.Model):
verbose_name=_('Estatísticas de acesso a normas'), verbose_name=_('Estatísticas de acesso a normas'),
choices=RELATORIO_ATOS_ACESSADOS, default='N') choices=RELATORIO_ATOS_ACESSADOS, default='N')
sequencia_numeracao = models.CharField( sequencia_numeracao_proposicao = models.CharField(
max_length=1,
verbose_name=_('Sequência de numeração de proposições'),
choices=SEQUENCIA_NUMERACAO_PROPOSICAO, default='A')
sequencia_numeracao_protocolo = models.CharField(
max_length=1, max_length=1,
verbose_name=_('Sequência de numeração'), verbose_name=_('Sequência de numeração de protocolos'),
choices=SEQUENCIA_NUMERACAO, default='A') choices=SEQUENCIA_NUMERACAO_PROTOCOLO, default='A')
esfera_federacao = models.CharField( esfera_federacao = models.CharField(
max_length=1, max_length=1,

22
sapl/materia/forms.py

@ -1508,10 +1508,10 @@ class ProposicaoForm(FileFieldCheckMixin, forms.ModelForm):
'hash_code': forms.HiddenInput(), } 'hash_code': forms.HiddenInput(), }
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
self.texto_articulado_proposicao = sapl.base.models.AppConfig.attr( self.texto_articulado_proposicao = AppConfig.attr(
'texto_articulado_proposicao') 'texto_articulado_proposicao')
self.receber_recibo = sapl.base.models.AppConfig.attr( self.receber_recibo = AppConfig.attr(
'receber_recibo_proposicao') 'receber_recibo_proposicao')
if not self.texto_articulado_proposicao: if not self.texto_articulado_proposicao:
@ -1533,7 +1533,7 @@ class ProposicaoForm(FileFieldCheckMixin, forms.ModelForm):
] ]
if sapl.base.models.AppConfig.objects.last().escolher_numero_materia_proposicao: if AppConfig.objects.last().escolher_numero_materia_proposicao:
fields.append(to_column(('numero_materia_futuro', 12)),) fields.append(to_column(('numero_materia_futuro', 12)),)
else: else:
if 'numero_materia_futuro' in self._meta.fields: if 'numero_materia_futuro' in self._meta.fields:
@ -1666,7 +1666,7 @@ class ProposicaoForm(FileFieldCheckMixin, forms.ModelForm):
return super().save(commit) return super().save(commit)
inst.ano = timezone.now().year inst.ano = timezone.now().year
sequencia_numeracao = AppConfig.attr('sequencia_numeracao') sequencia_numeracao = AppConfig.attr('sequencia_numeracao_proposicao')
if sequencia_numeracao == 'A': if sequencia_numeracao == 'A':
numero__max = Proposicao.objects.filter( numero__max = Proposicao.objects.filter(
autor=inst.autor, autor=inst.autor,
@ -1806,8 +1806,7 @@ class ConfirmarProposicaoForm(ProposicaoForm):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
self.proposicao_incorporacao_obrigatoria = \ self.proposicao_incorporacao_obrigatoria = \
sapl.base.models.AppConfig.attr( AppConfig.attr('proposicao_incorporacao_obrigatoria')
'proposicao_incorporacao_obrigatoria')
if self.proposicao_incorporacao_obrigatoria != 'C': if self.proposicao_incorporacao_obrigatoria != 'C':
if 'gerar_protocolo' in self._meta.fields: if 'gerar_protocolo' in self._meta.fields:
@ -1859,7 +1858,7 @@ class ConfirmarProposicaoForm(ProposicaoForm):
) )
] ]
if not sapl.base.models.AppConfig.objects.last().escolher_numero_materia_proposicao or \ if not AppConfig.objects.last().escolher_numero_materia_proposicao or \
not self.instance.numero_materia_futuro: not self.instance.numero_materia_futuro:
if 'numero_materia_futuro' in self._meta.fields: if 'numero_materia_futuro' in self._meta.fields:
del fields[0][0][3] del fields[0][0][3]
@ -1939,7 +1938,7 @@ class ConfirmarProposicaoForm(ProposicaoForm):
if not self.is_valid(): if not self.is_valid():
return self.cleaned_data return self.cleaned_data
numeracao = sapl.base.models.AppConfig.attr('sequencia_numeracao') numeracao = AppConfig.attr('sequencia_numeracao_proposicao')
if not numeracao: if not numeracao:
self.logger.error("A sequência de numeração (por ano ou geral)" self.logger.error("A sequência de numeração (por ano ou geral)"
@ -2016,8 +2015,8 @@ class ConfirmarProposicaoForm(ProposicaoForm):
try: try:
self.logger.debug( self.logger.debug(
"Tentando obter modelo de sequência de numeração.") "Tentando obter modelo de sequência de numeração.")
numeracao = sapl.base.models.AppConfig.objects.last( numeracao = AppConfig.objects.last(
).sequencia_numeracao ).sequencia_numeracao_protocolo
except AttributeError as e: except AttributeError as e:
self.logger.error("Erro ao obter modelo. " + str(e)) self.logger.error("Erro ao obter modelo. " + str(e))
pass pass
@ -2043,7 +2042,6 @@ class ConfirmarProposicaoForm(ProposicaoForm):
elif numeracao == 'U': elif numeracao == 'U':
numero = MateriaLegislativa.objects.filter( numero = MateriaLegislativa.objects.filter(
tipo=tipo).aggregate(Max('numero')) tipo=tipo).aggregate(Max('numero'))
if numeracao is None: if numeracao is None:
numero['numero__max'] = 0 numero['numero__max'] = 0
@ -2169,7 +2167,7 @@ class ConfirmarProposicaoForm(ProposicaoForm):
GenericForeignKey GenericForeignKey
""" """
numeracao = sapl.base.models.AppConfig.attr('sequencia_numeracao') numeracao = AppConfig.attr('sequencia_numeracao_protocolo')
if numeracao == 'A': if numeracao == 'A':
nm = Protocolo.objects.filter( nm = Protocolo.objects.filter(
ano=timezone.now().year).aggregate(Max('numero')) ano=timezone.now().year).aggregate(Max('numero'))

20
sapl/materia/migrations/0046_auto_20190417_0941.py

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.20 on 2019-04-17 12:41
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('materia', '0045_auto_20190415_1050'),
]
operations = [
migrations.AlterField(
model_name='tipomaterialegislativa',
name='sequencia_numeracao',
field=models.CharField(blank=True, choices=[('A', 'Sequencial por ano para cada autor'), ('L', 'Sequencial por legislatura'), ('U', 'Sequencial único')], max_length=1, verbose_name='Sequência de numeração'),
),
]

20
sapl/materia/migrations/0047_auto_20190417_1432.py

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.20 on 2019-04-17 17:32
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('materia', '0046_auto_20190417_0941'),
]
operations = [
migrations.AlterField(
model_name='tipomaterialegislativa',
name='sequencia_numeracao',
field=models.CharField(blank=True, choices=[('A', 'Sequencial por ano'), ('L', 'Sequencial por legislatura'), ('U', 'Sequencial único')], max_length=1, verbose_name='Sequência de numeração'),
),
]

4
sapl/materia/models.py

@ -10,7 +10,7 @@ from django.utils.translation import ugettext_lazy as _
from model_utils import Choices from model_utils import Choices
import reversion import reversion
from sapl.base.models import SEQUENCIA_NUMERACAO, Autor from sapl.base.models import SEQUENCIA_NUMERACAO_PROTOCOLO, Autor
from sapl.comissoes.models import Comissao from sapl.comissoes.models import Comissao
from sapl.compilacao.models import (PerfilEstruturalTextoArticulado, from sapl.compilacao.models import (PerfilEstruturalTextoArticulado,
TextoArticulado) TextoArticulado)
@ -128,7 +128,7 @@ class TipoMateriaLegislativa(models.Model):
max_length=1, max_length=1,
blank=True, blank=True,
verbose_name=_('Sequência de numeração'), verbose_name=_('Sequência de numeração'),
choices=SEQUENCIA_NUMERACAO) choices=SEQUENCIA_NUMERACAO_PROTOCOLO)
sequencia_regimental = models.PositiveIntegerField( sequencia_regimental = models.PositiveIntegerField(
default=0, default=0,

3
sapl/templates/base/layouts.yaml

@ -18,7 +18,8 @@ AppConfig:
- esfera_federacao - esfera_federacao
{% trans 'Proposições e Protocolo' %}: {% trans 'Proposições e Protocolo' %}:
- sequencia_numeracao protocolo_manual receber_recibo_proposicao - sequencia_numeracao_proposicao sequencia_numeracao_protocolo
- protocolo_manual receber_recibo_proposicao
- proposicao_incorporacao_obrigatoria escolher_numero_materia_proposicao - proposicao_incorporacao_obrigatoria escolher_numero_materia_proposicao
{% trans 'Textos Articulados' %}: {% trans 'Textos Articulados' %}:

Loading…
Cancel
Save