From cd9f329939247d35b7c7e8c96dc6d1190e3ec455 Mon Sep 17 00:00:00 2001 From: Siddhant Bajaj Date: Tue, 18 Apr 2017 18:30:42 +0530 Subject: [PATCH] Fixed Confirmed Scheduled Events issue Fixed issues with scheduled_event_distribution method in conference.rb and added test in conference_spec.rb to confirm issue is fixed. Fixes #1302 --- app/models/conference.rb | 7 ++++--- spec/models/conference_spec.rb | 22 ++++++++++++++++++++++ 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/app/models/conference.rb b/app/models/conference.rb index aa73e5d4..f4d55d2e 100644 --- a/app/models/conference.rb +++ b/app/models/conference.rb @@ -311,9 +311,10 @@ class Conference < ActiveRecord::Base # ====Returns # * +hash+ -> hash def scheduled_event_distribution - confirmed_events = program.events.where(state: 'confirmed') - scheduled_value = { 'value' => confirmed_events.where.not(start_time: nil).count, 'color' => 'green' } - unscheduled_value = { 'value' => confirmed_events.where(start_time: nil).count, 'color' => 'red' } + confirmed_scheduled_events = program.events.confirmed.scheduled(program.selected_schedule.try(:id)) + confirmed_unscheduled_events = program.events.confirmed - confirmed_scheduled_events + scheduled_value = { 'value' => confirmed_scheduled_events.count, 'color' => 'green' } + unscheduled_value = { 'value' => confirmed_unscheduled_events.count, 'color' => 'red' } { 'Scheduled' => scheduled_value, 'Unscheduled' => unscheduled_value } end diff --git a/spec/models/conference_spec.rb b/spec/models/conference_spec.rb index edb719e5..47d64164 100755 --- a/spec/models/conference_spec.rb +++ b/spec/models/conference_spec.rb @@ -778,6 +778,28 @@ describe Conference do end end + describe '#scheduled_event_distribution' do + let(:conference) { create(:conference) } + let(:confirmed_unscheduled_event) { create(:event, program: conference.program, state: 'confirmed') } + let(:confirmed_scheduled_event) { create(:event_scheduled, program: conference.program) } + + it '#scheduled_event_distribution does calculate correct values with events' do + confirmed_unscheduled_event + confirmed_scheduled_event + result = {} + result['Scheduled'] = { 'value' => 1, 'color' => 'green' } + result['Unscheduled'] = { 'value' => 1, 'color' => 'red' } + expect(conference.scheduled_event_distribution).to eq(result) + end + + it '#scheduled_event_distribution does calculate correct values with no events' do + result = {} + result['Scheduled'] = { 'value' => 0, 'color' => 'green' } + result['Unscheduled'] = { 'value' => 0, 'color' => 'red' } + expect(conference.scheduled_event_distribution).to eq(result) + end + end + describe '#event_distribution' do before(:each) do