|
|
@ -216,11 +216,22 @@ class TramitacaoForm(ModelForm): |
|
|
|
'texto'] |
|
|
|
|
|
|
|
def clean(self): |
|
|
|
|
|
|
|
if 'data_encaminhamento' in self.data: |
|
|
|
data_enc_form = self.cleaned_data['data_encaminhamento'] |
|
|
|
if 'data_fim_prazo' in self.data: |
|
|
|
data_prazo_form = self.cleaned_data['data_fim_prazo'] |
|
|
|
if 'data_tramitacao' in self.data: |
|
|
|
data_tram_form = self.cleaned_data['data_tramitacao'] |
|
|
|
|
|
|
|
if self.errors: |
|
|
|
return self.errors |
|
|
|
|
|
|
|
ultima_tramitacao = Tramitacao.objects.filter( |
|
|
|
materia_id=self.instance.materia.id).last() |
|
|
|
materia_id=self.instance.materia_id).exclude( |
|
|
|
id=self.instance.id).last() |
|
|
|
|
|
|
|
if not self.instance.data_tramitacao: |
|
|
|
|
|
|
|
if ultima_tramitacao: |
|
|
|
destino = ultima_tramitacao.unidade_tramitacao_destino |
|
|
@ -229,9 +240,67 @@ class TramitacaoForm(ModelForm): |
|
|
|
'destino da última adicionada!') |
|
|
|
raise ValidationError(msg) |
|
|
|
|
|
|
|
if self.cleaned_data['data_tramitacao'] > datetime.now().date(): |
|
|
|
msg = _( |
|
|
|
'A data de tramitação deve ser ' + |
|
|
|
'menor ou igual a data de hoje!') |
|
|
|
raise ValidationError(msg) |
|
|
|
|
|
|
|
if (ultima_tramitacao and |
|
|
|
data_tram_form < ultima_tramitacao.data_tramitacao): |
|
|
|
msg = _('A data da nova tramitação deve ser ' + |
|
|
|
'maior que a data da última tramitação!') |
|
|
|
raise ValidationError(msg) |
|
|
|
|
|
|
|
if data_enc_form: |
|
|
|
if data_enc_form < data_tram_form: |
|
|
|
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: |
|
|
|
msg = _('A data fim de prazo deve ser ' + |
|
|
|
'maior que a data de tramitação!') |
|
|
|
raise ValidationError(msg) |
|
|
|
|
|
|
|
return self.cleaned_data |
|
|
|
|
|
|
|
|
|
|
|
class TramitacaoUpdateForm(TramitacaoForm): |
|
|
|
unidade_tramitacao_local = forms.ModelChoiceField( |
|
|
|
queryset=UnidadeTramitacao.objects.all(), |
|
|
|
widget=forms.HiddenInput()) |
|
|
|
|
|
|
|
data_tramitacao = forms.DateField(widget=forms.HiddenInput()) |
|
|
|
|
|
|
|
class Meta: |
|
|
|
model = Tramitacao |
|
|
|
fields = ['data_tramitacao', |
|
|
|
'unidade_tramitacao_local', |
|
|
|
'status', |
|
|
|
'turno', |
|
|
|
'urgente', |
|
|
|
'unidade_tramitacao_destino', |
|
|
|
'data_encaminhamento', |
|
|
|
'data_fim_prazo', |
|
|
|
'texto', |
|
|
|
] |
|
|
|
|
|
|
|
widgets = { |
|
|
|
'data_encaminhamento': forms.DateInput(format='%d/%m/%Y'), |
|
|
|
'data_fim_prazo': forms.DateInput(format='%d/%m/%Y'), |
|
|
|
} |
|
|
|
|
|
|
|
def clean(self): |
|
|
|
local = self.instance.unidade_tramitacao_local |
|
|
|
data_tram = self.instance.data_tramitacao |
|
|
|
|
|
|
|
self.cleaned_data['data_tramitacao'] = data_tram |
|
|
|
self.cleaned_data['unidade_tramitacao_local'] = local |
|
|
|
return super(TramitacaoUpdateForm, self).clean() |
|
|
|
|
|
|
|
|
|
|
|
class LegislacaoCitadaForm(ModelForm): |
|
|
|
|
|
|
|
tipo = forms.ModelChoiceField( |
|
|
|