mirror of https://github.com/interlegis/sapl.git
Browse Source
Melhorando usabilidade Colocando privilegios de admin para acessar função de apagar protocolos Fix #2958 Filtrando anos a serem apagados #Fix 2958 Atualizando django mommy para aceitar ArrayFieldpull/2960/head
8 changed files with 207 additions and 3 deletions
@ -0,0 +1,29 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# Generated by Django 1.11.20 on 2019-10-03 18:19 |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.conf import settings |
|||
import django.contrib.postgres.fields |
|||
from django.db import migrations, models |
|||
import django.db.models.deletion |
|||
import django.utils.timezone |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
migrations.swappable_dependency(settings.AUTH_USER_MODEL), |
|||
('protocoloadm', '0025_auto_20191001_1115'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.CreateModel( |
|||
name='AuditoriaProtocolo', |
|||
fields=[ |
|||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|||
('data', models.DateTimeField(default=django.utils.timezone.now)), |
|||
('info', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=12), size=None)), |
|||
('usuario', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), |
|||
], |
|||
), |
|||
] |
|||
@ -0,0 +1,114 @@ |
|||
{% extends "base.html" %} |
|||
{% load i18n crispy_forms_tags %} |
|||
|
|||
{% block base_content %} |
|||
|
|||
<div class="card border-danger mb-3" style=""> |
|||
<div class="card-header">Cuidado</div> |
|||
<div class="container"> |
|||
<div class="row"> |
|||
<div class="col"> |
|||
|
|||
</div> |
|||
<div class="col-6 "> |
|||
<div class="card-body"> |
|||
<h1 class="card-title">Essa ação apagara todos os protocolos !!</h1> |
|||
<p class="card-text">Por questões de auditoria seu login será gravado como realizador dessa ação. Deseja continuar ?</p> |
|||
<button type="button" class="btn btn-danger" data-toggle="modal" data-target="#exampleModalCenter" >Sim, estou ciente e desejo continuar.</button> |
|||
</div> |
|||
</div> |
|||
<div class="col"> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<!-- Modal --> |
|||
<div class="modal fade" id="exampleModalCenter" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true"> |
|||
<div class="modal-dialog modal-dialog-centered" role="document"> |
|||
<div class="modal-content"> |
|||
<div class="modal-header"> |
|||
<h5 class="modal-title" id="exampleModalLongTitle">Validação</h5> |
|||
</div> |
|||
<div id="content-block-1"> |
|||
{% if intervalo_data %} |
|||
<div class="modal-body"> |
|||
Digite o ano dos registro a serem apagados e a sua senha para confirmar essa operação. |
|||
<div class="form-row"> |
|||
<label style="margin-top:20px">Ano</label> |
|||
<select multiple id="id_ano" class="form-control"> |
|||
{% for ano in intervalo_data %} |
|||
<option>{{ano}}</option> |
|||
{% endfor %} |
|||
</select> |
|||
<label style="margin-top:20px">Senha</label> |
|||
<input type="password" class="form-control" id="password" placeholder="Senha" required> |
|||
<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> |
|||
</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 class="modal-body">Protocolos 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> |
|||
|
|||
{% endblock base_content %} |
|||
|
|||
{% block extra_js %} |
|||
|
|||
<script> |
|||
$('#content-block-2').hide(); |
|||
$('#apagar-protocolos').click( () => { |
|||
$.ajax({ |
|||
data: {senha:$('#password').val(),ano:$("#id_ano").val()}, |
|||
type: 'POST', |
|||
url: "{% url 'sapl.protocoloadm:apaga_protocolos_view' %}", |
|||
traditional: true, |
|||
headers: { |
|||
'X-CSRFToken': getCookie('csrftoken') |
|||
}, |
|||
success: function(data){ |
|||
if (data['type'] == 'error'){ |
|||
$('#password').addClass('is-invalid') |
|||
$('#feedback').text(data['msg']) |
|||
} |
|||
else if(data['type'] == 'success'){ |
|||
$('#content-block-1').hide("", function() { |
|||
}); |
|||
$('#content-block-2').show("slow"); |
|||
} |
|||
}, |
|||
}); |
|||
}) |
|||
$('option').mousedown(function(e) { |
|||
e.preventDefault(); |
|||
var originalScrollTop = $(this).parent().scrollTop(); |
|||
$(this).prop('selected', $(this).prop('selected') ? false : true); |
|||
var self = this; |
|||
$(this).parent().focus(); |
|||
setTimeout(function() { |
|||
$(self).parent().scrollTop(originalScrollTop); |
|||
}, 0); |
|||
|
|||
return false; |
|||
}); |
|||
</script> |
|||
|
|||
{% endblock extra_js%} |
|||
Loading…
Reference in new issue