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 | 9 | from django.conf import settings |
10 | 10 | from django.utils import timezone |
11 | 11 | from django.core.cache import cache |
12 | +from django.dispatch import receiver | |
12 | 13 | from django.contrib.auth import get_user_model |
14 | +from django.db.models.signals import post_save | |
13 | 15 | from django.core.urlresolvers import reverse, NoReverseMatch |
14 | 16 | from django.utils.translation import ugettext_lazy as _ |
15 | 17 | |
... | ... | @@ -390,3 +392,23 @@ class MessageMetadata(models.Model): |
390 | 392 | return 'Email Message Id: %s - %s: %s' % (self.Message.id, |
391 | 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() | ... | ... |