diff --git a/backend/members/views.py b/backend/members/views.py index eec36e8..ec70b78 100644 --- a/backend/members/views.py +++ b/backend/members/views.py @@ -56,11 +56,15 @@ class MemberDeleteView(HTMXViewMixin, PermissionRequiredMixin, SuccessMessageMix def get_success_message(self, cleaned_data): 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() + + # Soft delete user self.object.user.is_active = False 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()) diff --git a/templates/members/member_confirm_delete.html b/templates/members/member_confirm_delete.html new file mode 100644 index 0000000..4eb4d1d --- /dev/null +++ b/templates/members/member_confirm_delete.html @@ -0,0 +1,27 @@ +{% extends "backend/base.html" %} + +{% load i18n %} +{% load form_field %} +{% load avatar %} +{% load pagination %} + +{% block content %} + {% partialdef content inline %} +

{% translate "Members" %}

+ +
+ {% blocktranslate with name=object.user.get_full_name %} + Are you sure you want to delete member {{ name }}? + {% endblocktranslate %} +
+ +
+ {% csrf_token %} + +
+ {% translate "Cancel" %} + +
+
+ {% endpartialdef content %} +{% endblock content %} \ No newline at end of file diff --git a/templates/members/member_filter.html b/templates/members/member_filter.html index 9089f83..3d49c13 100644 --- a/templates/members/member_filter.html +++ b/templates/members/member_filter.html @@ -7,7 +7,7 @@ {% block content %} {% partialdef content inline %} -

Members

+

{% translate "Members" %}