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() | ... | ... |