From 957b01d2fa1ae12d2f215f4672a0f8c7392c38b7 Mon Sep 17 00:00:00 2001 From: Felix Rindt Date: Thu, 2 Feb 2023 17:18:00 +0100 Subject: [PATCH 1/2] change event_action_signal interface --- ephios/core/signals.py | 5 +++-- ephios/core/templatetags/event_extras.py | 5 ++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ephios/core/signals.py b/ephios/core/signals.py index 0941044f8..9950ed834 100644 --- a/ephios/core/signals.py +++ b/ephios/core/signals.py @@ -118,8 +118,9 @@ register_event_action = PluginSignal() """ This signal is sent out to get a list of actions that a user can perform on a single event. The actions are -displayed in the dropdown menu on the event detail view. Each action is represented by a dict with the keys -``url``, ``label`` and ``icon``. The given url will be called with a ``pk`` parameter containing the id of the event. +displayed in the dropdown menu on the event detail view. +Receivers receive a ``event`` keyword argument. +Each action is represented by a dict with the keys ``url``, ``label`` and ``icon``. """ homepage_info = PluginSignal() diff --git a/ephios/core/templatetags/event_extras.py b/ephios/core/templatetags/event_extras.py index 770539472..1fb5d7a68 100644 --- a/ephios/core/templatetags/event_extras.py +++ b/ephios/core/templatetags/event_extras.py @@ -3,7 +3,6 @@ from functools import reduce from django import template -from django.urls import reverse from django.utils import timezone from django.utils.html import format_html from django.utils.safestring import mark_safe @@ -165,10 +164,10 @@ def homepage_plugin_content(request): @register.simple_tag(name="event_plugin_actions") def event_plugin_actions(event): html = "" - for _, actions in register_event_action.send(None): + for _, actions in register_event_action.send(None, event=event): html += "".join( [ - f"
  • {action['label']}
  • " + f"
  • {action['label']}
  • " for action in actions ] ) From 76b380dfcdac5637f21b81b3325ba2d23a335886 Mon Sep 17 00:00:00 2001 From: Felix Rindt Date: Thu, 2 Feb 2023 17:21:03 +0100 Subject: [PATCH 2/2] rename and add request kwarg --- ephios/core/signals.py | 4 ++-- ephios/core/templates/core/event_detail.html | 2 +- ephios/core/templatetags/event_extras.py | 8 +++++--- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/ephios/core/signals.py b/ephios/core/signals.py index 9950ed834..bfe333cbd 100644 --- a/ephios/core/signals.py +++ b/ephios/core/signals.py @@ -115,11 +115,11 @@ will contain a list of event ids on which the action should be performed. """ -register_event_action = PluginSignal() +event_action = PluginSignal() """ This signal is sent out to get a list of actions that a user can perform on a single event. The actions are displayed in the dropdown menu on the event detail view. -Receivers receive a ``event`` keyword argument. +Receivers receive a ``event`` and ``request`` keyword argument. Each action is represented by a dict with the keys ``url``, ``label`` and ``icon``. """ diff --git a/ephios/core/templates/core/event_detail.html b/ephios/core/templates/core/event_detail.html index b98bd4871..9a4e6c621 100644 --- a/ephios/core/templates/core/event_detail.html +++ b/ephios/core/templates/core/event_detail.html @@ -85,7 +85,7 @@

    {% trans "View edit history" %} {% endif %} - {% event_plugin_actions event %} + {% event_plugin_actions view %} {% endif %} diff --git a/ephios/core/templatetags/event_extras.py b/ephios/core/templatetags/event_extras.py index 1fb5d7a68..2c5fdd986 100644 --- a/ephios/core/templatetags/event_extras.py +++ b/ephios/core/templatetags/event_extras.py @@ -9,9 +9,9 @@ from ephios.core.models import AbstractParticipation, EventType, UserProfile from ephios.core.signals import ( + event_action, event_info, homepage_info, - register_event_action, register_event_bulk_action, shift_info, ) @@ -162,9 +162,11 @@ def homepage_plugin_content(request): @register.simple_tag(name="event_plugin_actions") -def event_plugin_actions(event): +def event_plugin_actions(event_detail_view): html = "" - for _, actions in register_event_action.send(None, event=event): + for _, actions in event_action.send( + None, event=event_detail_view.object, request=event_detail_view.request + ): html += "".join( [ f"
  • {action['label']}
  • "