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

18 statements  

« prev     ^ index     » next       coverage.py v7.9.2, created at 2025-08-04 12:59 +0300

1from django.dispatch import receiver 

2from django.db.models.signals import post_save 

3from django.contrib.auth import get_user_model 

4from django.template.loader import render_to_string 

5from django.utils.html import strip_tags 

6from src import settings 

7 

8from src.common.tasks import _send_email 

9from src.accounts.models.user_photo import UserPhoto 

10from src.accounts.models.user_profile import UserProfile 

11 

12 

13UserModel = get_user_model() 

14 

15 

16@receiver(post_save, sender=UserModel) 

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

18 if created: 

19 UserProfile.objects.get_or_create(user=instance) 

20 UserPhoto.objects.get_or_create(user=instance) 

21 

22 html_message = render_to_string( 

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

24 ) 

25 plain_message = strip_tags(html_message) 

26 

27 _send_email.delay( 

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

29 message=plain_message, 

30 html_message=html_message, 

31 from_email=settings.EMAIL_HOST_USER, 

32 recipient_list=(instance.email,), 

33 )