From 59804f1bb9e735a6f9f221af87eeb06d750553b1 Mon Sep 17 00:00:00 2001 From: barbara oliveira Date: Wed, 24 Apr 2024 11:57:54 +0200 Subject: [PATCH 1/6] fix: add has_published_registration_types? method to conference model --- decidim-conferences/app/models/decidim/conference.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/decidim-conferences/app/models/decidim/conference.rb b/decidim-conferences/app/models/decidim/conference.rb index 1133c5c18dc78..936ceefa7262a 100644 --- a/decidim-conferences/app/models/decidim/conference.rb +++ b/decidim-conferences/app/models/decidim/conference.rb @@ -113,6 +113,12 @@ def has_available_slots? available_slots > conference_registrations.count end + def has_published_registration_types? + return false if registration_types.empty? + + registration_types.any?(&:published_at?) + end + def remaining_slots available_slots - conference_registrations.count end From 42befd3a389855f65ec65d2bcf12357289348832 Mon Sep 17 00:00:00 2001 From: barbara oliveira Date: Wed, 24 Apr 2024 16:52:48 +0200 Subject: [PATCH 2/6] fix: add rspec for has_published_registration_types? method --- .../spec/models/decidim/conference_spec.rb | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/decidim-conferences/spec/models/decidim/conference_spec.rb b/decidim-conferences/spec/models/decidim/conference_spec.rb index a72a0c06678c3..53b3cd2cc9d39 100644 --- a/decidim-conferences/spec/models/decidim/conference_spec.rb +++ b/decidim-conferences/spec/models/decidim/conference_spec.rb @@ -28,5 +28,33 @@ module Decidim it { is_expected.to be_valid } end + + describe "#has_published_registration_types?" do + context "when conference has no registration type" do + it "returns false" do + expect(conference.has_published_registration_types?).to be_falsey + end + end + + context "when conference has registration types" do + let!(:registration_types) do + create_list(:registration_type, 5, conference:) + end + + it "return true" do + expect(conference.has_published_registration_types?).to be_truthy + end + + context "and the registration types are unpublished" do + let!(:registration_types) do + create_list(:registration_type, 5, :unpublished, conference:) + end + + it "returns false" do + expect(conference.has_published_registration_types?).to be_falsey + end + end + end + end end end From 7d42432eafff6478d242867ad9578a616cf74685 Mon Sep 17 00:00:00 2001 From: barbara oliveira Date: Wed, 24 Apr 2024 16:56:00 +0200 Subject: [PATCH 3/6] lint: fix with rubocop --- decidim-conferences/spec/models/decidim/conference_spec.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/decidim-conferences/spec/models/decidim/conference_spec.rb b/decidim-conferences/spec/models/decidim/conference_spec.rb index 53b3cd2cc9d39..11772bd62f5c1 100644 --- a/decidim-conferences/spec/models/decidim/conference_spec.rb +++ b/decidim-conferences/spec/models/decidim/conference_spec.rb @@ -32,7 +32,7 @@ module Decidim describe "#has_published_registration_types?" do context "when conference has no registration type" do it "returns false" do - expect(conference.has_published_registration_types?).to be_falsey + expect(conference).not_to have_published_registration_types end end @@ -42,7 +42,7 @@ module Decidim end it "return true" do - expect(conference.has_published_registration_types?).to be_truthy + expect(conference).to have_published_registration_types end context "and the registration types are unpublished" do @@ -51,7 +51,7 @@ module Decidim end it "returns false" do - expect(conference.has_published_registration_types?).to be_falsey + expect(conference).not_to have_published_registration_types end end end From 7d34ea61a7f021f0654d1dfa41223f42c4a88add Mon Sep 17 00:00:00 2001 From: barbara oliveira Date: Wed, 24 Apr 2024 17:53:41 +0200 Subject: [PATCH 4/6] refacto --- .../spec/models/decidim/conference_spec.rb | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/decidim-conferences/spec/models/decidim/conference_spec.rb b/decidim-conferences/spec/models/decidim/conference_spec.rb index 11772bd62f5c1..f3797a4748b46 100644 --- a/decidim-conferences/spec/models/decidim/conference_spec.rb +++ b/decidim-conferences/spec/models/decidim/conference_spec.rb @@ -30,10 +30,10 @@ module Decidim end describe "#has_published_registration_types?" do + subject { conference.has_published_registration_types? } + context "when conference has no registration type" do - it "returns false" do - expect(conference).not_to have_published_registration_types - end + it { is_expected.to be_falsey } end context "when conference has registration types" do @@ -41,18 +41,14 @@ module Decidim create_list(:registration_type, 5, conference:) end - it "return true" do - expect(conference).to have_published_registration_types - end + it { is_expected.to be_truthy } context "and the registration types are unpublished" do let!(:registration_types) do create_list(:registration_type, 5, :unpublished, conference:) end - it "returns false" do - expect(conference).not_to have_published_registration_types - end + it { is_expected.to be_falsey } end end end From 6667e4dffdcd2effddf2c68a7cbeb4d6fff4383c Mon Sep 17 00:00:00 2001 From: stephanie rousset Date: Thu, 25 Apr 2024 10:12:51 +0200 Subject: [PATCH 5/6] fix: update views and system tests after change request --- .../conferences/_conference_hero.html.erb | 2 +- .../conferences/conferences/show.html.erb | 6 ++--- .../system/conference_registrations_spec.rb | 22 ++++++++++++++++++- 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/decidim-conferences/app/views/decidim/conferences/conferences/_conference_hero.html.erb b/decidim-conferences/app/views/decidim/conferences/conferences/_conference_hero.html.erb index b2e617f920aeb..a974d508e2ee4 100644 --- a/decidim-conferences/app/views/decidim/conferences/conferences/_conference_hero.html.erb +++ b/decidim-conferences/app/views/decidim/conferences/conferences/_conference_hero.html.erb @@ -19,7 +19,7 @@ <% if current_participatory_space.registrations_enabled? %> <% if current_participatory_space.has_registration_for?(current_user) %> <%= link_to t("layouts.decidim.conference_hero.manage_registration"), decidim_conferences.conference_registration_types_path(current_participatory_space), class: "button button__lg button__primary" %> - <% elsif current_participatory_space.registration_types.present? %> + <% elsif current_participatory_space.has_published_registration_types? %> <%= link_to t("layouts.decidim.conference_hero.register"), decidim_conferences.conference_registration_types_path(current_participatory_space), class: "button button__lg button__secondary" %> <% end %> <% end %> diff --git a/decidim-conferences/app/views/decidim/conferences/conferences/show.html.erb b/decidim-conferences/app/views/decidim/conferences/conferences/show.html.erb index 9eeb76bdc6e17..b84671c8a8e33 100644 --- a/decidim-conferences/app/views/decidim/conferences/conferences/show.html.erb +++ b/decidim-conferences/app/views/decidim/conferences/conferences/show.html.erb @@ -58,7 +58,7 @@ edit_link( <% if current_participatory_space.registrations_enabled? %> <% if current_participatory_space.has_registration_for?(current_user) %> <%= link_to t("decidim.conferences.conferences.show.manage_registration"), decidim_conferences.conference_registration_types_path(current_participatory_space), class: "button button__lg button__primary" %> - <% elsif current_participatory_space.registration_types.present? %> + <% elsif current_participatory_space.has_published_registration_types? %> <%= link_to t("decidim.conferences.conferences.show.register"), decidim_conferences.conference_registration_types_path(current_participatory_space), class: "button button__lg button__secondary" %> <% end %> <% end %> @@ -85,7 +85,7 @@ edit_link( <% if current_participatory_space.registrations_enabled? %>
- <% if current_participatory_space.registration_types.present? %> + <% if current_participatory_space.has_published_registration_types? %>

<%= t("decidim.conferences.conferences.show.register") %>

<% end %> <% if current_user.present? %> @@ -98,7 +98,7 @@ edit_link(
<% if current_participatory_space.has_registration_for?(current_user) %> <%= link_to t("decidim.conferences.conferences.show.manage_registration"), decidim_conferences.conference_registration_types_path(current_participatory_space), class: "button button__lg button__primary" %> - <% elsif current_participatory_space.registration_types.present? %> + <% elsif current_participatory_space.has_published_registration_types? %> <%= link_to t("decidim.conferences.conferences.show.register"), decidim_conferences.conference_registration_types_path(current_participatory_space), class: "button button__lg button__secondary" %> <% end %>
diff --git a/decidim-conferences/spec/system/conference_registrations_spec.rb b/decidim-conferences/spec/system/conference_registrations_spec.rb index 486776ef27b48..e9010d0802bfb 100644 --- a/decidim-conferences/spec/system/conference_registrations_spec.rb +++ b/decidim-conferences/spec/system/conference_registrations_spec.rb @@ -128,17 +128,34 @@ def visit_conference_registration_type end end - context "and there is registrations types" do + context "and there is published registrations types" do it "allows to register" do visit_conference within ".conference__hero" do expect(page).to have_content "Register" + end + within ".conference__content-block" do + expect(page).to have_content "Register" click_on "Register" end expect(page).to have_content "CHOOSE YOUR REGISTRATION OPTION:" end end + context "and there is unpublished registrations types" do + let(:registration_types) { :unpublished } + + it "does not show register button" do + visit_conference + within ".conference__hero" do + expect(page).to have_no_content "Register" + end + within ".conference__content-block" do + expect(page).to have_no_content "Register" + end + end + end + context "and there is no registrations types" do let(:registration_types) { [] } @@ -147,6 +164,9 @@ def visit_conference_registration_type within ".conference__hero" do expect(page).to have_no_content "Register" end + within ".conference__content-block" do + expect(page).to have_no_content "Register" + end end end end From 9f0fcaf26a0006e9dcb6a4916b7d6e6be3b24eac Mon Sep 17 00:00:00 2001 From: stephanie rousset Date: Thu, 25 Apr 2024 11:23:03 +0200 Subject: [PATCH 6/6] fix: update system spec after review --- .../spec/system/conference_registrations_spec.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/decidim-conferences/spec/system/conference_registrations_spec.rb b/decidim-conferences/spec/system/conference_registrations_spec.rb index e9010d0802bfb..bd99c8b3885c8 100644 --- a/decidim-conferences/spec/system/conference_registrations_spec.rb +++ b/decidim-conferences/spec/system/conference_registrations_spec.rb @@ -143,7 +143,9 @@ def visit_conference_registration_type end context "and there is unpublished registrations types" do - let(:registration_types) { :unpublished } + let!(:registration_types) do + create_list(:registration_type, 5, :unpublished, conference:) + end it "does not show register button" do visit_conference