Browse Source

Adicionar correções

pull/2919/head
João Rodrigues 6 years ago
parent
commit
f471d96ef9
  1. 38
      sapl/materia/forms.py
  2. 40
      sapl/materia/views.py

38
sapl/materia/forms.py

@ -582,7 +582,8 @@ class TramitacaoForm(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
)) ))
Tramitacao.objects.bulk_create(lista_tramitacao) Tramitacao.objects.bulk_create(lista_tramitacao)
@ -624,14 +625,16 @@ class TramitacaoUpdateForm(TramitacaoForm):
'data_fim_prazo', 'data_fim_prazo',
'texto', 'texto',
'user', 'user',
'ip' 'ip',
'ultima_edicao'
] ]
widgets = { widgets = {
'data_encaminhamento': forms.DateInput(format='%d/%m/%Y'), 'data_encaminhamento': forms.DateInput(format='%d/%m/%Y'),
'data_fim_prazo': forms.DateInput(format='%d/%m/%Y'), 'data_fim_prazo': forms.DateInput(format='%d/%m/%Y'),
'user': forms.HiddenInput(), 'user': forms.HiddenInput(),
'ip': forms.HiddenInput() 'ip': forms.HiddenInput(),
'ultima_edicao': forms.HiddenInput()
} }
def clean(self): def clean(self):
@ -662,6 +665,17 @@ class TramitacaoUpdateForm(TramitacaoForm):
'Você não pode mudar a Unidade de Destino desta ' 'Você não pode mudar a Unidade de Destino desta '
'tramitação, pois irá conflitar com a Unidade ' 'tramitação, pois irá conflitar com a Unidade '
'Local da tramitação seguinte') 'Local da tramitação seguinte')
if not (cd['data_tramitacao'] != obj.data_tramitacao or \
cd['unidade_tramitacao_destino'] != obj.unidade_tramitacao_destino or \
cd['status'] != obj.status or cd['texto'] != obj.texto or \
cd['data_encaminhamento'] != obj.data_encaminhamento or \
cd['data_fim_prazo'] != obj.data_fim_prazo or cd['urgente'] != str(obj.urgente) or \
cd['turno'] != obj.turno):
### Se não ocorreram alterações, o usuário, ip, data e hora da última edição (real) são mantidos
cd['user'] = obj.user
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
@ -694,6 +708,7 @@ class TramitacaoUpdateForm(TramitacaoForm):
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()
ma.em_tramitacao = False if nova_tram_principal.status.indicador == "F" else True ma.em_tramitacao = False if nova_tram_principal.status.indicador == "F" else True
@ -1618,9 +1633,13 @@ class TramitacaoEmLoteForm(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):
super(TramitacaoEmLoteForm, self).__init__(*args, **kwargs) super(TramitacaoEmLoteForm, self).__init__(*args, **kwargs)
@ -1741,9 +1760,12 @@ class TramitacaoEmLoteForm(ModelForm):
@transaction.atomic @transaction.atomic
def save(self, commit=True): def save(self, commit=True):
cd = self.cleaned_data cd = self.cleaned_data
materias = self.initial['materias'] materias = self.initial['materias']
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_anexadas = AppConfig.attr('tramitacao_materia') tramitar_anexadas = AppConfig.attr('tramitacao_materia')
for mat_id in materias: for mat_id in materias:
mat = MateriaLegislativa.objects.get(id=mat_id) mat = MateriaLegislativa.objects.get(id=mat_id)
@ -1759,7 +1781,8 @@ class TramitacaoEmLoteForm(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
) )
mat.em_tramitacao = False if tramitacao.status.indicador == "F" else True mat.em_tramitacao = False if tramitacao.status.indicador == "F" else True
mat.save() mat.save()
@ -1785,7 +1808,8 @@ class TramitacaoEmLoteForm(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
)) ))
Tramitacao.objects.bulk_create(lista_tramitacao) Tramitacao.objects.bulk_create(lista_tramitacao)

40
sapl/materia/views.py

@ -1313,32 +1313,20 @@ class TramitacaoCrud(MasterDetailCrud):
layout_key = 'TramitacaoUpdate' layout_key = 'TramitacaoUpdate'
def form_valid(self, form): def get_initial(self):
dict_objeto_antigo = Tramitacao.objects.get( initial = super(UpdateView, self).get_initial()
pk=self.kwargs['pk']).__dict__
initial['ip'] = get_client_ip(self.request)
self.object = form.save() initial['user'] = self.request.user
dict_objeto_novo = self.object.__dict__
user = self.request.user
atributos = [ tz = timezone.get_current_timezone()
'data_tramitacao', 'unidade_tramitacao_destino_id', 'status_id', 'texto', initial['ultima_edicao'] = tz.localize(datetime.now())
'data_encaminhamento', 'data_fim_prazo', 'urgente', 'turno'
]
# Se não houve qualquer alteração em um dos dados, mantém o usuário return initial
# e ip e data e hora de última edição
for atributo in atributos:
if dict_objeto_antigo[atributo] != dict_objeto_novo[atributo]:
self.object.user = user
self.object.ip = get_client_ip(self.request)
tz = timezone.get_current_timezone() def form_valid(self, form):
self.object.ultima_edicao = tz.localize(datetime.now()) self.object = form.save()
user = self.request.user
self.object.save()
break
try: try:
self.logger.debug("user=" + user.username + ". Tentando enviar Tramitacao (sender={}, post={}, request={}" self.logger.debug("user=" + user.username + ". Tentando enviar Tramitacao (sender={}, post={}, request={}"
@ -2414,6 +2402,9 @@ class PrimeiraTramitacaoEmLoteView(PermissionRequiredMixin, FilterView):
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
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())
materias_ids = request.POST.getlist('materias') materias_ids = request.POST.getlist('materias')
if not materias_ids: if not materias_ids:
@ -2423,7 +2414,8 @@ class PrimeiraTramitacaoEmLoteView(PermissionRequiredMixin, FilterView):
form = TramitacaoEmLoteForm(request.POST, form = TramitacaoEmLoteForm(request.POST,
initial= {'materias': materias_ids, initial= {'materias': materias_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()

Loading…
Cancel
Save