diff --git a/opentech/apply/funds/models.py b/opentech/apply/funds/models.py index 341f6676c01a13feaa5a5f82e063cbdafdbe3172..7b368cdf49e6e121c6b99a5c7cc7c34fb1444630 100644 --- a/opentech/apply/funds/models.py +++ b/opentech/apply/funds/models.py @@ -70,7 +70,7 @@ class SubmittableStreamForm(AbstractStreamForm): User = get_user_model() email = cleaned_data.get('email') full_name = cleaned_data.get('full_name') - user = User.objects.get_or_create( + user, _ = User.objects.get_or_create_and_notify( email=email, defaults={'full_name': full_name} ) diff --git a/opentech/apply/users/models.py b/opentech/apply/users/models.py index 5f69dd3c35eddb887ed36dacd1d1bf1ad5f3a1e7..aea2011911d3d1a1da1b84bd309fb5fa1efbe3c1 100644 --- a/opentech/apply/users/models.py +++ b/opentech/apply/users/models.py @@ -12,15 +12,18 @@ def convert_full_name_to_parts(full_name): class UserManager(BaseUserManager): def get_or_create(self, defaults, **kwargs): - defaults.update(is_active=False) - + # Allow passing of 'full_name' but replace it with actual database fields first_name, last_name = convert_full_name_to_parts(defaults.pop('full_name', '')) defaults.update(first_name=first_name, last_name=last_name) - user, created = super().get_or_create(defaults=defaults, **kwargs) + return super().get_or_create(defaults=defaults, **kwargs) + + def get_or_create_and_notify(self, defaults=dict(), **kwargs): + defaults.update(is_active=False) + user, created = self.get_or_create(defaults=defaults, **kwargs) if created: send_activation_email(user) - return user + return user, created class User(AbstractUser):