Browse Source

Impl. #2909 - Tramitação Documento Administrativo

pull/2919/head
João Rodrigues 6 years ago
parent
commit
d07c9e84b0
  1. 35
      sapl/protocoloadm/forms.py
  2. 20
      sapl/protocoloadm/migrations/0024_tramitacaoadministrativo_ultima_edicao.py
  3. 4
      sapl/protocoloadm/models.py
  4. 16
      sapl/protocoloadm/views.py
  5. 50
      sapl/templates/protocoloadm/tramitacaoadministrativo_detail.html

35
sapl/protocoloadm/forms.py

@ -686,9 +686,12 @@ class TramitacaoAdmForm(ModelForm):
'data_fim_prazo',
'texto',
'user',
'ip']
'ip',
'ultima_edicao']
widgets = {'user': forms.HiddenInput(),
'ip': forms.HiddenInput()}
'ip': forms.HiddenInput(),
'ultima_edicao': forms.HiddenInput()}
def __init__(self, *args, **kwargs):
@ -803,7 +806,8 @@ class TramitacaoAdmForm(ModelForm):
texto=tramitacao.texto,
data_fim_prazo=tramitacao.data_fim_prazo,
user=tramitacao.user,
ip=tramitacao.ip
ip=tramitacao.ip,
ultima_edicao=tramitacao.ultima_edicao
))
TramitacaoAdministrativo.objects.bulk_create(lista_tramitacao)
@ -844,9 +848,12 @@ class TramitacaoAdmEditForm(TramitacaoAdmForm):
'data_fim_prazo',
'texto',
'user',
'ip']
'ip',
'ultima_edicao']
widgets = {'user': forms.HiddenInput(),
'ip': forms.HiddenInput()}
'ip': forms.HiddenInput(),
'ultima_edicao': forms.HiddenInput()}
def clean(self):
super(TramitacaoAdmEditForm, self).clean()
@ -883,6 +890,7 @@ class TramitacaoAdmEditForm(TramitacaoAdmForm):
cd['data_fim_prazo'] != obj.data_fim_prazo):
cd['user'] = obj.user
cd['ip'] = obj.ip
cd['ultima_edicao'] = obj.ultima_edicao
cd['data_tramitacao'] = obj.data_tramitacao
cd['unidade_tramitacao_local'] = obj.unidade_tramitacao_local
@ -914,6 +922,7 @@ class TramitacaoAdmEditForm(TramitacaoAdmForm):
tram_anexada.data_fim_prazo = nova_tram_principal.data_fim_prazo
tram_anexada.user = nova_tram_principal.user
tram_anexada.ip = nova_tram_principal.ip
tram_anexada.ultima_edicao = nova_tram_principal.ultima_edicao
tram_anexada.save()
da.tramitacao = False if nova_tram_principal.status.indicador == "F" else True
@ -1487,9 +1496,12 @@ class TramitacaoEmLoteAdmForm(ModelForm):
'data_fim_prazo',
'texto',
'user',
'ip']
'ip',
'ultima_edicao']
widgets = {'user': forms.HiddenInput(),
'ip': forms.HiddenInput()}
'ip': forms.HiddenInput(),
'ultima_edicao': forms.HiddenInput()}
def __init__(self, *args, **kwargs):
@ -1611,9 +1623,12 @@ class TramitacaoEmLoteAdmForm(ModelForm):
@transaction.atomic
def save(self, commit=True):
cd = self.cleaned_data
documentos = self.initial['documentos']
user = self.initial['user'] if 'user' in self.initial else None
ip = self.initial['ip'] if 'ip' in self.initial else ''
ultima_edicao = self.initial['ultima_edicao'] if 'ultima_edicao' in self.initial else ''
tramitar_anexados = AppConfig.attr('tramitacao_documento')
for doc_id in documentos:
doc = DocumentoAdministrativo.objects.get(id=doc_id)
@ -1628,7 +1643,8 @@ class TramitacaoEmLoteAdmForm(ModelForm):
texto=cd['texto'],
data_fim_prazo=cd['data_fim_prazo'],
user=user,
ip=ip
ip=ip,
ultima_edicao=ultima_edicao
)
doc.tramitacao = False if tramitacao.status.indicador == "F" else True
doc.save()
@ -1653,7 +1669,8 @@ class TramitacaoEmLoteAdmForm(ModelForm):
texto=tramitacao.texto,
data_fim_prazo=tramitacao.data_fim_prazo,
user=tramitacao.user,
ip=tramitacao.ip
ip=tramitacao.ip,
ultima_edicao=tramitacao.ultima_edicao
))
TramitacaoAdministrativo.objects.bulk_create(lista_tramitacao)

20
sapl/protocoloadm/migrations/0024_tramitacaoadministrativo_ultima_edicao.py

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.20 on 2019-08-08 21:14
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('protocoloadm', '0023_merge_20190802_1112'),
]
operations = [
migrations.AddField(
model_name='tramitacaoadministrativo',
name='ultima_edicao',
field=models.DateField(blank=True, null=True, verbose_name='Data e Hora da Edição'),
),
]

4
sapl/protocoloadm/models.py

@ -340,6 +340,10 @@ class TramitacaoAdministrativo(models.Model):
max_length=30,
blank=True,
default='')
ultima_edicao = models.DateField(
verbose_name=_('Data e Hora da Edição'),
blank=True, null=True
)
class Meta:
verbose_name = _('Tramitação de Documento Administrativo')

16
sapl/protocoloadm/views.py

@ -1141,6 +1141,10 @@ class TramitacaoAdmCrud(MasterDetailCrud):
initial['data_tramitacao'] = timezone.now().date()
initial['ip'] = get_client_ip(self.request)
initial['user'] = self.request.user
tz = timezone.get_current_timezone()
initial['ultima_edicao'] = tz.localize(datetime.now())
return initial
def get_context_data(self, **kwargs):
@ -1204,6 +1208,10 @@ class TramitacaoAdmCrud(MasterDetailCrud):
initial = super(UpdateView, self).get_initial()
initial['ip'] = get_client_ip(self.request)
initial['user'] = self.request.user
tz = timezone.get_current_timezone()
initial['ultima_edicao'] = tz.localize(datetime.now())
return initial
def form_valid(self, form):
@ -1514,6 +1522,9 @@ class PrimeiraTramitacaoEmLoteAdmView(PermissionRequiredMixin, FilterView):
user = request.user
ip = get_client_ip(request)
tz = timezone.get_current_timezone()
ultima_edicao = tz.localize(datetime.now())
documentos_ids = request.POST.getlist('documentos')
if not documentos_ids:
msg = _("Escolha algum Documento para ser tramitado.")
@ -1521,8 +1532,9 @@ class PrimeiraTramitacaoEmLoteAdmView(PermissionRequiredMixin, FilterView):
return self.get(request, self.kwargs)
form = TramitacaoEmLoteAdmForm(request.POST,
initial={'documentos': documentos_ids,
'user': user, 'ip': ip})
initial= {'documentos': documentos_ids,
'user': user, 'ip':ip,
'ultima_edicao': ultima_edicao})
if form.is_valid():
form.save()

50
sapl/templates/protocoloadm/tramitacaoadministrativo_detail.html

@ -20,31 +20,45 @@
{% if user.is_superuser %}
<div class="row">
{% if tramitacaoadministrativo.user %}
<div class="col-sm-6">
<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' tramitacaoadministrativo.user.pk %}">{{tramitacaoadministrativo.user}}</a>
</div>
</div>
<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' tramitacaoadministrativo.user.pk %}">{{ tramitacaoadministrativo.user }}</a>
</div>
</div>
</div>
</div>
</div>
{% endif %}
{% if tramitacaoadministrativo.ip %}
<div class="col-sm-6">
<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">
{{tramitacaoadministrativo.ip}}
</div>
</div>
<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">
{{ tramitacaoadministrativo.ip }}
</div>
</div>
</div>
</div>
</div>
{% endif %}
{% if tramitacao.ultima_edicao %}
<div class="sol-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">
{{ tramitacao.ultima_edicao }}
</div>
</div>
</div>
</div>
</div>
{% endif %}
</div>

Loading…
Cancel
Save