From 2ec460f3abf45a19f9620bdee2022ef10a62bebc Mon Sep 17 00:00:00 2001
From: Todd Dembrey <todd.dembrey@torchbox.com>
Date: Mon, 5 Feb 2018 09:13:21 +0000
Subject: [PATCH] Make the User model more like the other models

---
 opentech/apply/funds/models.py |  2 +-
 opentech/apply/users/models.py | 25 ++++++++++++-------------
 2 files changed, 13 insertions(+), 14 deletions(-)

diff --git a/opentech/apply/funds/models.py b/opentech/apply/funds/models.py
index e3855d57f..439e830b1 100644
--- a/opentech/apply/funds/models.py
+++ b/opentech/apply/funds/models.py
@@ -69,7 +69,7 @@ class SubmittableStreamForm(AbstractStreamForm):
             User = get_user_model()
             email = cleaned_data.get('email')
             full_name = cleaned_data.get('full_name')
-            user = User.get_or_create_new(
+            user = User.objects.get_or_create(
                 email=email,
                 defaults={'full_name': full_name}
             )
diff --git a/opentech/apply/users/models.py b/opentech/apply/users/models.py
index 8d6d47cc5..0cdbf5765 100644
--- a/opentech/apply/users/models.py
+++ b/opentech/apply/users/models.py
@@ -1,12 +1,23 @@
 from django.db import models
-from django.contrib.auth.models import AbstractUser
+from django.contrib.auth.models import AbstractUser, BaseUserManager
 
 from .utils import send_activation_email
 
 
+class UserManager(BaseUserManager):
+    def get_or_create(self, defaults, **kwargs):
+        defaults.update(is_active=False)
+        user, created = super().get_or_create(defaults=defaults, **kwargs)
+        if created:
+            send_activation_email(user)
+        return user
+
+
 class User(AbstractUser):
     full_name = models.CharField(verbose_name='Full name', max_length=255, blank=True)
 
+    objects = UserManager()
+
     class Meta:
         unique_together = ('email',)
 
@@ -18,15 +29,3 @@ class User(AbstractUser):
             return self.full_name.strip()
 
         return super().get_full_name()
-
-    def get_user_by_email(self, email):
-        email_field = getattr(self, 'EMAIL_FIELD', 'email')
-        return self.objects.filter(**{email_field + '__iexact': email})
-
-    @classmethod
-    def get_or_create_new(cls, defaults, **kwargs):
-        defaults.update(is_active=False)
-        user, created = cls.objects.get_or_create(defaults=defaults, **kwargs)
-        if created:
-            send_activation_email(user)
-        return user
-- 
GitLab