From 6f94b2d2bc5364809cb87c98726a6023fc6022c2 Mon Sep 17 00:00:00 2001 From: Sergio Oliveira Date: Fri, 22 Aug 2014 20:07:04 -0300 Subject: [PATCH] Add signal to create emailaddress for user if it doesn't exist yet --- src/super_archives/models.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+), 0 deletions(-) diff --git a/src/super_archives/models.py b/src/super_archives/models.py index 7dbe9c9..e779fc3 100644 --- a/src/super_archives/models.py +++ b/src/super_archives/models.py @@ -9,7 +9,9 @@ from django.db import models from django.conf import settings from django.utils import timezone from django.core.cache import cache +from django.dispatch import receiver from django.contrib.auth import get_user_model +from django.db.models.signals import post_save from django.core.urlresolvers import reverse, NoReverseMatch from django.utils.translation import ugettext_lazy as _ @@ -390,3 +392,23 @@ class MessageMetadata(models.Model): return 'Email Message Id: %s - %s: %s' % (self.Message.id, self.name, self.value) + +# For django 1.7 erase the 2 next lines +from django.contrib.auth import get_user_model +User = get_user_model() + +@receiver(post_save, sender=User) +def create_email_address(sender, instance, created, **kwargs): + if not created: + return + + email, email_created = EmailAddress.objects.get_or_create( + address=instance.email, + defaults= { + 'real_name': instance.get_full_name(), + 'user': instance, + } + ) + + email.user = instance + email.save() -- libgit2 0.21.2