diff --git a/aleksis/core/forms.py b/aleksis/core/forms.py index 95d41d32c5959a54c5b87d957094569021b5ae5c..e79ab6d879abc1fdb3379350099312743f9c0320 100644 --- a/aleksis/core/forms.py +++ b/aleksis/core/forms.py @@ -534,7 +534,23 @@ class AccountRegisterForm(SignupForm, ExtensibleForm): class Meta: model = Person - exclude = ["guardians", "is_active", "user", "primary_group"] + fields = [ + "first_name", + "additional_name", + "last_name", + "street", + "housenumber", + "postal_code", + "place", + "date_of_birth", + "place_of_birth", + "sex", + "photo", + "mobile_number", + "phone_number", + "short_name", + "description", + ] layout = Layout( Fieldset( @@ -585,11 +601,25 @@ class AccountRegisterForm(SignupForm, ExtensibleForm): self.fields["email2"].disabled = True if person: - self.fields["first_name"].initial = person.first_name - self.fields["first_name"].disabled = True - self.fields["last_name"].initial = person.last_name - self.fields["last_name"].disabled = True - + available_fields = [field.name for field in Person._meta.get_fields()] + for field in self.fields: + if field in available_fields and getattr(person, field): + self.fields[field].disabled = True + self.fields[field].initial = getattr(person, field) + + + def save(self, request): + adapter = get_adapter(request) + user = adapter.new_user(request) + adapter.save_user(request, user, self) + # Create person + data = self.changed_data + if not Person.objects.filter(email=self.cleaned_data["email"]): + _person = Person.objects.create(user=user, **data) + _person.save() + self.custom_signup(request, user) + setup_user_email(request, user, []) + return user class ActionForm(forms.Form): """Generic form for executing actions on multiple items of a queryset. diff --git a/aleksis/core/preferences.py b/aleksis/core/preferences.py index c6a18431f82d23427bdd87ea6f0b6aaebc6f6346..a102cb39873bdeb492156fc60597ce728ffc853f 100644 --- a/aleksis/core/preferences.py +++ b/aleksis/core/preferences.py @@ -295,14 +295,6 @@ class InviteCodePacketSize(IntegerPreference): verbose_name = _("Size of packets. (Default 5: abcde)") -@site_preferences_registry.register -class InviteDayExpiry(IntegerPreference): - section = auth - name = "invite_day_expiry" - default = 3 - verbose_name = _("Expiration time of invitations in days.") - - class OAuthAllowedGrants(MultipleChoicePreference): """Grant Flows allowed for OAuth applications.""" diff --git a/aleksis/core/settings.py b/aleksis/core/settings.py index 546e62f3a73f493120818bddf31f958a5fc1b42a..0248a78cc07a70182c955e93e62b6a9f864a5fb4 100644 --- a/aleksis/core/settings.py +++ b/aleksis/core/settings.py @@ -354,7 +354,7 @@ ACCOUNT_UNIQUE_EMAIL = _settings.get("auth.login.registration.unique_email", Tru ACCOUNT_ADAPTER = "invitations.models.InvitationsAdapter" -INVITATIONS_INVITATION_EXPIRY = lazy_preference("auth", "invite_day_expiry") +INVITATIONS_INVITATION_EXPIRY = _settings.get("auth.invitation.expiry", 3) INVITATIONS_EMAIL_SUBJECT_PREFIX = ACCOUNT_EMAIL_SUBJECT_PREFIX