Coverage for website/activemembers/forms.py: 70.59%
15 statements
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
1from django import forms
2from django.contrib.auth.models import Permission
3from django.utils.translation import gettext_lazy as _
5from activemembers.models import MemberGroupMembership
6from members.models import Member
9class MemberGroupMembershipForm(forms.ModelForm):
10 """Custom form for group memberships that orders the members."""
12 member = forms.ModelChoiceField(
13 queryset=Member.objects.order_by("first_name", "last_name"),
14 label=_("Member"),
15 )
17 class Meta:
18 model = MemberGroupMembership
19 fields = "__all__"
22class MemberGroupForm(forms.ModelForm):
23 """Solely here for performance reasons.
25 Needed because the `__str__()` of `Permission` (which is displayed in the
26 permissions selection box) also prints the corresponding app and
27 `content_type` for each permission.
28 """
30 def __init__(self, *args, **kwargs):
31 super().__init__(*args, **kwargs)
32 if "permissions" in self.fields:
33 self.fields["permissions"].queryset = Permission.objects.select_related(
34 "content_type"
35 )