Commit e653db15 authored by Jeremy Kerr's avatar Jeremy Kerr
Browse files

models: use User.post_save signal to create UserProfile objects



Rather than relying on the registration app's callback mechanism to
create the UserProfile object, use the post_save signal on auth.User.

This means that the UserProfile will be created regardless of how the
User was created.
Signed-off-by: default avatarJeremy Kerr <jk@ozlabs.org>
parent a16f6f8a
#!/usr/bin/env python
#
# Patchwork - automated patch tracking system
# Copyright (C) 2008 Jeremy Kerr <jk@ozlabs.org>
#
# This file is part of the Patchwork package.
#
# Patchwork is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# Patchwork is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Patchwork; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
from patchwork.models import UserProfile
from django.contrib.auth.models import User
# give each existing user a userprofile
for user in User.objects.all():
p = UserProfile(user = user)
p.save()
......@@ -130,6 +130,14 @@ class UserProfile(models.Model):
def __unicode__(self):
return self.name()
def _user_created_callback(sender, created, instance, **kwargs):
if not created:
return
profile = UserProfile(user = instance)
profile.save()
models.signals.post_save.connect(_user_created_callback, sender = User)
class State(models.Model):
name = models.CharField(max_length = 100)
ordering = models.IntegerField(unique = True)
......
......@@ -19,7 +19,7 @@
import os
import codecs
from patchwork.models import Project, Person, UserProfile
from patchwork.models import Project, Person
from django.contrib.auth.models import User
from email import message_from_file
......@@ -66,9 +66,6 @@ def create_user():
user = User.objects.create_user(userid, email, userid)
user.save()
profile = UserProfile(user = user)
profile.save()
return user
def create_maintainer(project):
......
......@@ -182,8 +182,3 @@ def set_patches(user, project, action, data, patches, context):
context.add_message(str)
return (errors, form)
def userprofile_register_callback(user):
profile = UserProfile(user = user)
profile.save()
......@@ -23,7 +23,6 @@ from patchwork.admin import admin_site
from registration.views import register
from patchwork.forms import RegistrationForm
from patchwork.utils import userprofile_register_callback
urlpatterns = patterns('',
# Example:
......@@ -31,9 +30,7 @@ urlpatterns = patterns('',
# override the default registration form
url(r'^accounts/register/$',
register,
{'form_class': RegistrationForm,
'profile_callback': userprofile_register_callback},
register, {'form_class': RegistrationForm},
name='registration_register'),
(r'^accounts/', include('registration.urls')),
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment