Soft-deletion for members: implement confirmation template, update MemberDeleteView to deactivate users instead of deleting, and adjust templates for i18n.
This commit is contained in:
@@ -56,11 +56,15 @@ class MemberDeleteView(HTMXViewMixin, PermissionRequiredMixin, SuccessMessageMix
|
|||||||
def get_success_message(self, cleaned_data):
|
def get_success_message(self, cleaned_data):
|
||||||
return self.success_message % dict(cleaned_data, name=self.object.user.get_full_name())
|
return self.success_message % dict(cleaned_data, name=self.object.user.get_full_name())
|
||||||
|
|
||||||
def delete(self, request, *args, **kwargs) -> HttpResponseRedirect:
|
def post(self, request, *args, **kwargs):
|
||||||
self.object = self.get_object()
|
self.object = self.get_object()
|
||||||
|
|
||||||
|
# Soft delete user
|
||||||
self.object.user.is_active = False
|
self.object.user.is_active = False
|
||||||
self.object.user.save()
|
self.object.user.save()
|
||||||
|
|
||||||
|
# Do not delete the member object
|
||||||
|
messages.success(self.request, self.get_success_message({"name": self.object.user.get_full_name()}))
|
||||||
return HttpResponseRedirect(self.get_success_url())
|
return HttpResponseRedirect(self.get_success_url())
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
27
templates/members/member_confirm_delete.html
Normal file
27
templates/members/member_confirm_delete.html
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
{% extends "backend/base.html" %}
|
||||||
|
|
||||||
|
{% load i18n %}
|
||||||
|
{% load form_field %}
|
||||||
|
{% load avatar %}
|
||||||
|
{% load pagination %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
{% partialdef content inline %}
|
||||||
|
<h1 class="page-title">{% translate "Members" %}</h1>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
{% blocktranslate with name=object.user.get_full_name %}
|
||||||
|
Are you sure you want to delete member <span class="font-bold">{{ name }}</span>?
|
||||||
|
{% endblocktranslate %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<form method="post">
|
||||||
|
{% csrf_token %}
|
||||||
|
|
||||||
|
<div class="flex flex-row gap-2 mt-8">
|
||||||
|
<a href="{% url "backend:members:list" %}" class="btn btn-neutral btn-outline grow lg:grow-0">{% translate "Cancel" %}</a>
|
||||||
|
<button type="submit" class="btn btn-error grow lg:grow-0"><i class="fa-solid fa-trash"></i>{% translate "Delete" %}</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
{% endpartialdef content %}
|
||||||
|
{% endblock content %}
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
{% partialdef content inline %}
|
{% partialdef content inline %}
|
||||||
<h1 class="page-title">Members</h1>
|
<h1 class="page-title">{% translate "Members" %}</h1>
|
||||||
|
|
||||||
<div class="lg:hidden collapse collapse-plus bg-base-100 border-neutral border">
|
<div class="lg:hidden collapse collapse-plus bg-base-100 border-neutral border">
|
||||||
<input type="checkbox" />
|
<input type="checkbox" />
|
||||||
|
|||||||
Reference in New Issue
Block a user