From e653db155cdb671d6ab1c52492fd37b9f80cb805 Mon Sep 17 00:00:00 2001 From: Jeremy Kerr Date: Thu, 10 Mar 2011 18:06:50 +0800 Subject: 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 --- apps/patchwork/bin/setup.py | 29 ----------------------------- apps/patchwork/models.py | 8 ++++++++ apps/patchwork/tests/utils.py | 5 +---- apps/patchwork/utils.py | 5 ----- 4 files changed, 9 insertions(+), 38 deletions(-) delete mode 100755 apps/patchwork/bin/setup.py (limited to 'apps/patchwork') 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 -# -# 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() - -- cgit v1.2.3