Browse Source

Coloca data/hora de protocolo como configurável (#2504)

* Coloca data/hora de protocolo como configurável

* Conserta testes
pull/2516/head
Edward 6 years ago
committed by GitHub
parent
commit
3eaeedc513
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      sapl/base/forms.py
  2. 20
      sapl/base/migrations/0030_appconfig_protocolo_manual.py
  3. 20
      sapl/base/migrations/0031_auto_20190218_1109.py
  4. 4
      sapl/base/models.py
  5. 40
      sapl/protocoloadm/forms.py
  6. 7
      sapl/protocoloadm/tests/test_protocoloadm.py
  7. 2
      sapl/templates/base/layouts.yaml

1
sapl/base/forms.py

@ -1155,6 +1155,7 @@ class ConfiguracoesAppForm(ModelForm):
'texto_articulado_materia', 'texto_articulado_materia',
'texto_articulado_norma', 'texto_articulado_norma',
'proposicao_incorporacao_obrigatoria', 'proposicao_incorporacao_obrigatoria',
'protocolo_manual',
'cronometro_discurso', 'cronometro_discurso',
'cronometro_aparte', 'cronometro_aparte',
'cronometro_ordem', 'cronometro_ordem',

20
sapl/base/migrations/0030_appconfig_protocolo_manual.py

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.20 on 2019-02-15 18:25
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('base', '0029_remove_appconfig_relatorios_atos'),
]
operations = [
migrations.AddField(
model_name='appconfig',
name='protocolo_manual',
field=models.BooleanField(choices=[(True, 'Sim'), (False, 'Não')], default=False, verbose_name='Protocolar proposição somente com recibo?'),
),
]

20
sapl/base/migrations/0031_auto_20190218_1109.py

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.20 on 2019-02-18 14:09
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('base', '0030_appconfig_protocolo_manual'),
]
operations = [
migrations.AlterField(
model_name='appconfig',
name='protocolo_manual',
field=models.BooleanField(choices=[(True, 'Sim'), (False, 'Não')], default=False, verbose_name='Informar data e hora de protocolo?'),
),
]

4
sapl/base/models.py

@ -160,6 +160,10 @@ class AppConfig(models.Model):
verbose_name=_('Protocolar proposição somente com recibo?'), verbose_name=_('Protocolar proposição somente com recibo?'),
choices=YES_NO_CHOICES, default=True) choices=YES_NO_CHOICES, default=True)
protocolo_manual = models.BooleanField(
verbose_name=_('Informar data e hora de protocolo?'),
choices=YES_NO_CHOICES, default=False)
class Meta: class Meta:
verbose_name = _('Configurações da Aplicação') verbose_name = _('Configurações da Aplicação')
verbose_name_plural = _('Configurações da Aplicação') verbose_name_plural = _('Configurações da Aplicação')

40
sapl/protocoloadm/forms.py

@ -14,7 +14,7 @@ from django.utils import timezone
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
import django_filters import django_filters
from sapl.base.models import Autor, TipoAutor from sapl.base.models import Autor, TipoAutor, AppConfig
from sapl.crispy_layout_mixin import SaplFormLayout, form_actions, to_row from sapl.crispy_layout_mixin import SaplFormLayout, form_actions, to_row
from sapl.materia.models import (MateriaLegislativa, TipoMateriaLegislativa, from sapl.materia.models import (MateriaLegislativa, TipoMateriaLegislativa,
UnidadeTramitacao) UnidadeTramitacao)
@ -404,14 +404,21 @@ class ProtocoloDocumentForm(ModelForm):
row7 = to_row( row7 = to_row(
[('numero', 12)]) [('numero', 12)])
self.helper = SaplFormHelper() fieldset = Fieldset(_('Protocolo com data e hora informados manualmente'),
row3,
css_id='protocolo_data_hora_manual')
config = AppConfig.objects.first()
if not config.protocolo_manual:
row3 = to_row([(HTML(" "), 12)])
fieldset = row3
self.helper = FormHelper()
self.helper.layout = Layout( self.helper.layout = Layout(
Fieldset(_('Identificação de Documento'), Fieldset(_('Identificação de Documento'),
row1, row1,
row2), row2),
Fieldset(_('Protocolo com data e hora informados manualmente'), fieldset,
row3,
css_id='protocolo_data_hora_manual'),
row4, row4,
row5, row5,
HTML(" "), HTML(" "),
@ -425,6 +432,10 @@ class ProtocoloDocumentForm(ModelForm):
super(ProtocoloDocumentForm, self).__init__( super(ProtocoloDocumentForm, self).__init__(
*args, **kwargs) *args, **kwargs)
if not config.protocolo_manual:
self.fields['data_hora_manual'].widget = forms.HiddenInput()
class ProtocoloMateriaForm(ModelForm): class ProtocoloMateriaForm(ModelForm):
@ -583,14 +594,22 @@ class ProtocoloMateriaForm(ModelForm):
row6 = to_row( row6 = to_row(
[('numero', 12)]) [('numero', 12)])
self.helper = SaplFormHelper() fieldset = Fieldset(_('Protocolo com data e hora informados manualmente'),
row3,
css_id='protocolo_data_hora_manual')
config = AppConfig.objects.first()
if not config.protocolo_manual:
row3 = to_row([(HTML(" "), 12)])
fieldset = row3
self.helper = FormHelper()
self.helper.layout = Layout( self.helper.layout = Layout(
Fieldset(_('Identificação da Matéria'), Fieldset(_('Identificação da Matéria'),
row1, row1,
row2), row2),
Fieldset(_('Protocolo com data e hora informados manualmente'), fieldset,
row3,
css_id='protocolo_data_hora_manual'),
row4, row4,
row5, row5,
HTML(" "), HTML(" "),
@ -604,6 +623,9 @@ class ProtocoloMateriaForm(ModelForm):
super(ProtocoloMateriaForm, self).__init__( super(ProtocoloMateriaForm, self).__init__(
*args, **kwargs) *args, **kwargs)
if not config.protocolo_manual:
self.fields['data_hora_manual'].widget = forms.HiddenInput()
class DocumentoAcessorioAdministrativoForm(ModelForm): class DocumentoAcessorioAdministrativoForm(ModelForm):

7
sapl/protocoloadm/tests/test_protocoloadm.py

@ -7,6 +7,7 @@ from django.utils.translation import ugettext_lazy as _
from model_mommy import mommy from model_mommy import mommy
import pytest import pytest
from sapl.base.models import AppConfig
from sapl.materia.models import UnidadeTramitacao from sapl.materia.models import UnidadeTramitacao
from sapl.protocoloadm.forms import (AnularProcoloAdmForm, from sapl.protocoloadm.forms import (AnularProcoloAdmForm,
DocumentoAdministrativoForm, DocumentoAdministrativoForm,
@ -390,8 +391,11 @@ def test_documento_administrativo_protocolo_inexistente():
assert form.errors['__all__'] == [_('Protocolo 11/2017 inexistente.')] assert form.errors['__all__'] == [_('Protocolo 11/2017 inexistente.')]
@pytest.mark.django_db(transaction=False)
def test_protocolo_documento_form_invalido(): def test_protocolo_documento_form_invalido():
config = mommy.make(AppConfig)
form = ProtocoloDocumentForm( form = ProtocoloDocumentForm(
data={}, data={},
initial={ initial={
@ -414,8 +418,11 @@ def test_protocolo_documento_form_invalido():
assert len(errors) == 6 assert len(errors) == 6
@pytest.mark.django_db(transaction=False)
def test_protocolo_materia_invalido(): def test_protocolo_materia_invalido():
config = mommy.make(AppConfig)
form = ProtocoloMateriaForm(data={}, form = ProtocoloMateriaForm(data={},
initial={ initial={
'user_data_hora_manual': '', 'user_data_hora_manual': '',

2
sapl/templates/base/layouts.yaml

@ -18,7 +18,7 @@ AppConfig:
- esfera_federacao - esfera_federacao
{% trans 'Proposições e Protocolo' %}: {% trans 'Proposições e Protocolo' %}:
- sequencia_numeracao proposicao_incorporacao_obrigatoria receber_recibo_proposicao - sequencia_numeracao proposicao_incorporacao_obrigatoria receber_recibo_proposicao protocolo_manual
{% trans 'Textos Articulados' %}: {% trans 'Textos Articulados' %}:
- texto_articulado_proposicao texto_articulado_materia texto_articulado_norma - texto_articulado_proposicao texto_articulado_materia texto_articulado_norma

Loading…
Cancel
Save