mirror of
https://expo.survex.com/repositories/troggle/.git
synced 2025-12-16 12:27:10 +00:00
[svn] Add user registration and user profiles.
Used modified versions of django-registration and django-profiles , both on bitbucket. The Person model is now set up as the profile for auth.User s. I set up a requestcontext so that settings is automatically passed to every template, no need to repeat ourselves in views. However, this needs to be refined: I will soon change it to only pass a subset of settings. E.G. we do not need to be passing the DB login and password! Copied from http://cucc@cucc.survex.com/svn/trunk/expoweb/troggle/, rev. 8231 by aaron @ 1/29/2009 11:02 PM
This commit is contained in:
45
profiles/utils.py
Normal file
45
profiles/utils.py
Normal file
@@ -0,0 +1,45 @@
|
||||
"""
|
||||
Utility functions for retrieving and generating forms for the
|
||||
site-specific user profile model specified in the
|
||||
``AUTH_PROFILE_MODULE`` setting.
|
||||
|
||||
"""
|
||||
|
||||
from django import forms
|
||||
from django.conf import settings
|
||||
from django.contrib.auth.models import SiteProfileNotAvailable
|
||||
from django.db.models import get_model
|
||||
|
||||
|
||||
def get_profile_model():
|
||||
"""
|
||||
Return the model class for the currently-active user profile
|
||||
model, as defined by the ``AUTH_PROFILE_MODULE`` setting. If that
|
||||
setting is missing, raise
|
||||
``django.contrib.auth.models.SiteProfileNotAvailable``.
|
||||
|
||||
"""
|
||||
if (not hasattr(settings, 'AUTH_PROFILE_MODULE')) or \
|
||||
(not settings.AUTH_PROFILE_MODULE):
|
||||
raise SiteProfileNotAvailable
|
||||
profile_mod = get_model(*settings.AUTH_PROFILE_MODULE.split('.'))
|
||||
if profile_mod is None:
|
||||
raise SiteProfileNotAvailable
|
||||
return profile_mod
|
||||
|
||||
|
||||
def get_profile_form():
|
||||
"""
|
||||
Return a form class (a subclass of the default ``ModelForm``)
|
||||
suitable for creating/editing instances of the site-specific user
|
||||
profile model, as defined by the ``AUTH_PROFILE_MODULE``
|
||||
setting. If that setting is missing, raise
|
||||
``django.contrib.auth.models.SiteProfileNotAvailable``.
|
||||
|
||||
"""
|
||||
profile_mod = get_profile_model()
|
||||
class _ProfileForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = profile_mod
|
||||
exclude = ('user',) # User will be filled in by the view.
|
||||
return _ProfileForm
|
||||
Reference in New Issue
Block a user