From ac6aa75a465abe98bef66264aa03d7c361a464bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Dlouh=C3=BD?= Date: Wed, 20 Oct 2021 13:28:13 +0200 Subject: [PATCH] allow to set target proxy objects --- notifications/base/models.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/notifications/base/models.py b/notifications/base/models.py index cf1d986..bcc8bed 100644 --- a/notifications/base/models.py +++ b/notifications/base/models.py @@ -304,6 +304,7 @@ def notify_handler(verb, **kwargs): timestamp = kwargs.pop('timestamp', timezone.now()) Notification = load_model('notifications', 'Notification') level = kwargs.pop('level', Notification.LEVELS.info) + actor_for_concrete_model = kwargs.pop('actor_for_concrete_model', True) # Check if User or Group if isinstance(recipient, Group): @@ -318,7 +319,7 @@ def notify_handler(verb, **kwargs): for recipient in recipients: newnotify = Notification( recipient=recipient, - actor_content_type=ContentType.objects.get_for_model(actor), + actor_content_type=ContentType.objects.get_for_model(actor, for_concrete_model=actor_for_concrete_model), actor_object_id=actor.pk, verb=str(verb), public=public, @@ -330,9 +331,10 @@ def notify_handler(verb, **kwargs): # Set optional objects for obj, opt in optional_objs: if obj is not None: + for_concrete_model = kwargs.pop(f'{opt}_for_concrete_model', True) setattr(newnotify, '%s_object_id' % opt, obj.pk) setattr(newnotify, '%s_content_type' % opt, - ContentType.objects.get_for_model(obj)) + ContentType.objects.get_for_model(obj, for_concrete_model=for_concrete_model)) if kwargs and EXTRA_DATA: newnotify.data = kwargs.copy()