forked from DGNum/gestioCOF
Vues de suppression
On rajoute un bouton de suppression d'un compte utilisable avec la perm `kfet.delete_account`, avec message de vérif. On en profite pour cleanup un peu le css de `jconfirm`.
This commit is contained in:
parent
63fff6ca7c
commit
08ac0ac890
5 changed files with 84 additions and 4 deletions
|
@ -57,12 +57,20 @@ aside .heading .sub {
|
|||
aside .buttons {
|
||||
margin-left: -15px;
|
||||
margin-right: -15px;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
aside .buttons > * {
|
||||
flex: 0 1 auto !important;
|
||||
}
|
||||
|
||||
aside .buttons > hr {
|
||||
flex-basis: 100%;
|
||||
height: 0;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
|
||||
/* Aside - Text */
|
||||
|
||||
|
|
|
@ -23,11 +23,19 @@
|
|||
}
|
||||
|
||||
.jconfirm .jconfirm-box .content-pane {
|
||||
margin:0 !important;
|
||||
border-bottom:1px solid #ddd;
|
||||
margin: 0px !important;
|
||||
}
|
||||
|
||||
.jconfirm .jconfirm-box .content {
|
||||
border-bottom:1px solid #ddd;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.jconfirm .jconfirm-box .content div.warning {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
margin: 5px 0px;
|
||||
}
|
||||
|
||||
.jconfirm .jconfirm-box input {
|
||||
|
@ -43,7 +51,7 @@
|
|||
}
|
||||
|
||||
.jconfirm .jconfirm-box .buttons {
|
||||
margin-top:-5px; /* j'arrive pas à voir pk y'a un espace au dessus sinon... */
|
||||
margin-top:-6px; /* j'arrive pas à voir pk y'a un espace au dessus sinon... */
|
||||
padding:0;
|
||||
height:40px;
|
||||
}
|
||||
|
|
|
@ -18,6 +18,15 @@
|
|||
<a class="btn btn-default" disabled>
|
||||
<span class="glyphicon glyphicon-credit-card"></span><span>Créditer</span>
|
||||
</a>
|
||||
{% if perms.kfet.delete_account %}
|
||||
<hr>
|
||||
<button class="btn btn-default" id="button-delete">
|
||||
<span class="glyphicon glyphicon-remove"></span><span>Supprimer</span>
|
||||
</button>
|
||||
<form method="post" action="{% url 'kfet.account.delete' account.trigramme %}" id="account-delete-form">
|
||||
{% csrf_token %}
|
||||
</form>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="text">
|
||||
|
@ -92,5 +101,24 @@ $( function() {
|
|||
$(this).addClass('focus');
|
||||
});
|
||||
|
||||
// Delete button
|
||||
$('#button-delete').click(function() {
|
||||
$.confirm({
|
||||
title: 'Confirmer la suppression',
|
||||
content: `
|
||||
<div class="warning">
|
||||
<span class='glyphicon glyphicon-warning-sign'></span><span>Cette opération est irréversible !</span>
|
||||
</div>
|
||||
<span>Toutes les données associées à ce compte seront anonymisées.</span>
|
||||
`,
|
||||
backgroundDismiss: true,
|
||||
animation: 'top',
|
||||
closeAnimation: 'bottom',
|
||||
keyboardEnabled: true,
|
||||
confirm: function() {
|
||||
$('#account-delete-form').submit();
|
||||
}
|
||||
})
|
||||
})
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -57,6 +57,12 @@ urlpatterns = [
|
|||
views.account_update,
|
||||
name="kfet.account.update",
|
||||
),
|
||||
# Account - Delete
|
||||
path(
|
||||
"accounts/<trigramme:trigramme>/delete",
|
||||
views.AccountDeleteView.as_view(),
|
||||
name="kfet.account.delete",
|
||||
),
|
||||
# Account - Groups
|
||||
path("accounts/groups", views.account_group, name="kfet.account.group"),
|
||||
path(
|
||||
|
|
|
@ -7,6 +7,7 @@ from urllib.parse import urlencode
|
|||
|
||||
from django.contrib import messages
|
||||
from django.contrib.auth.decorators import login_required, permission_required
|
||||
from django.contrib.auth.mixins import PermissionRequiredMixin
|
||||
from django.contrib.auth.models import Permission, User
|
||||
from django.contrib.messages.views import SuccessMessageMixin
|
||||
from django.core.exceptions import PermissionDenied
|
||||
|
@ -20,7 +21,7 @@ from django.utils import timezone
|
|||
from django.utils.decorators import method_decorator
|
||||
from django.views.generic import DetailView, FormView, ListView, TemplateView
|
||||
from django.views.generic.detail import BaseDetailView
|
||||
from django.views.generic.edit import CreateView, UpdateView
|
||||
from django.views.generic.edit import CreateView, DeleteView, UpdateView
|
||||
|
||||
from gestioncof.models import CofProfile
|
||||
from kfet import consumers
|
||||
|
@ -467,6 +468,35 @@ def account_update(request, trigramme):
|
|||
},
|
||||
)
|
||||
|
||||
# Account - Delete
|
||||
|
||||
|
||||
class AccountDeleteView(PermissionRequiredMixin, DeleteView):
|
||||
model = Account
|
||||
slug_field = "trigramme"
|
||||
slug_url_kwarg = "trigramme"
|
||||
success_url = reverse_lazy("kfet.account")
|
||||
success_message = "Compte supprimé avec succès !"
|
||||
permission_required = "kfet.delete_account"
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
return redirect("kfet.account.read", self.kwargs.get(self.get_slug_field()))
|
||||
|
||||
def delete(self, request, *args, **kwargs):
|
||||
self.object = self.get_object()
|
||||
if self.object.balance > 0.01:
|
||||
messages.error(
|
||||
request,
|
||||
"Impossible de supprimer un compte "
|
||||
"avec une balance strictement positive !",
|
||||
)
|
||||
return redirect("kfet.account.read", self.object.trigramme)
|
||||
|
||||
# SuccessMessageMixin does not work with DeleteView, see :
|
||||
# https://code.djangoproject.com/ticket/21926
|
||||
messages.success(request, self.success_message)
|
||||
return super().delete(request, *args, **kwargs)
|
||||
|
||||
|
||||
class AccountNegativeList(ListView):
|
||||
queryset = AccountNegative.objects.select_related(
|
||||
|
|
Loading…
Reference in a new issue