Coverage for website/pushnotifications/signals/newsletters.py: 100.00%

10 statements  

« prev     ^ index     » next       coverage.py v7.6.7, created at 2025-08-14 10:31 +0000

1from django.conf import settings 

2 

3from members.models import Member 

4from newsletters.signals import sent_newsletter 

5from utils.models.signals import suspendingreceiver 

6 

7from ..models import Category, Message 

8 

9 

10@suspendingreceiver( 

11 sent_newsletter, 

12 dispatch_uid="send_newsletter_pushnotification", 

13) 

14def send_newsletter_pushnotification(sender, newsletter, **kwargs): 

15 """Send a push notification for the sent newsletter.""" 

16 message = Message.objects.create( 

17 title=newsletter.title, 

18 body="Tap to view", 

19 url=settings.BASE_URL + newsletter.get_absolute_url(), 

20 category=Category.objects.get(key=Category.NEWSLETTER), 

21 ) 

22 message.users.set( 

23 Member.current_members.filter(profile__receive_newsletter=True).all() 

24 ) 

25 message.send()