Browse Source

Salvar e apresentar dados - última edição

pull/2908/head
João Rodrigues 6 years ago
parent
commit
215c4b3b43
  1. 45
      sapl/materia/views.py
  2. 68
      sapl/templates/materia/proposicao_detail.html

45
sapl/materia/views.py

@ -772,6 +772,11 @@ class ProposicaoCrud(Crud):
context['title'] = '%s <small>(%s)</small>' % (
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'] = ''

68
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}}
<div class="actions btn-group btn-group-sm {%block sub_actions_pull%}{% endblock%}" role="group">
{% if object.texto_articulado.exists %}
<a class="btn btn-success" href="{% url 'sapl.materia:proposicao_ta' object.pk%}">{% trans "Texto Eletrônico" %}</a>
@ -12,9 +12,7 @@
{% endif %}
</div>
{% endblock sub_actions%}
{% block editions %}
{% if object.data_envio %}
{% if user == object.autor.user %}
{% block editions_actions_return %}
@ -26,31 +24,21 @@
</div>
{% endblock %}
{% endif %}
{% else %}
{% block editions_actions_send %}
<div class="actions btn-group" role="group">
<a href="{{ view.detail_url }}?action=send" class="btn btn-primary">{% trans 'Enviar' %}</a>
</div>
<div class="actions btn-group" role="group">
<a href="{{ view.update_url }}" class="btn btn-outline-primary">{% trans 'Editar' %}</a>
<a href="{{ view.delete_url }}" class="btn btn-outline-primary btn-outline-danger">{% trans 'Excluir' %}</a>
</div>
{% endblock %}
{% endif %}
{% endblock editions %}
{% block detail_content %}
<h2 class="legend">{% model_verbose_name 'sapl.materia.models.Proposicao' %}</h2>
<div class="row">
<div class="col-sm-3">
<div id="div_id_tipo" class="form-group">
<p class="control-label">{%field_verbose_name object 'tipo'%}</p>
@ -60,16 +48,13 @@
</div>
</div>
{% if object.data_devolucao %}
<div class="col-sm-9">
<div class="alert alert-danger alert-dismissible " role="alert">
<strong>{% trans "Proposição devolvida em:" %} {{ object.data_devolucao}}</strong>
<div >{% trans "Justificativa:" %} {{object.justificativa_devolucao}}</div>
</div>
</div>
{% else %}
{% if object.data_envio %}
<div class="col-sm-3">
<div id="div_id_data_envio" class="form-group">
@ -80,7 +65,6 @@
</div>
</div>
{% endif %}
{% if object.data_recebimento %}
<div class="col-sm-3">
<div id="div_id_data_envio" class="form-group">
@ -99,7 +83,6 @@
{% endif %}
{% endif %}
</div>
<div class="row">
<div class="col-sm-12">
<div id="div_id_descricao" class="form-group">
@ -110,8 +93,6 @@
</div>
</div>
</div>
{% if object.observacao %}
<div class="row">
<div class="col-sm-12">
@ -124,7 +105,6 @@
</div>
</div>
{% endif %}
<div class="row">
{% if object.conteudo_gerado_related %}
<div class="col-sm-6">
@ -168,10 +148,8 @@
</div>
</div>
{% endif %}
{% if not AppConfig.receber_recibo_proposicao %}
{% if object.hash_code %}
<div class="col-sm-12">
<div id="div_id_hash_code" class="form-group">
<p class="control-label">{%field_verbose_name object 'hash_code'%}</p>
@ -183,4 +161,46 @@
{% endif %}
{% endif %}
</div>
{% if user.is_superuser %}
<div class="row">
{% if proposicao.user %}
<div class="col-sm-4">
<div id="div_id_user" class="form-group">
<p class="control-label">Usuário</p>
<div class="controls">
<div class="form-control-static">
<div class="dont-break-out">
<a href="{% url 'sapl.base:user_edit' proposicao.user.pk %}">{{ proposicao.user }}</a>
</div>
</div>
</div>
</div>
</div>
{% endif %}
{% if proposicao.ip %}
<div class="col-sm-4">
<div id="div_ip_user" class="form-group">
<p class="control-label">IP</p>
<div class="controls">
<div class="form-control-static">
<div class="dont-break-out">{{ proposicao.ip }}</div>
</div>
</div>
</div>
</div>
{% endif %}
{% if proposicao.ultima_edicao %}
<div class="col-sm-4">
<div id="div_ud_user" class="form-group">
<p class="control-label">Data e Hora da Edição</p>
<div class="controls">
<div class="form-control-static">
<div class="dont-break-out">{{ proposicao.ultima_edicao }}</div>
</div>
</div>
</div>
</div>
{% endif %}
</div>
{% endif %}
{% endblock detail_content %}

Loading…
Cancel
Save