Browse Source

Melhorando querys

pull/2960/head
ulyssesBML 6 years ago
parent
commit
f05faecabe
  1. 15
      sapl/protocoloadm/views.py
  2. 121
      sapl/templates/protocoloadm/deleta_todos_protocolos.html

15
sapl/protocoloadm/views.py

@ -1613,14 +1613,18 @@ class TramitacaoEmLoteAdmView(PrimeiraTramitacaoEmLoteAdmView):
'documento_id', flat=True) 'documento_id', flat=True)
def apaga_protocolos(request, ano): def apaga_protocolos(request, ano,numero_protocolo=None):
all_protocolos = Protocolo.objects.filter(ano__in=ano) kwargs = {'ano__in':ano}
if numero_protocolo:
kwargs.update({'numero__gte':numero_protocolo})
all_protocolos = Protocolo.objects.filter(**kwargs)
for doc in DocumentoAdministrativo.objects.filter(protocolo__in=all_protocolos): for doc in DocumentoAdministrativo.objects.filter(protocolo__in=all_protocolos):
doc.protocolo = None doc.protocolo = None
doc.save() doc.save()
for ml in MateriaLegislativa.objects.filter(ano__in=ano): for ml in MateriaLegislativa.objects.filter(ano__in=ano, numero_protocolo__in=all_protocolos.values_list('numero')):
ml.numero_protocolo = None ml.numero_protocolo = None
ml.save() ml.save()
@ -1629,7 +1633,7 @@ def apaga_protocolos(request, ano):
instance=deleted_object, instance=deleted_object,
operation='D', operation='D',
request=request request=request
) )
all_protocolos.delete() all_protocolos.delete()
@ -1647,7 +1651,8 @@ def apaga_protocolos_view(request):
valid = request.user.check_password(password) valid = request.user.check_password(password)
if valid: if valid:
anos = request.POST.getlist('ano') anos = request.POST.getlist('ano')
apaga_protocolos(request, anos) numero_protocolo = request.POST.get('numero_protocolo')
apaga_protocolos(request,anos,numero_protocolo)
return JsonResponse({'type':'success','msg':''}) return JsonResponse({'type':'success','msg':''})
else: else:
return JsonResponse({'type':'error','msg':'Senha Incorreta'}) return JsonResponse({'type':'error','msg':'Senha Incorreta'})

121
sapl/templates/protocoloadm/deleta_todos_protocolos.html

@ -3,75 +3,81 @@
{% block base_content %} {% block base_content %}
<div class="card border-danger mb-3" style=""> {% if intervalo_data %}
<div class="card-header">Cuidado</div> <h2 class="page-header">Selecione o ano dos registros a serem apagados e confirme com a sua senha.</h2>
<div class="container">
<div class="row"> <div class="form-row">
<div class="col"> <label style="margin-top:20px">Ano</label>
<select id="id_ano" class="form-control">
</div> {% for ano in intervalo_data %}
<div class="col-6 "> <option>{{ano}}</option>
<div class="card-body"> {% endfor %}
<h1 class="card-title">Essa ação apagara todos os protocolos !!</h1> </select>
<p class="card-text">Por questões de auditoria seu login será gravado como realizador dessa ação. Deseja continuar ?</p> <label style="margin-top:20px">A partir do numero: (Opcional)</label>
<button type="button" class="btn btn-danger" data-toggle="modal" data-target="#exampleModalCenter" >Sim, estou ciente e desejo continuar.</button> <input type="number" class="form-control" id="numero_protocolo">
</div> <label style="margin-top:20px">Senha</label>
</div> <input type="password" class="form-control" id="password" placeholder="Senha" required>
<div class="col"> <div id="feedback" class="invalid-feedback"></div>
</div>
</div>
</div>
</div> </div>
<div style="margin-top:20px" class="form-group row justify-content-between">
<a href="{% url 'sapl.base:sistema' %}" type="button" class="btn btn-secondary float-left" >Cancelar</a>
<button type="button" data-toggle="modal" data-target="#exampleModal" class="btn btn-danger float-right">Apagar protocolos</button>
</div>
{% else %}
<h1>Não há registros de protocolos.</h1>
<a style="margin-top:5%" href="{% url 'sapl.base:sistema' %}" type="button" class="btn btn-secondary" >Voltar para tabelas auxiliares.</a>
{% endif %}
<!-- Modal --> <!-- Modal -->
<div class="modal fade" id="exampleModalCenter" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true"> <div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document"> <div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div id="content-block-1">
<h5 class="modal-title" id="exampleModalLongTitle">Validação</h5> <div class="modal-header bg-danger ">
</div> <h5 class="modal-title" id="exampleModalLabel">Cuidado</h5>
<div id="content-block-1"> <button type="button" class="close" data-dismiss="modal" aria-label="Close">
{% if intervalo_data %} <span aria-hidden="true">&times;</span>
<div class="modal-body"> </button>
Digite o ano dos registro a serem apagados e a sua senha para confirmar essa operação. </div>
<div class="form-row">
<label style="margin-top:20px">Ano</label> <div class="modal-body">
<select multiple id="id_ano" class="form-control"> Tem certeza que deseja apagar esses protocolos ? Essa operação é <b>irreversível</b>.
{% for ano in intervalo_data %} </div>
<option>{{ano}}</option> <div class="modal-footer">
{% endfor %} <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancelar</button>
</select> <button type="button" class="btn btn-danger" id="apagar-protocolos">Apagar</button>
<label style="margin-top:20px">Senha</label> <div id="spinner-id" style="margin-left:20px" class="spinner-border text-danger" role="status">
<input type="password" class="form-control" id="password" placeholder="Senha" required> <span class="sr-only">Loading...</span>
<div id="feedback" class="invalid-feedback"></div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancelar</button>
<button id="apagar-protocolos" type="button" class="btn btn-danger">Apagar protocolos</button>
<div id="spinner-id" style="margin-left:20px" class="spinner-border text-danger" role="status">
<span class="sr-only">Loading...</span>
</div>
</div>
</div> </div>
</div>
</div> </div>
{% else %}
<div class="modal-body">
Não há registros de protocolos.
</div>
<div class="modal-footer">
<a href="{% url 'sapl.base:sistema' %}" class="btn btn-secondary">Voltar para tabelas auxiliares.</a>
</div>
{% endif %}
</div>
<div id="content-block-2"> <div id="content-block-2">
<div class="modal-body">Protocolos apagados com sucesso.</div> <div class="modal-header">
<div class="modal-footer"> <h5 class="modal-title" id="exampleModalLabel">Operação realizada com sucesso.</h5>
<a href="{% url 'sapl.base:sistema' %}" class="btn btn-secondary">Voltar para tabelas auxiliares.</a> <button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
Os protocolos foram apagados com sucesso.
</div>
<div class="modal-footer">
<a href="{% url 'sapl.base:sistema' %}" class="btn btn-secondary">Voltar para tabelas auxiliares.</a>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
{% endblock base_content %} {% endblock base_content %}
{% block extra_js %} {% block extra_js %}
@ -82,7 +88,7 @@
$('#apagar-protocolos').click( () => { $('#apagar-protocolos').click( () => {
$('#spinner-id').show(); $('#spinner-id').show();
$.ajax({ $.ajax({
data: {senha:$('#password').val(),ano:$("#id_ano").val()}, data: {numero_protocolo:$('#numero_protocolo').val(),senha:$('#password').val(),ano:$("#id_ano").val()},
type: 'POST', type: 'POST',
url: "{% url 'sapl.protocoloadm:apaga_protocolos_view' %}", url: "{% url 'sapl.protocoloadm:apaga_protocolos_view' %}",
traditional: true, traditional: true,
@ -92,6 +98,7 @@
success: function(data){ success: function(data){
if (data['type'] == 'error'){ if (data['type'] == 'error'){
$('#password').addClass('is-invalid') $('#password').addClass('is-invalid')
$('#exampleModal').modal('hide')
$('#feedback').text(data['msg']) $('#feedback').text(data['msg'])
} }
else if(data['type'] == 'success'){ else if(data['type'] == 'success'){

Loading…
Cancel
Save