From db49f8ea89124929c0b4a82535044ba54426dc78 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Sun, 9 Oct 2016 12:04:54 +0200 Subject: [PATCH] EventPluginSignal: Call core plugins even when no event is given --- src/pretix/base/models/log.py | 7 ++++--- src/pretix/base/signals.py | 5 +++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/pretix/base/models/log.py b/src/pretix/base/models/log.py index 02de810f8c..608225b566 100644 --- a/src/pretix/base/models/log.py +++ b/src/pretix/base/models/log.py @@ -37,7 +37,8 @@ class LogEntry(models.Model): def display(self): from ..signals import logentry_display - for receiver, response in logentry_display.send(self.event, logentry=self): - if response: - return response + if self.event: + for receiver, response in logentry_display.send(self.event, logentry=self): + if response: + return response return self.action_type diff --git a/src/pretix/base/signals.py b/src/pretix/base/signals.py index aad143fa68..a8103e48ed 100644 --- a/src/pretix/base/signals.py +++ b/src/pretix/base/signals.py @@ -22,7 +22,8 @@ class EventPluginSignal(django.dispatch.Signal): sender is required to be an instance of ``pretix.base.models.Event``. """ - assert isinstance(sender, Event) + if sender and not isinstance(sender, Event): + raise ValueError("Sender needs to be an event.") responses = [] if not self.receivers or self.sender_receivers_cache.get(sender) is NO_RECEIVERS: @@ -44,7 +45,7 @@ class EventPluginSignal(django.dispatch.Signal): searchpath, mod = searchpath.rsplit(".", 1) # Only fire receivers from active plugins and core modules - if (searchpath, mod) in settings.CORE_MODULES or (app and app.name in sender.get_plugins()): + if (searchpath, mod) in settings.CORE_MODULES or (sender and app and app.name in sender.get_plugins()): if not hasattr(app, 'compatibility_errors') or not app.compatibility_errors: response = receiver(signal=self, sender=sender, **named) responses.append((receiver, response))