From c50cf2520c9bbeeb44f4caedbd6cd570171ac0fb Mon Sep 17 00:00:00 2001 From: Morgan Roderick Date: Wed, 27 Aug 2025 15:33:38 +0200 Subject: [PATCH 1/2] perf: memoize member organiser status This is very unlikely to change during one request, so we can memoise it and gain some speed --- app/presenters/member_presenter.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/presenters/member_presenter.rb b/app/presenters/member_presenter.rb index 388415202..295acbe77 100644 --- a/app/presenters/member_presenter.rb +++ b/app/presenters/member_presenter.rb @@ -1,6 +1,6 @@ class MemberPresenter < BasePresenter def organiser? - has_role? :organiser, :any + @organiser ||= has_role? :organiser, :any end def event_organiser?(event) From 1574621aac49c90e4c5fbeecad396fc9a889442f Mon Sep 17 00:00:00 2001 From: Morgan Roderick Date: Wed, 27 Aug 2025 15:34:49 +0200 Subject: [PATCH 2/2] perf: only render manage links for organisers This means we won't need to make the sql requests to figure out if the user is organiser or the event --- app/views/events/_event.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/events/_event.html.haml b/app/views/events/_event.html.haml index d36a297aa..bfd89a4e3 100644 --- a/app/views/events/_event.html.haml +++ b/app/views/events/_event.html.haml @@ -9,7 +9,7 @@ - if @user.attending?(event.__getobj__) %span.badge.bg-success.mb-3.mb-md-0 = link_to 'Attending', event.path, class: 'text-light text-decoration-none' - - if @user.event_organiser?(event) + - if @user.organiser? && @user.event_organiser?(event) %span.badge.bg-secondary.mb-3.mb-md-0 = link_to 'Manage', event.admin_path, class: 'text-light text-decoration-none' .order-md-1