From 42acd38fc7409d5a40a46c684092bef2c5cbaeb8 Mon Sep 17 00:00:00 2001 From: Alexandru Emil Lupu Date: Tue, 30 Jan 2024 15:08:46 +0200 Subject: [PATCH] Do not display dates for upcoming moderated meetings (#12295) * Do not display dates for upcoming moderated meetings * Apply review recommendations --- .../lib/decidim/meetings/engine.rb | 2 +- ...coming_meeting_for_card_view_hooks_spec.rb | 60 +++++++++++++++++++ 2 files changed, 61 insertions(+), 1 deletion(-) diff --git a/decidim-meetings/lib/decidim/meetings/engine.rb b/decidim-meetings/lib/decidim/meetings/engine.rb index cbf4d258e0b2..866b339ffa22 100644 --- a/decidim-meetings/lib/decidim/meetings/engine.rb +++ b/decidim-meetings/lib/decidim/meetings/engine.rb @@ -57,7 +57,7 @@ class Engine < ::Rails::Engine # meeting for the given participatory space. Decidim.view_hooks.register(:upcoming_meeting_for_card, priority: Decidim::ViewHooks::LOW_PRIORITY) do |view_context| published_components = Decidim::Component.where(participatory_space: view_context.current_participatory_space).published - upcoming_meeting = Decidim::Meetings::Meeting.where(component: published_components).published.upcoming.order(:start_time, :end_time).first + upcoming_meeting = Decidim::Meetings::Meeting.where(component: published_components).not_hidden.except_withdrawn.published.upcoming.order(:start_time, :end_time).first next unless upcoming_meeting diff --git a/decidim-meetings/spec/system/upcoming_meeting_for_card_view_hooks_spec.rb b/decidim-meetings/spec/system/upcoming_meeting_for_card_view_hooks_spec.rb index 820c32929224..1701bb215ad3 100644 --- a/decidim-meetings/spec/system/upcoming_meeting_for_card_view_hooks_spec.rb +++ b/decidim-meetings/spec/system/upcoming_meeting_for_card_view_hooks_spec.rb @@ -45,5 +45,65 @@ end end end + + context "when the meeting is withdrawn" do + let!(:upcoming_meeting1) do + create(:meeting, :published, :withdrawn, :upcoming, start_time: start_time - 1.year, end_time: start_time + 1.hour, component: component) + end + + it "hides upcoming moderated meetings" do + visit decidim_assemblies.assemblies_path + + within "#assembly_#{assembly.id}" do + expect(page).to have_selector(".card__icondata") + + within ".card__icondata" do + expect(page).to have_text("31 MAY 2100") + expect(page).to have_text("12:34") + expect(page).to have_text("13:34") + end + end + end + end + + context "when the meeting is not published" do + let!(:upcoming_meeting1) do + create(:meeting, :upcoming, start_time: start_time - 1.year, end_time: start_time + 1.hour, component: component) + end + + it "hides upcoming moderated meetings" do + visit decidim_assemblies.assemblies_path + + within "#assembly_#{assembly.id}" do + expect(page).to have_selector(".card__icondata") + + within ".card__icondata" do + expect(page).to have_text("31 MAY 2100") + expect(page).to have_text("12:34") + expect(page).to have_text("13:34") + end + end + end + end + + context "when the meeting is moderated" do + let!(:upcoming_meeting1) do + create(:meeting, :published, :moderated, :upcoming, start_time: start_time - 1.year, end_time: start_time + 1.hour, component: component) + end + + it "hides upcoming moderated meetings" do + visit decidim_assemblies.assemblies_path + + within "#assembly_#{assembly.id}" do + expect(page).to have_selector(".card__icondata") + + within ".card__icondata" do + expect(page).to have_text("31 MAY 2100") + expect(page).to have_text("12:34") + expect(page).to have_text("13:34") + end + end + end + end end end