Browse Source

Fixes #20157: Overwrite existing user notifications to avoid duplications (#20167)

Jeremy Stretch 5 months ago
parent
commit
7033230388
1 changed files with 8 additions and 5 deletions
  1. 8 5
      netbox/extras/models/notifications.py

+ 8 - 5
netbox/extras/models/notifications.py

@@ -173,14 +173,17 @@ class NotificationGroup(ChangeLoggedModel):
             User.objects.filter(groups__in=self.groups.all())
         ).order_by('username')
 
-    def notify(self, **kwargs):
+    def notify(self, object_type, object_id, **kwargs):
         """
         Bulk-create Notifications for all members of this group.
         """
-        Notification.objects.bulk_create([
-            Notification(user=member, **kwargs)
-            for member in self.members
-        ])
+        for user in self.members:
+            Notification.objects.update_or_create(
+                object_type=object_type,
+                object_id=object_id,
+                user=user,
+                defaults=kwargs
+            )
     notify.alters_data = True