From b444ff6ae6718ff7b70d2d782be2f5b777538732 Mon Sep 17 00:00:00 2001 From: Hampus Toft <136370606+hato1883@users.noreply.github.com> Date: Wed, 8 Nov 2023 18:02:40 +0100 Subject: [PATCH] Fix/sorted section list 467 (#790) * Sort section list by its abbreviation * Changed RegistrationForm to CustomUserCreationForm This is the same form that admin page uses when creating users. RegistrationForm is not affected by change in forms.py in commit: 9be07d310b20af2acb1f7dcaf0dc17bd6c928b26 and thereby did not get a sorted section list from previous change. I do not see the diffrence in accont creation between the two forms. * Changed forms.py Changed so that section sorting occurs on all ModelForm's. This allows us to yet again use a custom ModelForm for admin page and another for the registration page. --- src/members/forms.py | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/members/forms.py b/src/members/forms.py index cfcbc185..c6419f0d 100644 --- a/src/members/forms.py +++ b/src/members/forms.py @@ -24,6 +24,11 @@ class MemberForm(forms.ModelForm): + section = forms.ModelChoiceField( + required=False, + queryset=Section.objects.order_by('abbreviation'), + label=_('Section'), + ) person_number = PersonNumberField( label=_('Person number'), help_text=_('Person number using the YYYYMMDD-XXXX format.'), @@ -81,6 +86,12 @@ def save(self, commit=True): class RegistrationForm(MemberForm, auth.UserCreationForm): + section = forms.ModelChoiceField( + required=False, + queryset=Section.objects.order_by('abbreviation'), + label=_('Section'), + ) + class Meta: model = Member fields = ['username', 'email', 'phone_number', 'section'] @@ -216,6 +227,12 @@ def password_enabled(self): widget=forms.PasswordInput, help_text=_("Enter the same password as above, for verification.")) + section = forms.ModelChoiceField( + required=False, + queryset=Section.objects.order_by('abbreviation'), + label=_('Section'), + ) + is_superuser = forms.BooleanField( label=_("Administrator"), required=False, help_text=_('Administrators have full access to manage any object ' @@ -304,6 +321,11 @@ def save(self, commit=True): class UserEditForm(UserForm): password_required = False + section = forms.ModelChoiceField( + required=False, + queryset=Section.objects.order_by('abbreviation'), + label=_('Section'), + ) def __init__(self, *args, **kwargs): kwargs.pop('editing_self', False) @@ -348,7 +370,7 @@ class CustomUserEditForm(UserEditForm): ) section = forms.ModelChoiceField( required=False, - queryset=Section.objects, + queryset=Section.objects.order_by('abbreviation'), label=_('Section'), ) status = forms.ChoiceField( @@ -412,7 +434,7 @@ class CustomUserCreationForm(UserCreationForm): ) section = forms.ModelChoiceField( required=False, - queryset=Section.objects, + queryset=Section.objects.order_by('abbreviation'), label=_("Section"), )