Browse Source

Fix #1471 (#1477)

pull/1483/head
Eduardo Calil 7 years ago
committed by Edward
parent
commit
6959b741de
  1. 47
      sapl/materia/forms.py
  2. 6
      sapl/materia/views.py

47
sapl/materia/forms.py

@ -215,24 +215,26 @@ class TramitacaoForm(ModelForm):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super(TramitacaoForm, self).__init__(*args, **kwargs) super(TramitacaoForm, self).__init__(*args, **kwargs)
self.fields['data_tramitacao'].initial = datetime.now() self.fields['data_tramitacao'].initial = datetime.now().date()
def clean(self): def clean(self):
super(TramitacaoForm, self).clean() cleaned_data = super(TramitacaoForm, self).clean()
if 'data_encaminhamento' in self.data: if 'data_encaminhamento' in cleaned_data:
data_enc_form = self.cleaned_data['data_encaminhamento'] data_enc_form = cleaned_data['data_encaminhamento']
if 'data_fim_prazo' in self.data: if 'data_fim_prazo' in cleaned_data:
data_prazo_form = self.cleaned_data['data_fim_prazo'] data_prazo_form = cleaned_data['data_fim_prazo']
if 'data_tramitacao' in self.data: if 'data_tramitacao' in cleaned_data:
data_tram_form = self.cleaned_data['data_tramitacao'] data_tram_form = cleaned_data['data_tramitacao']
if self.errors: if self.errors:
return self.errors return self.errors
ultima_tramitacao = Tramitacao.objects.filter( ultima_tramitacao = Tramitacao.objects.filter(
materia_id=self.instance.materia_id).exclude( materia_id=self.instance.materia_id).exclude(
id=self.instance.id).last() id=self.instance.id).order_by(
'-data_tramitacao',
'-id').first()
if not self.instance.data_tramitacao: if not self.instance.data_tramitacao:
@ -243,7 +245,7 @@ class TramitacaoForm(ModelForm):
'destino da última adicionada!') 'destino da última adicionada!')
raise ValidationError(msg) raise ValidationError(msg)
if self.cleaned_data['data_tramitacao'] > datetime.now().date(): if cleaned_data['data_tramitacao'] > datetime.now().date():
msg = _( msg = _(
'A data de tramitação deve ser ' + 'A data de tramitação deve ser ' +
'menor ou igual a data de hoje!') 'menor ou igual a data de hoje!')
@ -267,7 +269,7 @@ class TramitacaoForm(ModelForm):
'maior que a data de tramitação!') 'maior que a data de tramitação!')
raise ValidationError(msg) raise ValidationError(msg)
return self.cleaned_data return cleaned_data
class TramitacaoUpdateForm(TramitacaoForm): class TramitacaoUpdateForm(TramitacaoForm):
@ -296,13 +298,26 @@ class TramitacaoUpdateForm(TramitacaoForm):
} }
def clean(self): def clean(self):
super(TramitacaoUpdateForm, self).clean() ultima_tramitacao = Tramitacao.objects.filter(
materia_id=self.instance.materia_id).order_by(
'-data_tramitacao',
'-id').first()
# Se a Tramitação que está sendo editada não for a mais recente,
# ela não pode ter seu destino alterado.
if ultima_tramitacao != self.instance:
if self.cleaned_data['unidade_tramitacao_destino'] != \
self.instance.unidade_tramitacao_destino:
raise ValidationError(
'Você não pode mudar a Unidade de Destino desta '\
'tramitação, pois irá conflitar com a Unidade ' \
'Local da tramitação seguinte')
local = self.instance.unidade_tramitacao_local self.cleaned_data['data_tramitacao'] = \
data_tram = self.instance.data_tramitacao self.instance.data_tramitacao
self.cleaned_data['unidade_tramitacao_local'] = \
self.instance.unidade_tramitacao_local
self.cleaned_data['data_tramitacao'] = data_tram
self.cleaned_data['unidade_tramitacao_local'] = local
return super(TramitacaoUpdateForm, self).clean() return super(TramitacaoUpdateForm, self).clean()

6
sapl/materia/views.py

@ -930,7 +930,8 @@ class TramitacaoCrud(MasterDetailCrud):
def get_initial(self): def get_initial(self):
local = MateriaLegislativa.objects.get( local = MateriaLegislativa.objects.get(
pk=self.kwargs['pk']).tramitacao_set.order_by( pk=self.kwargs['pk']).tramitacao_set.order_by(
'-data_tramitacao').first() '-data_tramitacao',
'-id').first()
if local: if local:
self.initial['unidade_tramitacao_local' self.initial['unidade_tramitacao_local'
@ -1009,7 +1010,8 @@ class TramitacaoCrud(MasterDetailCrud):
def get_queryset(self): def get_queryset(self):
qs = super(MasterDetailCrud.ListView, self).get_queryset() qs = super(MasterDetailCrud.ListView, self).get_queryset()
kwargs = {self.crud.parent_field: self.kwargs['pk']} kwargs = {self.crud.parent_field: self.kwargs['pk']}
return qs.filter(**kwargs).order_by('-data_tramitacao', '-id') return qs.filter(**kwargs).order_by('-data_tramitacao',
'-id')
class DeleteView(MasterDetailCrud.DeleteView): class DeleteView(MasterDetailCrud.DeleteView):

Loading…
Cancel
Save