diff --git a/apps/member/tables.py b/apps/member/tables.py index 515d7836..8f5ceb88 100644 --- a/apps/member/tables.py +++ b/apps/member/tables.py @@ -24,7 +24,8 @@ class ClubTable(tables.Table): } model = Club template_name = 'django_tables2/bootstrap4.html' - fields = ('id', 'name', 'email') + fields = ('name', 'email',) + order_by = ('name',) row_attrs = { 'class': 'table-row', 'id': lambda record: "row-" + str(record.pk), diff --git a/apps/member/views.py b/apps/member/views.py index 04742f32..c52522e2 100644 --- a/apps/member/views.py +++ b/apps/member/views.py @@ -299,6 +299,22 @@ class ClubListView(ProtectQuerysetMixin, LoginRequiredMixin, SingleTableView): model = Club table_class = ClubTable + def get_queryset(self, **kwargs): + """ + Filter the user list with the given pattern. + """ + qs = super().get_queryset().filter() + if "search" in self.request.GET: + pattern = self.request.GET["search"] + + qs = qs.filter( + Q(name__iregex=pattern) + | Q(note__alias__name__iregex="^" + pattern) + | Q(note__alias__normalized_name__iregex=Alias.normalize("^" + pattern)) + ) + + return qs + class ClubDetailView(ProtectQuerysetMixin, LoginRequiredMixin, DetailView): """ diff --git a/templates/member/club_list.html b/templates/member/club_list.html index 8ba0ef3b..b43a186c 100644 --- a/templates/member/club_list.html +++ b/templates/member/club_list.html @@ -7,7 +7,7 @@