diff --git a/aleksis/apps/matrix/filters.py b/aleksis/apps/matrix/filters.py index fe145bec6db2c98d03120f959eb8c10de3f19ae4..ead6207594379d2284704b4ff93d2e726ce8a50c 100644 --- a/aleksis/apps/matrix/filters.py +++ b/aleksis/apps/matrix/filters.py @@ -1,5 +1,22 @@ -from aleksis.core.filters import GroupFilter +from django.utils.translation import gettext as _ +from django_filters import ModelChoiceFilter, ModelMultipleChoiceFilter +from material import Layout, Row -class GroupMatrixRoomFilter(GroupFilter): +from aleksis.core.filters import MultipleCharFilter +from aleksis.core.models import Group, GroupType, SchoolTerm + + +class GroupMatrixRoomFilter: """Custom filter for groups on Matrix room overview.""" + + school_term = ModelChoiceFilter(queryset=SchoolTerm.objects.all()) + group_type = ModelChoiceFilter(queryset=GroupType.objects.all()) + parent_groups = ModelMultipleChoiceFilter(queryset=Group.objects.all()) + + search = MultipleCharFilter(["name__icontains", "short_name__icontains"], label=_("Search")) + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.form.layout = Layout(Row("search"), Row("school_term", "group_type", "parent_groups")) + self.form.initial = {"school_term": SchoolTerm.current}