Skip to content
Snippets Groups Projects
Commit 4423231f authored by Tom Teichler's avatar Tom Teichler :beers: Committed by root
Browse files

Create person on signup if unexisting, allow to edit all person fields

parent 5f69250a
No related branches found
No related tags found
1 merge request!450User invitations
Pipeline #45251 canceled
......@@ -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.
......
......@@ -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."""
......
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment