Coverage for src/accounts/signals.py: 100%

18 statements  

« prev     ^ index     » next       coverage.py v7.9.2, created at 2025-09-21 16:24 +0300

1from src import settings 

2 

3from django.dispatch import receiver 

4from django.db.models.signals import post_save 

5from django.contrib.auth import get_user_model 

6from django.template.loader import render_to_string 

7from django.utils.html import strip_tags 

8 

9from src.common.views import _send_email 

10from src.accounts.models.user_photo import UserPhoto 

11from src.accounts.models.user_profile import UserProfile 

12 

13 

14UserModel = get_user_model() 

15 

16 

17@receiver(post_save, sender=UserModel) 

18def create_related_user_models(sender, instance, created, **kwargs): 

19 if created: 

20 UserProfile.objects.get_or_create(user=instance) 

21 UserPhoto.objects.get_or_create(user=instance) 

22 

23 html_message = render_to_string( 

24 'mailer/registration-greeting.html', {'user': instance} 

25 ) 

26 plain_message = strip_tags(html_message) 

27 

28 _send_email.delay( 

29 subject='Welcome to DRF React Gems!', 

30 message=plain_message, 

31 html_message=html_message, 

32 from_email=settings.EMAIL_HOST_USER, 

33 recipient_list=(instance.email,), 

34 )