From 12d6bced5c9abdb606dc60b0b8128ce8848c4a84 Mon Sep 17 00:00:00 2001 From: Mariana Mendes Date: Wed, 9 May 2018 17:23:12 -0300 Subject: [PATCH] Fix #1586 --- sapl/materia/forms.py | 10 +++++----- .../migrations/0029_auto_20180509_1722.py | 20 +++++++++++++++++++ sapl/materia/models.py | 4 ++-- sapl/materia/tests/test_materia.py | 3 ++- sapl/materia/views.py | 2 +- sapl/protocoloadm/forms.py | 8 ++++---- .../migrations/0005_auto_20180509_1722.py | 20 +++++++++++++++++++ sapl/protocoloadm/models.py | 2 +- sapl/protocoloadm/tests/test_protocoloadm.py | 18 ++++++++--------- 9 files changed, 64 insertions(+), 23 deletions(-) create mode 100644 sapl/materia/migrations/0029_auto_20180509_1722.py create mode 100644 sapl/protocoloadm/migrations/0005_auto_20180509_1722.py diff --git a/sapl/materia/forms.py b/sapl/materia/forms.py index e083e7fec..cde32010c 100644 --- a/sapl/materia/forms.py +++ b/sapl/materia/forms.py @@ -313,7 +313,7 @@ class TramitacaoForm(ModelForm): def __init__(self, *args, **kwargs): super(TramitacaoForm, self).__init__(*args, **kwargs) - self.fields['data_tramitacao'].initial = timezone.now().date() + self.fields['data_tramitacao'].initial = timezone.now() def clean(self): super(TramitacaoForm, self).clean() @@ -345,7 +345,7 @@ class TramitacaoForm(ModelForm): 'destino da última adicionada!') raise ValidationError(msg) - if cleaned_data['data_tramitacao'] > timezone.now().date(): + if cleaned_data['data_tramitacao'] > timezone.now(): msg = _( 'A data de tramitação deve ser ' + 'menor ou igual a data de hoje!') @@ -358,13 +358,13 @@ class TramitacaoForm(ModelForm): raise ValidationError(msg) if data_enc_form: - if data_enc_form < data_tram_form: + if data_enc_form < data_tram_form.date(): msg = _('A data de encaminhamento deve ser ' + 'maior que a data de tramitação!') raise ValidationError(msg) if data_prazo_form: - if data_prazo_form < data_tram_form: + if data_prazo_form < data_tram_form.date(): msg = _('A data fim de prazo deve ser ' + 'maior que a data de tramitação!') raise ValidationError(msg) @@ -377,7 +377,7 @@ class TramitacaoUpdateForm(TramitacaoForm): queryset=UnidadeTramitacao.objects.all(), widget=forms.HiddenInput()) - data_tramitacao = forms.DateField(widget=forms.HiddenInput()) + data_tramitacao = forms.DateTimeField(widget=forms.HiddenInput()) class Meta: model = Tramitacao diff --git a/sapl/materia/migrations/0029_auto_20180509_1722.py b/sapl/materia/migrations/0029_auto_20180509_1722.py new file mode 100644 index 000000000..820c28639 --- /dev/null +++ b/sapl/materia/migrations/0029_auto_20180509_1722.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.13 on 2018-05-09 20:22 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('materia', '0028_auto_20180418_1629'), + ] + + operations = [ + migrations.AlterField( + model_name='tramitacao', + name='data_tramitacao', + field=models.DateTimeField(verbose_name='Data Tramitação'), + ), + ] diff --git a/sapl/materia/models.py b/sapl/materia/models.py index 606fabbd7..0a7ca77e0 100644 --- a/sapl/materia/models.py +++ b/sapl/materia/models.py @@ -881,7 +881,7 @@ class Tramitacao(models.Model): null=True, verbose_name=_('Status')) materia = models.ForeignKey(MateriaLegislativa, on_delete=models.CASCADE) - data_tramitacao = models.DateField(verbose_name=_('Data Tramitação')) + data_tramitacao = models.DateTimeField(verbose_name=_('Data Tramitação')) unidade_tramitacao_local = models.ForeignKey( UnidadeTramitacao, related_name='tramitacoes_origem', @@ -915,4 +915,4 @@ class Tramitacao(models.Model): return _('%(materia)s | %(status)s | %(data)s') % { 'materia': self.materia, 'status': self.status, - 'data': self.data_tramitacao.strftime("%d/%m/%Y")} + 'data': self.data_tramitacao.strftime("%d/%m/%Y/ %H:%M:%S")} diff --git a/sapl/materia/tests/test_materia.py b/sapl/materia/tests/test_materia.py index 4af9df7ea..f41020f2d 100644 --- a/sapl/materia/tests/test_materia.py +++ b/sapl/materia/tests/test_materia.py @@ -1,4 +1,5 @@ import pytest +from datetime import datetime from django.contrib.auth import get_user_model from django.contrib.contenttypes.models import ContentType from django.core.files.uploadedfile import SimpleUploadedFile @@ -283,7 +284,7 @@ def test_tramitacao_submit(admin_client): 'Unidade Destino').pk, 'urgente': True, 'status': status_tramitacao.pk, - 'data_tramitacao': '2016-03-21', + 'data_tramitacao': '2016-03-21 00:00:00', 'data_fim_prazo': '2016-03-22', 'data_encaminhamento': '2016-03-22', 'texto': 'Texto_Teste', diff --git a/sapl/materia/views.py b/sapl/materia/views.py index a23932b42..2c27c8fd5 100644 --- a/sapl/materia/views.py +++ b/sapl/materia/views.py @@ -1779,7 +1779,7 @@ class PrimeiraTramitacaoEmLoteView(PermissionRequiredMixin, FilterView): t = Tramitacao( materia_id=materia_id, data_tramitacao=tz.localize(datetime.strptime( - request.POST['data_tramitacao'], "%d/%m/%Y")), + request.POST['data_tramitacao'], "%d/%m/%Y/ %H:%M:%S")), data_encaminhamento=data_encaminhamento, data_fim_prazo=data_fim_prazo, unidade_tramitacao_local_id=request.POST[ diff --git a/sapl/protocoloadm/forms.py b/sapl/protocoloadm/forms.py index 06a2f7854..a24a1c7f2 100644 --- a/sapl/protocoloadm/forms.py +++ b/sapl/protocoloadm/forms.py @@ -544,7 +544,7 @@ class TramitacaoAdmForm(ModelForm): 'destino da última adicionada!') raise ValidationError(msg) - if self.cleaned_data['data_tramitacao'] > timezone.now().date(): + if self.cleaned_data['data_tramitacao'] > timezone.now(): msg = _( 'A data de tramitação deve ser ' + 'menor ou igual a data de hoje!') @@ -557,13 +557,13 @@ class TramitacaoAdmForm(ModelForm): raise ValidationError(msg) if data_enc_form: - if data_enc_form < data_tram_form: + if data_enc_form < data_tram_form.date(): msg = _('A data de encaminhamento deve ser ' + 'maior que a data de tramitação!') raise ValidationError(msg) if data_prazo_form: - if data_prazo_form < data_tram_form: + if data_prazo_form < data_tram_form.date(): msg = _('A data fim de prazo deve ser ' + 'maior que a data de tramitação!') raise ValidationError(msg) @@ -577,7 +577,7 @@ class TramitacaoAdmEditForm(TramitacaoAdmForm): queryset=UnidadeTramitacao.objects.all(), widget=forms.HiddenInput()) - data_tramitacao = forms.DateField(widget=forms.HiddenInput()) + data_tramitacao = forms.DateTimeField(widget=forms.HiddenInput()) class Meta: model = TramitacaoAdministrativo diff --git a/sapl/protocoloadm/migrations/0005_auto_20180509_1722.py b/sapl/protocoloadm/migrations/0005_auto_20180509_1722.py new file mode 100644 index 000000000..dd24f16b6 --- /dev/null +++ b/sapl/protocoloadm/migrations/0005_auto_20180509_1722.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.13 on 2018-05-09 20:22 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('protocoloadm', '0004_documentoadministrativo_numero_externo'), + ] + + operations = [ + migrations.AlterField( + model_name='tramitacaoadministrativo', + name='data_tramitacao', + field=models.DateTimeField(verbose_name='Data Tramitação'), + ), + ] diff --git a/sapl/protocoloadm/models.py b/sapl/protocoloadm/models.py index cf7616d7a..724583fa5 100644 --- a/sapl/protocoloadm/models.py +++ b/sapl/protocoloadm/models.py @@ -263,7 +263,7 @@ class TramitacaoAdministrativo(models.Model): verbose_name=_('Status')) documento = models.ForeignKey(DocumentoAdministrativo, on_delete=models.PROTECT) - data_tramitacao = models.DateField( + data_tramitacao = models.DateTimeField( verbose_name=_('Data Tramitação')) unidade_tramitacao_local = models.ForeignKey( UnidadeTramitacao, diff --git a/sapl/protocoloadm/tests/test_protocoloadm.py b/sapl/protocoloadm/tests/test_protocoloadm.py index f74c4dd7b..672c63fb9 100644 --- a/sapl/protocoloadm/tests/test_protocoloadm.py +++ b/sapl/protocoloadm/tests/test_protocoloadm.py @@ -1,4 +1,4 @@ -from datetime import date, timedelta +from datetime import date, timedelta, datetime import pytest from django.core.urlresolvers import reverse @@ -145,7 +145,7 @@ def test_create_tramitacao(admin_client): unidade_tramitacao_destino=unidade_tramitacao_destino_1, status=status, documento=documento_adm, - data_tramitacao=date(2016, 8, 21)) + data_tramitacao=datetime(2016, 8, 21, 0, 0)) response = admin_client.post( reverse( @@ -155,7 +155,7 @@ def test_create_tramitacao(admin_client): 'unidade_tramitacao_destino': unidade_tramitacao_local_1.pk, 'documento': documento_adm.pk, 'status': status.pk, - 'data_tramitacao': date(2016, 8, 21)}, + 'data_tramitacao': datetime(2016, 8, 21, 0, 0)}, follow=True) msg = force_text(_('A origem da nova tramitação deve ser igual ao ' @@ -173,7 +173,7 @@ def test_create_tramitacao(admin_client): 'unidade_tramitacao_destino': unidade_tramitacao_destino_2.pk, 'documento': documento_adm.pk, 'status': status.pk, - 'data_tramitacao': date(2016, 8, 20)}, + 'data_tramitacao': datetime(2016, 8, 20, 0, 0)}, follow=True) msg = _('A data da nova tramitação deve ser ' + @@ -191,7 +191,7 @@ def test_create_tramitacao(admin_client): 'unidade_tramitacao_destino': unidade_tramitacao_destino_2.pk, 'documento': documento_adm.pk, 'status': status.pk, - 'data_tramitacao': date.today() + timedelta( + 'data_tramitacao': datetime.today() + timedelta( days=1)}, follow=True) @@ -210,7 +210,7 @@ def test_create_tramitacao(admin_client): 'unidade_tramitacao_destino': unidade_tramitacao_destino_2.pk, 'documento': documento_adm.pk, 'status': status.pk, - 'data_tramitacao': date(2016, 8, 21), + 'data_tramitacao': datetime(2016, 8, 21, 0, 0), 'data_encaminhamento': date(2016, 8, 20)}, follow=True) @@ -229,7 +229,7 @@ def test_create_tramitacao(admin_client): 'unidade_tramitacao_destino': unidade_tramitacao_destino_2.pk, 'documento': documento_adm.pk, 'status': status.pk, - 'data_tramitacao': date(2016, 8, 21), + 'data_tramitacao': datetime(2016, 8, 21, 0, 0), 'data_fim_prazo': date(2016, 8, 20)}, follow=True) @@ -248,12 +248,12 @@ def test_create_tramitacao(admin_client): 'unidade_tramitacao_destino': unidade_tramitacao_destino_2.pk, 'documento': documento_adm.pk, 'status': status.pk, - 'data_tramitacao': date(2016, 8, 21)}, + 'data_tramitacao': datetime(2016, 8, 21, 0, 0)}, follow=True) tramitacao = TramitacaoAdministrativo.objects.last() # Verifica se a tramitacao que obedece as regras de negócios é criada - assert tramitacao.data_tramitacao == date(2016, 8, 21) + assert tramitacao.data_tramitacao.date() == date(2016, 8, 21) @pytest.mark.django_db(transaction=False)