diff --git a/sapl/materia/views.py b/sapl/materia/views.py index 21c590349..2a973edc4 100644 --- a/sapl/materia/views.py +++ b/sapl/materia/views.py @@ -772,6 +772,11 @@ class ProposicaoCrud(Crud): context['title'] = '%s (%s)' % ( self.object, self.object.autor) + + context['user'] = self.request.user + context['proposicao'] = Proposicao.objects.get( + pk=self.kwargs['pk'] + ) return context def get(self, request, *args, **kwargs): @@ -940,6 +945,38 @@ class ProposicaoCrud(Crud): class UpdateView(BaseLocalMixin, Crud.UpdateView): logger = logging.getLogger(__name__) + form_class = ProposicaoForm + + def form_valid(self, form): + objeto_antigo = Proposicao.objects.get( + pk=self.kwargs['pk'] + ) + dict_objeto_antigo = objeto_antigo.__dict__ + + tipo_texto = self.request.POST.get('tipo_texto', '') + if tipo_texto=='D' and objeto_antigo.texto_articulado.exists() or tipo_texto=='T' and not objeto_antigo.texto_articulado.exists(): + self.object.user = self.request.user + self.object.ip = get_client_ip(self.request) + self.object.ultima_edicao = datetime.now() + self.object.save() + + self.object = form.save() + dict_objeto_novo = self.object.__dict__ + + atributos = [ + 'tipo_id', 'descricao', 'observacao', 'texto_original', + 'materia_de_vinculo_id' + ] + + for atributo in atributos: + if dict_objeto_antigo[atributo] != dict_objeto_novo[atributo]: + self.object.user = self.request.user + self.object.ip = get_client_ip(self.request) + self.object.ultima_edicao = datetime.now() + self.object.save() + break + + return super().form_valid(form) def _action_is_valid(self, request, *args, **kwargs): @@ -994,6 +1031,14 @@ class ProposicaoCrud(Crud): form_class = ProposicaoForm layout_key = None + def get_initial(self): + initial = super().get_initial() + + initial['user'] = self.request.user + initial['ip'] = get_client_ip(self.request) + + return initial + def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['subnav_template_name'] = '' diff --git a/sapl/templates/materia/proposicao_detail.html b/sapl/templates/materia/proposicao_detail.html index b83946761..b35d3de8b 100644 --- a/sapl/templates/materia/proposicao_detail.html +++ b/sapl/templates/materia/proposicao_detail.html @@ -1,8 +1,8 @@ {% extends "crud/detail.html" %} {% load i18n common_tags %} {% load tz %} -{% block sub_actions %}{{block.super}} - +{% block sub_actions %} + {{block.super}}
{%field_verbose_name object 'tipo'%}
-{%field_verbose_name object 'tipo'%}
+{%field_verbose_name object 'data_envio' %}
-{%field_verbose_name object 'data_recebimento'%}
-{%field_verbose_name object 'descricao'%}
-{%field_verbose_name object 'descricao'%}
+{%field_verbose_name object 'observacao'%}
-{%field_verbose_name object 'observacao'%}
+