from typing import Any from django.contrib import messages from django.http import HttpResponse, HttpResponseRedirect from django.urls import reverse_lazy from django.utils.translation import gettext_lazy as _ from django_filters.views import FilterView from rules.contrib.views import PermissionRequiredMixin from members.filters import MemberFilter from members.models import Member from ..mixins import HTMXViewMixin class MemberListView(HTMXViewMixin, PermissionRequiredMixin, FilterView): filterset_class = MemberFilter paginate_by = 50 permission_denied_message = _("You do not have permission to view this page.") permission_required = "members.view_member" partial_name = "members/member_filter.html#content" def handle_no_permission(self) -> HttpResponseRedirect: messages.error(self.request, self.get_permission_denied_message()) return HttpResponseRedirect(reverse_lazy("backend:index")) class MemberAddView: ... class MemberEditView: ... class MemberDeleteView: ... class MemberLoadView: ...