summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2011-03-10 18:06:50 +0800
committerJeremy Kerr <jk@ozlabs.org>2011-03-30 11:35:24 +0800
commite653db155cdb671d6ab1c52492fd37b9f80cb805 (patch)
tree3d244db8e30f5b5128eee80cec12f117b0ec73d4 /apps
parenta16f6f8afd0e9487cb3d9b8041f24c7496330086 (diff)
downloadpatchwork-e653db155cdb671d6ab1c52492fd37b9f80cb805.tar.bz2
patchwork-e653db155cdb671d6ab1c52492fd37b9f80cb805.tar.xz
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: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'apps')
-rwxr-xr-xapps/patchwork/bin/setup.py29
-rw-r--r--apps/patchwork/models.py8
-rw-r--r--apps/patchwork/tests/utils.py5
-rw-r--r--apps/patchwork/utils.py5
-rw-r--r--apps/urls.py5
5 files changed, 10 insertions, 42 deletions
diff --git a/apps/patchwork/bin/setup.py b/apps/patchwork/bin/setup.py
deleted file mode 100755
index 7d55815..0000000
--- a/apps/patchwork/bin/setup.py
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/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()
diff --git a/apps/patchwork/models.py b/apps/patchwork/models.py
index 676f219..6ad4e1a 100644
--- a/apps/patchwork/models.py
+++ b/apps/patchwork/models.py
@@ -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)
diff --git a/apps/patchwork/tests/utils.py b/apps/patchwork/tests/utils.py
index 35c4beb..f1c95e8 100644
--- a/apps/patchwork/tests/utils.py
+++ b/apps/patchwork/tests/utils.py
@@ -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):
diff --git a/apps/patchwork/utils.py b/apps/patchwork/utils.py
index 53cf40b..5df6404 100644
--- a/apps/patchwork/utils.py
+++ b/apps/patchwork/utils.py
@@ -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()
-
diff --git a/apps/urls.py b/apps/urls.py
index 5c4ac57..14f0545 100644
--- a/apps/urls.py
+++ b/apps/urls.py
@@ -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')),