diff --git a/app/presenters/chapter_presenter.rb b/app/presenters/chapter_presenter.rb index 046c08485..72babd539 100644 --- a/app/presenters/chapter_presenter.rb +++ b/app/presenters/chapter_presenter.rb @@ -4,6 +4,8 @@ def upcoming_workshops end def organisers - @organisers ||= model.permissions.find_by(name: 'organiser').members + chapter = model.permissions.find_by(name: 'organiser') + + @organisers ||= chapter ? chapter.members : [] end end diff --git a/app/views/chapter/show.html.haml b/app/views/chapter/show.html.haml index a61fbd6fb..0516c8f62 100644 --- a/app/views/chapter/show.html.haml +++ b/app/views/chapter/show.html.haml @@ -21,21 +21,22 @@ - else = link_to t('members.sign_up'), new_member_path, class: 'btn btn-primary' -.container.py-4.py-lg-5 - .row - .col-md-8.col-sm-12 - - if @upcoming_workshops.any? - %h2.mb-4= t('homepage.events.upcoming') - - @upcoming_workshops.each do |date, workshops| - %h3.h5= date - = render workshops - - - if @latest_workshops.any? - .pt-4 - %h2.mb-4 Past Events - - @latest_workshops.each do |date, workshops| +- if @upcoming_workshops.any? || @latest_workshops.any? + .container.py-4.py-lg-5 + .row + .col-md-8.col-sm-12 + - if @upcoming_workshops.any? + %h2.mb-4= t('homepage.events.upcoming') + - @upcoming_workshops.each do |date, workshops| + %h3.h5= date = render workshops + - if @latest_workshops.any? + .pt-4 + %h2.mb-4 Past Events + - @latest_workshops.each do |date, workshops| + = render workshops + - if @recent_sponsors.any? .py-4.py-lg-5.bg-light .container @@ -45,7 +46,8 @@ = render partial: 'shared/sponsors', object: @recent_sponsors .container.py-4.py-lg-5 - = render partial: 'members/organisers_grid', locals: { members: @chapter.organisers.shuffle, show_info: false, title: t('chapters.team') } + - if @chapter.organisers.any? + = render partial: 'members/organisers_grid', locals: { members: @chapter.organisers.shuffle, show_info: false, title: t('chapters.team') } .mt-5 .alert.alert-primary.mb-0 diff --git a/spec/features/chapter_spec.rb b/spec/features/chapter_spec.rb index 8a8e2d29b..a22dd9cac 100644 --- a/spec/features/chapter_spec.rb +++ b/spec/features/chapter_spec.rb @@ -24,6 +24,16 @@ expect(page).to have_content('Page not found') end + it 'renders chapter without organisers' do + chapter = Fabricate(:chapter_without_organisers, name: "Empty Chapter") + expect(chapter.organisers.size).to eq 0 + + visit chapter_path(chapter.slug) + + expect(page).to have_content "Empty Chapter" + expect(page).not_to have_content "Team" + end + it 'renders any upcoming workshops for the chapter' do chapter = Fabricate(:chapter) workshops = 2.times.map do |n|