From 18187b816ee44073f2395ffdfeefd50faf5df9be Mon Sep 17 00:00:00 2001 From: George Burton <8233643+gecBurton@users.noreply.github.com> Date: Wed, 11 Sep 2024 10:10:03 +0100 Subject: [PATCH] feature/use get_user_model (#1037) * use get_user_model * removed more direct uses of User --------- Co-authored-by: George Burton --- django_app/redbox_app/redbox_core/admin.py | 8 +++++--- django_app/redbox_app/redbox_core/forms.py | 3 ++- .../redbox_core/management/commands/show_magiclink_url.py | 3 ++- django_app/redbox_app/redbox_core/views/auth_views.py | 8 ++++---- .../redbox_app/redbox_core/views/demographics_views.py | 4 +++- django_app/tests/views/test_demographic_views.py | 4 ++-- django_app/tests/views/test_misc_views.py | 3 ++- 7 files changed, 20 insertions(+), 13 deletions(-) diff --git a/django_app/redbox_app/redbox_core/admin.py b/django_app/redbox_app/redbox_core/admin.py index 3c214551b..0ae7f4434 100644 --- a/django_app/redbox_app/redbox_core/admin.py +++ b/django_app/redbox_app/redbox_core/admin.py @@ -3,6 +3,7 @@ import logging from django.contrib import admin +from django.contrib.auth import get_user_model from django.db.models import QuerySet from django.http import HttpResponse from django.shortcuts import render @@ -15,6 +16,7 @@ from .serializers import UserSerializer logger = logging.getLogger(__name__) +User = get_user_model() class UserAdmin(ImportExportMixin, admin.ModelAdmin): @@ -53,11 +55,11 @@ def export_as_json(self, request, queryset: QuerySet): # noqa:ARG002 date_hierarchy = "last_login" @admin.display(ordering="ai_experience", description="AI Experience") - def get_ai(self, obj: models.User): + def get_ai(self, obj: User): return obj.ai_experience class Meta: - model = models.User + model = User fields = ["email"] import_id_fields = ["email"] @@ -169,7 +171,7 @@ def reporting_dashboard(request): return render(request, "report.html", {}, using="django") -admin.site.register(models.User, UserAdmin) +admin.site.register(User, UserAdmin) admin.site.register(models.File, FileAdmin) admin.site.register(models.Chat, ChatAdmin) admin.site.register(models.ChatMessage, ChatMessageAdmin) diff --git a/django_app/redbox_app/redbox_core/forms.py b/django_app/redbox_app/redbox_core/forms.py index 0377cf78d..b3739ec1a 100644 --- a/django_app/redbox_app/redbox_core/forms.py +++ b/django_app/redbox_app/redbox_core/forms.py @@ -2,8 +2,9 @@ from typing import ClassVar from django import forms +from django.contrib.auth import get_user_model -from redbox_app.redbox_core.models import User +User = get_user_model() class SignInForm(forms.Form): diff --git a/django_app/redbox_app/redbox_core/management/commands/show_magiclink_url.py b/django_app/redbox_app/redbox_core/management/commands/show_magiclink_url.py index 51638a389..9deed5dec 100644 --- a/django_app/redbox_app/redbox_core/management/commands/show_magiclink_url.py +++ b/django_app/redbox_app/redbox_core/management/commands/show_magiclink_url.py @@ -1,11 +1,12 @@ import logging from argparse import ArgumentParser +from django.contrib.auth import get_user_model from django.core.management import BaseCommand, CommandError from django.db.models import Max from magic_link.models import MagicLink -from redbox_app.redbox_core.models import User +User = get_user_model() logger = logging.getLogger(__name__) diff --git a/django_app/redbox_app/redbox_core/views/auth_views.py b/django_app/redbox_app/redbox_core/views/auth_views.py index 0b2209784..a3f73522b 100644 --- a/django_app/redbox_app/redbox_core/views/auth_views.py +++ b/django_app/redbox_app/redbox_core/views/auth_views.py @@ -1,7 +1,7 @@ import logging from django.conf import settings -from django.contrib.auth import logout +from django.contrib.auth import get_user_model, logout from django.core.mail import send_mail from django.http import HttpRequest from django.shortcuts import redirect, render @@ -9,10 +9,10 @@ from magic_link.models import MagicLink from requests import HTTPError -from redbox_app.redbox_core import models from redbox_app.redbox_core.forms import SignInForm logger = logging.getLogger(__name__) +User = get_user_model() def sign_in_view(request: HttpRequest): @@ -24,7 +24,7 @@ def sign_in_view(request: HttpRequest): email = form.cleaned_data["email"].lower() try: - user = models.User.objects.get(email=email) + user = User.objects.get(email=email) link = MagicLink.objects.create(user=user, redirect_to="/check-demographics") full_link = request.build_absolute_uri(link.get_absolute_url()) body = render_to_string("email/verification.txt", {"url": full_link}) @@ -34,7 +34,7 @@ def sign_in_view(request: HttpRequest): from_email=settings.FROM_EMAIL, recipient_list=[email], ) - except models.User.DoesNotExist as e: + except User.DoesNotExist as e: logger.debug("User with email %s not found", email, exc_info=e) except HTTPError as e: logger.exception("failed to send link to %s", email, exc_info=e) diff --git a/django_app/redbox_app/redbox_core/views/demographics_views.py b/django_app/redbox_app/redbox_core/views/demographics_views.py index 992cb7e50..a6282e7bc 100644 --- a/django_app/redbox_app/redbox_core/views/demographics_views.py +++ b/django_app/redbox_app/redbox_core/views/demographics_views.py @@ -1,5 +1,6 @@ import logging +from django.contrib.auth import get_user_model from django.contrib.auth.decorators import login_required from django.contrib.auth.mixins import LoginRequiredMixin from django.http import HttpRequest, HttpResponse @@ -9,7 +10,8 @@ from django.views.generic import UpdateView from redbox_app.redbox_core.forms import DemographicsForm -from redbox_app.redbox_core.models import User + +User = get_user_model() logger = logging.getLogger(__name__) diff --git a/django_app/tests/views/test_demographic_views.py b/django_app/tests/views/test_demographic_views.py index 549ef67c4..c3420eb25 100644 --- a/django_app/tests/views/test_demographic_views.py +++ b/django_app/tests/views/test_demographic_views.py @@ -3,11 +3,11 @@ import pytest from bs4 import BeautifulSoup +from django.contrib.auth import get_user_model from django.test import Client from pytest_django.asserts import assertRedirects -from redbox_app.redbox_core.models import User - +User = get_user_model() logger = logging.getLogger(__name__) diff --git a/django_app/tests/views/test_misc_views.py b/django_app/tests/views/test_misc_views.py index 5de62fd6d..ca16c835a 100644 --- a/django_app/tests/views/test_misc_views.py +++ b/django_app/tests/views/test_misc_views.py @@ -4,10 +4,11 @@ import pytest from django.conf import Settings, settings +from django.contrib.auth import get_user_model from django.test import Client from yarl import URL -from redbox_app.redbox_core.models import User +User = get_user_model() logger = logging.getLogger(__name__)