summaryrefslogtreecommitdiffstats
path: root/apps/patchwork/models.py
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2011-09-19 10:33:51 +0800
committerJeremy Kerr <jk@ozlabs.org>2011-09-19 10:33:51 +0800
commit4bc2c34df5e5eb3e7153286f59aa8bdaf0c23dc0 (patch)
tree971498466574214e4a3a90a451278e4386e51768 /apps/patchwork/models.py
parent75d8cf966034e673afe0077ba393d8b2eb3e9b93 (diff)
downloadpatchwork-4bc2c34df5e5eb3e7153286f59aa8bdaf0c23dc0.tar.bz2
patchwork-4bc2c34df5e5eb3e7153286f59aa8bdaf0c23dc0.tar.xz
models: Update Person & UserProfile object whenever User is saved
Currently, UserProfiles are only saved on creation of the User object, before the first_name and last_name attributes are set. This means that we fallback to using the User.username value as the new Person.name. This change modifies User's post-save signal to always update the Person object, both on creation and updates. This means we get the proper name appearing on Person instances. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'apps/patchwork/models.py')
-rw-r--r--apps/patchwork/models.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/apps/patchwork/models.py b/apps/patchwork/models.py
index 22062c2..bb8d8e7 100644
--- a/apps/patchwork/models.py
+++ b/apps/patchwork/models.py
@@ -136,13 +136,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)
+def _user_saved_callback(sender, created, instance, **kwargs):
+ try:
+ profile = instance.get_profile()
+ except UserProfile.DoesNotExist:
+ profile = UserProfile(user = instance)
profile.save()
-models.signals.post_save.connect(_user_created_callback, sender = User)
+models.signals.post_save.connect(_user_saved_callback, sender = User)
class State(models.Model):
name = models.CharField(max_length = 100)