Extend members app: add filtering with django-filter, MemberFilter class, and initial view setup. Update URLs, templates, and dependencies for integration.

This commit is contained in:
2026-01-04 23:24:53 +01:00
parent e67ef526f4
commit 40ddab4627
14 changed files with 94 additions and 7 deletions

View File

12
backend/members/urls.py Normal file
View File

@@ -0,0 +1,12 @@
from django.urls import include, path
from .views import MemberAddView, MemberDeleteView, MemberEditView, MemberListView, MemberLoadView
app_name = "members"
urlpatterns = [
path("", MemberListView.as_view(), name="list"),
# path("add/", MemberAddView.as_view(), name="add"),
# path("<int:pk>/edit/", MemberEditView.as_view(), name="edit"),
# path("<int:pk>/delete/", MemberDeleteView.as_view(), name="delete"),
# path("load/", MemberLoadView.as_view(), name="load"),
]

34
backend/members/views.py Normal file
View File

@@ -0,0 +1,34 @@
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
class MemberListView(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"
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: ...