Commit 6f94b2d2bc5364809cb87c98726a6023fc6022c2

Authored by Sergio Oliveira
1 parent 7e6fc093

Add signal to create emailaddress for user if it doesn't exist yet

Showing 1 changed file with 22 additions and 0 deletions   Show diff stats
src/super_archives/models.py
@@ -9,7 +9,9 @@ from django.db import models @@ -9,7 +9,9 @@ from django.db import models
9 from django.conf import settings 9 from django.conf import settings
10 from django.utils import timezone 10 from django.utils import timezone
11 from django.core.cache import cache 11 from django.core.cache import cache
  12 +from django.dispatch import receiver
12 from django.contrib.auth import get_user_model 13 from django.contrib.auth import get_user_model
  14 +from django.db.models.signals import post_save
13 from django.core.urlresolvers import reverse, NoReverseMatch 15 from django.core.urlresolvers import reverse, NoReverseMatch
14 from django.utils.translation import ugettext_lazy as _ 16 from django.utils.translation import ugettext_lazy as _
15 17
@@ -390,3 +392,23 @@ class MessageMetadata(models.Model): @@ -390,3 +392,23 @@ class MessageMetadata(models.Model):
390 return 'Email Message Id: %s - %s: %s' % (self.Message.id, 392 return 'Email Message Id: %s - %s: %s' % (self.Message.id,
391 self.name, self.value) 393 self.name, self.value)
392 394
  395 +
  396 +# For django 1.7 erase the 2 next lines
  397 +from django.contrib.auth import get_user_model
  398 +User = get_user_model()
  399 +
  400 +@receiver(post_save, sender=User)
  401 +def create_email_address(sender, instance, created, **kwargs):
  402 + if not created:
  403 + return
  404 +
  405 + email, email_created = EmailAddress.objects.get_or_create(
  406 + address=instance.email,
  407 + defaults= {
  408 + 'real_name': instance.get_full_name(),
  409 + 'user': instance,
  410 + }
  411 + )
  412 +
  413 + email.user = instance
  414 + email.save()