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
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
1from django.conf import settings
3from members.models import Member
4from newsletters.signals import sent_newsletter
5from utils.models.signals import suspendingreceiver
7from ..models import Category, Message
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()