From f61add82598bae0d05052b5c883e09f41393c44c Mon Sep 17 00:00:00 2001 From: Todd Dembrey <todd.dembrey@torchbox.com> Date: Mon, 5 Feb 2018 17:20:18 +0000 Subject: [PATCH] Update the manager to seperate the email activation into a seperate method --- opentech/apply/funds/models.py | 2 +- opentech/apply/users/models.py | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/opentech/apply/funds/models.py b/opentech/apply/funds/models.py index 341f6676c..7b368cdf4 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 5f69dd3c3..aea201191 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): -- GitLab