From a24975e999150f1bced4afecf259fe879d59919d Mon Sep 17 00:00:00 2001 From: Edward Ribeiro Date: Thu, 22 Jun 2017 16:46:20 -0300 Subject: [PATCH] Fixes #1223 --- sapl/base/forms.py | 3 ++- .../0004_appconfig_num_inicial_sequencia.py | 20 +++++++++++++++++++ sapl/base/models.py | 6 ++++++ sapl/protocoloadm/views.py | 19 ++++++++++++++---- sapl/templates/base/layouts.yaml | 2 +- 5 files changed, 44 insertions(+), 6 deletions(-) create mode 100644 sapl/base/migrations/0004_appconfig_num_inicial_sequencia.py diff --git a/sapl/base/forms.py b/sapl/base/forms.py index dcc453d5d..c51082a92 100644 --- a/sapl/base/forms.py +++ b/sapl/base/forms.py @@ -697,6 +697,7 @@ class ConfiguracoesAppForm(ModelForm): model = AppConfig fields = ['documentos_administrativos', 'sequencia_numeracao', + 'num_inicial_sequencia', 'painel_aberto', 'texto_articulado_proposicao', 'texto_articulado_materia', @@ -728,7 +729,7 @@ class RecuperarSenhaForm(PasswordResetForm): def clean(self): super(RecuperarSenhaForm, self).clean() - + email_existente = User.objects.filter( email=self.data['email']).exists() diff --git a/sapl/base/migrations/0004_appconfig_num_inicial_sequencia.py b/sapl/base/migrations/0004_appconfig_num_inicial_sequencia.py new file mode 100644 index 000000000..1a409bdcb --- /dev/null +++ b/sapl/base/migrations/0004_appconfig_num_inicial_sequencia.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.11 on 2017-06-22 16:28 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('base', '0003_auto_20170519_1106'), + ] + + operations = [ + migrations.AddField( + model_name='appconfig', + name='num_inicial_sequencia', + field=models.PositiveIntegerField(blank=True, default=0, null=True, verbose_name='Número inicial Sequência'), + ), + ] diff --git a/sapl/base/models.py b/sapl/base/models.py index 3edef25e9..ee1d995ef 100644 --- a/sapl/base/models.py +++ b/sapl/base/models.py @@ -119,6 +119,12 @@ class AppConfig(models.Model): verbose_name=_('Sequência de numeração'), choices=SEQUENCIA_NUMERACAO, default='A') + num_inicial_sequencia = models.PositiveIntegerField( + verbose_name=_('Número inicial Sequência'), + blank=True, + null=True, + default=0) + painel_aberto = models.BooleanField( verbose_name=_('Painel aberto para usuário anônimo'), choices=YES_NO_CHOICES, default=False) diff --git a/sapl/protocoloadm/views.py b/sapl/protocoloadm/views.py index c478b6f62..7d09f833b 100644 --- a/sapl/protocoloadm/views.py +++ b/sapl/protocoloadm/views.py @@ -267,10 +267,9 @@ class ProtocoloDocumentoView(PermissionRequiredMixin, def form_valid(self, form): f = form.save(commit=False) - + app_config = sapl.base.models.AppConfig.objects.last() try: - numeracao = sapl.base.models.AppConfig.objects.last( - ).sequencia_numeracao + numeracao = app_config.sequencia_numeracao except AttributeError: msg = _('É preciso definir a sequencia de ' + 'numeração na tabelas auxiliares!') @@ -283,9 +282,21 @@ class ProtocoloDocumentoView(PermissionRequiredMixin, elif numeracao == 'U': numero = Protocolo.objects.all().aggregate(Max('numero')) + # inicializa numeracao a partir de determinado valor + num_inicial = app_config.num_inicial_sequencia + if not num_inicial or num_inicial < 0: + num_inicial = 0 + f.tipo_processo = '0' # TODO validar o significado f.anulado = False - f.numero = (numero['numero__max'] + 1) if numero['numero__max'] else 1 + + if numero['numero__max']: + f.numero = (numero['numero__max'] + 1) + elif num_inicial > 0: + f.numero = num_inicial + else: + f.numero = 1 + f.ano = datetime.now().year f.data = datetime.now().date() f.hora = datetime.now().time() diff --git a/sapl/templates/base/layouts.yaml b/sapl/templates/base/layouts.yaml index cfa78b435..6f479cd9e 100644 --- a/sapl/templates/base/layouts.yaml +++ b/sapl/templates/base/layouts.yaml @@ -15,7 +15,7 @@ AppConfig: - documentos_administrativos painel_aberto {% trans 'Proposições e Protocolo' %}: - - sequencia_numeracao proposicao_incorporacao_obrigatoria + - sequencia_numeracao num_inicial_sequencia proposicao_incorporacao_obrigatoria {% trans 'Textos Articulados' %}: - texto_articulado_proposicao texto_articulado_materia texto_articulado_norma