Commit 6f94b2d2bc5364809cb87c98726a6023fc6022c2
1 parent
7e6fc093
Exists in
master
and in
39 other branches
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() |