feat: add basic subscriptions + emit notification for comment

This commit is contained in:
2024-08-02 20:03:25 +02:00
parent 24b4b1fad0
commit 198fb88bfd
3 changed files with 61 additions and 4 deletions

View File

@@ -12,7 +12,7 @@ from notfellchen import settings
from fellchensammlung import logger
from .models import AdoptionNotice, Text, Animal, Rule, Image, Report, ModerationAction, \
User, Location, AdoptionNoticeStatus, Subscriptions
User, Location, AdoptionNoticeStatus, Subscriptions, CommentNotification
from .forms import AdoptionNoticeForm, AdoptionNoticeFormWithDateWidget, ImageForm, ReportAdoptionNoticeForm, \
CommentForm, ReportCommentForm, AnimalForm, \
AdoptionNoticeSearchForm, AnimalFormWithDateWidget
@@ -59,12 +59,20 @@ def adoption_notice_detail(request, adoption_notice_id):
if comment_form.is_valid():
comment_instance = comment_form.save(commit=False)
comment_instance.adoption_notice_id = adoption_notice_id
comment_instance.user = request.user.member
comment_instance.user = request.user
comment_instance.save()
# Auto-subscribe user to adoption notice
subscription = Subscriptions(adoption_notice=adoption_notice, user=request.user)
subscription, created = Subscriptions.objects.get_or_create(adoption_notice=adoption_notice, user=request.user)
subscription.save()
# Notify users that a comment was added
for subscription in adoption_notice.get_subscriptions():
notification = CommentNotification(user=subscription.user,
title=f"{adoption_notice.name} - Neuer Kommentar",
text=f"{request.user}: {comment_instance.text}",
comment=comment_instance)
notification.save()
else:
raise PermissionDenied
else: