Просмотр исходного кода

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

Jeremy Stretch 6 месяцев назад
Родитель
Сommit
7033230388
1 измененных файлов с 8 добавлено и 5 удалено
  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