Merge pull request #393 from mouse-reeve/notifications-cleanup

Avoid duplicate notifications
This commit is contained in:
Mouse Reeve 2020-12-16 18:59:20 -08:00 committed by GitHub
commit a8e424a0f7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 2 deletions

View file

@ -218,7 +218,9 @@ def handle_create(activity):
status = activity.to_model(model) status = activity.to_model(model)
# create a notification if this is a reply # create a notification if this is a reply
notified = []
if status.reply_parent and status.reply_parent.user.local: if status.reply_parent and status.reply_parent.user.local:
notified.append(status.reply_parent.user)
status_builder.create_notification( status_builder.create_notification(
status.reply_parent.user, status.reply_parent.user,
'REPLY', 'REPLY',
@ -227,7 +229,7 @@ def handle_create(activity):
) )
if status.mention_users.exists(): if status.mention_users.exists():
for mentioned_user in status.mention_users.all(): for mentioned_user in status.mention_users.all():
if not mentioned_user.local: if not mentioned_user.local or mentioned_user in notified:
continue continue
status_builder.create_notification( status_builder.create_notification(
mentioned_user, mentioned_user,

View file

@ -54,7 +54,7 @@
<div class="notification py-2 {% if notification.id in unread %}is-primary is-light{% else %}has-background-white{% if notification.notification_type == 'REPLY' or notification.notification_type == 'MENTION' %} has-text-black{% else %}-bis has-text-grey-dark{% endif %}{% endif %}"> <div class="notification py-2 {% if notification.id in unread %}is-primary is-light{% else %}has-background-white{% if notification.notification_type == 'REPLY' or notification.notification_type == 'MENTION' %} has-text-black{% else %}-bis has-text-grey-dark{% endif %}{% endif %}">
<div class="columns"> <div class="columns">
<div class="column"> <div class="column">
<a href="{{ notification.related_status.remote_id }}">{{ notification.related_status.content | truncatewords_html:10 }}</a> <a href="{{ notification.related_status.remote_id }}">{{ notification.related_status.content | safe | truncatewords_html:10 }}</a>
</div> </div>
<div class="column is-narrow {% if notification.notification_type == 'REPLY' or notification.notification_type == 'MENTION' %}has-text-black{% else %}has-text-grey-dark{% endif %}"> <div class="column is-narrow {% if notification.notification_type == 'REPLY' or notification.notification_type == 'MENTION' %}has-text-black{% else %}has-text-grey-dark{% endif %}">
{{ notification.related_status.published_date | post_date }} {{ notification.related_status.published_date | post_date }}