dynamicweb/cms/utils/compat/forms.py

42 lines
1.5 KiB
Python

import importlib
from django.apps import apps
from django.conf import settings
# override with custom classes if they exist
if settings.AUTH_USER_MODEL != "auth.User": # pragma: no cover
# UserAdmin class
user_app_name = settings.AUTH_USER_MODEL.split(".")[0]
app = apps.get_app_config(user_app_name).models_module
try:
custom_admin = importlib.import_module(app.__name__[:-6] + "admin")
if hasattr(custom_admin, "UserAdmin"):
UserAdmin = custom_admin.UserAdmin
else:
from django.contrib.auth.admin import UserAdmin
except ImportError:
from django.contrib.auth.admin import UserAdmin # nopyflakes
# user form classes
try:
custom_forms = importlib.import_module(app.__name__[:-6] + "forms")
if hasattr(custom_forms, "UserCreationForm"):
UserCreationForm = custom_forms.UserCreationForm
else:
from django.contrib.auth.forms import UserCreationForm
if hasattr(custom_forms, "UserChangeForm"):
UserChangeForm = custom_forms.UserChangeForm
else:
from django.contrib.auth.forms import UserChangeForm
except ImportError:
from django.contrib.auth.forms import (
UserChangeForm, # nopyflakes
UserCreationForm, # nopyflakes
)
else:
from django.contrib.auth.admin import UserAdmin # noqa: F401
from django.contrib.auth.forms import UserChangeForm, UserCreationForm # noqa: F401