diff --git a/sapl/materia/views.py b/sapl/materia/views.py index 90aab768f..c30dbd47f 100644 --- a/sapl/materia/views.py +++ b/sapl/materia/views.py @@ -4,6 +4,7 @@ from string import ascii_letters, digits from crispy_forms.helper import FormHelper from crispy_forms.layout import HTML +from django import forms from django.contrib import messages from django.contrib.auth.decorators import permission_required from django.contrib.auth.mixins import PermissionRequiredMixin @@ -923,13 +924,30 @@ class TramitacaoCrud(MasterDetailCrud): def get_initial(self): local = MateriaLegislativa.objects.get( - pk=self.kwargs['pk']).tramitacao_set.last() + pk=self.kwargs['pk']).tramitacao_set.order_by( + '-data_tramitacao').first() + if local: self.initial['unidade_tramitacao_local' ] = local.unidade_tramitacao_destino.pk + else: + self.initial['unidade_tramitacao_local'] = '' self.initial['data_tramitacao'] = datetime.now() return self.initial + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + + primeira_tramitacao = not(Tramitacao.objects.filter( + materia_id=int(kwargs['root_pk'])).exists()) + + # Se não for a primeira tramitação daquela matéria, o campo + # não pode ser modificado + if not primeira_tramitacao: + context['form'].fields[ + 'unidade_tramitacao_local'].widget.attrs['disabled'] = True + return context + def form_valid(self, form): self.object = form.save() tramitacao_signal.send(sender=Tramitacao, diff --git a/sapl/templates/materia/em_lote/tramitacao.html b/sapl/templates/materia/em_lote/tramitacao.html index f68505be5..260a8d514 100644 --- a/sapl/templates/materia/em_lote/tramitacao.html +++ b/sapl/templates/materia/em_lote/tramitacao.html @@ -39,7 +39,7 @@
- {% if unidade_local|length > 1 %}{% endif %} {% for u in unidade_local %} {% endfor %} @@ -131,5 +131,14 @@ $(this).trigger('click'); }); } + + $(document).ready(function(){ + $('#id_unidade_tramitacao_local').prop('disabled', true); + }); + + // Reabilita o campo, no momento do Submit, para que seu dado seja enviado + $('form').submit(function(){ + $('#id_unidade_tramitacao_local').prop('disabled', false); + }); {% endblock %} diff --git a/sapl/templates/materia/tipoproposicao_form.html b/sapl/templates/materia/tipoproposicao_form.html index 25943b466..ec8facf7f 100644 --- a/sapl/templates/materia/tipoproposicao_form.html +++ b/sapl/templates/materia/tipoproposicao_form.html @@ -1,6 +1,6 @@ {% extends "crud/form.html" %} {% load i18n %} -aaa + {% block extra_js %} + +{% endblock %}