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. 22
      sapl/templates/protocoloadm/tramitacaoadministrativo_detail.html

35
sapl/protocoloadm/forms.py

@ -686,9 +686,12 @@ class TramitacaoAdmForm(ModelForm):
'data_fim_prazo', 'data_fim_prazo',
'texto', 'texto',
'user', 'user',
'ip'] 'ip',
'ultima_edicao']
widgets = {'user': forms.HiddenInput(), widgets = {'user': forms.HiddenInput(),
'ip': forms.HiddenInput()} 'ip': forms.HiddenInput(),
'ultima_edicao': forms.HiddenInput()}
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
@ -803,7 +806,8 @@ class TramitacaoAdmForm(ModelForm):
texto=tramitacao.texto, texto=tramitacao.texto,
data_fim_prazo=tramitacao.data_fim_prazo, data_fim_prazo=tramitacao.data_fim_prazo,
user=tramitacao.user, user=tramitacao.user,
ip=tramitacao.ip ip=tramitacao.ip,
ultima_edicao=tramitacao.ultima_edicao
)) ))
TramitacaoAdministrativo.objects.bulk_create(lista_tramitacao) TramitacaoAdministrativo.objects.bulk_create(lista_tramitacao)
@ -844,9 +848,12 @@ class TramitacaoAdmEditForm(TramitacaoAdmForm):
'data_fim_prazo', 'data_fim_prazo',
'texto', 'texto',
'user', 'user',
'ip'] 'ip',
'ultima_edicao']
widgets = {'user': forms.HiddenInput(), widgets = {'user': forms.HiddenInput(),
'ip': forms.HiddenInput()} 'ip': forms.HiddenInput(),
'ultima_edicao': forms.HiddenInput()}
def clean(self): def clean(self):
super(TramitacaoAdmEditForm, self).clean() super(TramitacaoAdmEditForm, self).clean()
@ -883,6 +890,7 @@ class TramitacaoAdmEditForm(TramitacaoAdmForm):
cd['data_fim_prazo'] != obj.data_fim_prazo): cd['data_fim_prazo'] != obj.data_fim_prazo):
cd['user'] = obj.user cd['user'] = obj.user
cd['ip'] = obj.ip cd['ip'] = obj.ip
cd['ultima_edicao'] = obj.ultima_edicao
cd['data_tramitacao'] = obj.data_tramitacao cd['data_tramitacao'] = obj.data_tramitacao
cd['unidade_tramitacao_local'] = obj.unidade_tramitacao_local 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.data_fim_prazo = nova_tram_principal.data_fim_prazo
tram_anexada.user = nova_tram_principal.user tram_anexada.user = nova_tram_principal.user
tram_anexada.ip = nova_tram_principal.ip tram_anexada.ip = nova_tram_principal.ip
tram_anexada.ultima_edicao = nova_tram_principal.ultima_edicao
tram_anexada.save() tram_anexada.save()
da.tramitacao = False if nova_tram_principal.status.indicador == "F" else True da.tramitacao = False if nova_tram_principal.status.indicador == "F" else True
@ -1487,9 +1496,12 @@ class TramitacaoEmLoteAdmForm(ModelForm):
'data_fim_prazo', 'data_fim_prazo',
'texto', 'texto',
'user', 'user',
'ip'] 'ip',
'ultima_edicao']
widgets = {'user': forms.HiddenInput(), widgets = {'user': forms.HiddenInput(),
'ip': forms.HiddenInput()} 'ip': forms.HiddenInput(),
'ultima_edicao': forms.HiddenInput()}
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
@ -1611,9 +1623,12 @@ class TramitacaoEmLoteAdmForm(ModelForm):
@transaction.atomic @transaction.atomic
def save(self, commit=True): def save(self, commit=True):
cd = self.cleaned_data cd = self.cleaned_data
documentos = self.initial['documentos'] documentos = self.initial['documentos']
user = self.initial['user'] if 'user' in self.initial else None user = self.initial['user'] if 'user' in self.initial else None
ip = self.initial['ip'] if 'ip' in self.initial else '' 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') tramitar_anexados = AppConfig.attr('tramitacao_documento')
for doc_id in documentos: for doc_id in documentos:
doc = DocumentoAdministrativo.objects.get(id=doc_id) doc = DocumentoAdministrativo.objects.get(id=doc_id)
@ -1628,7 +1643,8 @@ class TramitacaoEmLoteAdmForm(ModelForm):
texto=cd['texto'], texto=cd['texto'],
data_fim_prazo=cd['data_fim_prazo'], data_fim_prazo=cd['data_fim_prazo'],
user=user, user=user,
ip=ip ip=ip,
ultima_edicao=ultima_edicao
) )
doc.tramitacao = False if tramitacao.status.indicador == "F" else True doc.tramitacao = False if tramitacao.status.indicador == "F" else True
doc.save() doc.save()
@ -1653,7 +1669,8 @@ class TramitacaoEmLoteAdmForm(ModelForm):
texto=tramitacao.texto, texto=tramitacao.texto,
data_fim_prazo=tramitacao.data_fim_prazo, data_fim_prazo=tramitacao.data_fim_prazo,
user=tramitacao.user, user=tramitacao.user,
ip=tramitacao.ip ip=tramitacao.ip,
ultima_edicao=tramitacao.ultima_edicao
)) ))
TramitacaoAdministrativo.objects.bulk_create(lista_tramitacao) 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, max_length=30,
blank=True, blank=True,
default='') default='')
ultima_edicao = models.DateField(
verbose_name=_('Data e Hora da Edição'),
blank=True, null=True
)
class Meta: class Meta:
verbose_name = _('Tramitação de Documento Administrativo') 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['data_tramitacao'] = timezone.now().date()
initial['ip'] = get_client_ip(self.request) initial['ip'] = get_client_ip(self.request)
initial['user'] = self.request.user initial['user'] = self.request.user
tz = timezone.get_current_timezone()
initial['ultima_edicao'] = tz.localize(datetime.now())
return initial return initial
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
@ -1204,6 +1208,10 @@ class TramitacaoAdmCrud(MasterDetailCrud):
initial = super(UpdateView, self).get_initial() initial = super(UpdateView, self).get_initial()
initial['ip'] = get_client_ip(self.request) initial['ip'] = get_client_ip(self.request)
initial['user'] = self.request.user initial['user'] = self.request.user
tz = timezone.get_current_timezone()
initial['ultima_edicao'] = tz.localize(datetime.now())
return initial return initial
def form_valid(self, form): def form_valid(self, form):
@ -1514,6 +1522,9 @@ class PrimeiraTramitacaoEmLoteAdmView(PermissionRequiredMixin, FilterView):
user = request.user user = request.user
ip = get_client_ip(request) ip = get_client_ip(request)
tz = timezone.get_current_timezone()
ultima_edicao = tz.localize(datetime.now())
documentos_ids = request.POST.getlist('documentos') documentos_ids = request.POST.getlist('documentos')
if not documentos_ids: if not documentos_ids:
msg = _("Escolha algum Documento para ser tramitado.") msg = _("Escolha algum Documento para ser tramitado.")
@ -1521,8 +1532,9 @@ class PrimeiraTramitacaoEmLoteAdmView(PermissionRequiredMixin, FilterView):
return self.get(request, self.kwargs) return self.get(request, self.kwargs)
form = TramitacaoEmLoteAdmForm(request.POST, form = TramitacaoEmLoteAdmForm(request.POST,
initial={'documentos': documentos_ids, initial= {'documentos': documentos_ids,
'user': user, 'ip': ip}) 'user': user, 'ip':ip,
'ultima_edicao': ultima_edicao})
if form.is_valid(): if form.is_valid():
form.save() form.save()

22
sapl/templates/protocoloadm/tramitacaoadministrativo_detail.html

@ -20,13 +20,13 @@
{% if user.is_superuser %} {% if user.is_superuser %}
<div class="row"> <div class="row">
{% if tramitacaoadministrativo.user %} {% if tramitacaoadministrativo.user %}
<div class="col-sm-6"> <div class="col-sm-4">
<div id="div_id_user" class="form-group"> <div id="div_id_user" class="form-group">
<p class="control-label">Usuário</p> <p class="control-label">Usuário</p>
<div class="controls"> <div class="controls">
<div class="form-control-static"> <div class="form-control-static">
<div class="dont-break-out"> <div class="dont-break-out">
<a href="{% url 'sapl.base:user_edit' tramitacaoadministrativo.user.pk %}">{{tramitacaoadministrativo.user}}</a> <a href="{% url 'sapl.base:user_edit' tramitacaoadministrativo.user.pk %}">{{ tramitacaoadministrativo.user }}</a>
</div> </div>
</div> </div>
</div> </div>
@ -34,13 +34,27 @@
</div> </div>
{% endif %} {% endif %}
{% if tramitacaoadministrativo.ip %} {% if tramitacaoadministrativo.ip %}
<div class="col-sm-6"> <div class="col-sm-4">
<div id="div_ip_user" class="form-group"> <div id="div_ip_user" class="form-group">
<p class="control-label">IP</p> <p class="control-label">IP</p>
<div class="controls"> <div class="controls">
<div class="form-control-static"> <div class="form-control-static">
<div class="dont-break-out"> <div class="dont-break-out">
{{tramitacaoadministrativo.ip}} {{ 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> </div>

Loading…
Cancel
Save