Merge pull request #189 from ChrisBr/bugfix_item_function

Bugfix conference#calculate_items_per_week
This commit is contained in:
Christian Bruckmayer 2014-06-03 14:35:21 +02:00
commit 852e2d4243
3 changed files with 29 additions and 9 deletions

View file

@ -21,11 +21,11 @@ class Admin::ConferenceController < ApplicationController
@conferences.each do |c|
# Event submissions over time chart
@submissions[c.short_title] = c.get_submissions_per_week
@cfp_weeks.push(c.cfp_weeks)
@cfp_weeks.push(@submissions[c.short_title].length)
# Conference registrations over time chart
@registrations[c.short_title] = c.get_registrations_per_week
@registration_weeks.push(c.registration_weeks)
@registration_weeks.push(@registrations[c.short_title].length)
end
@cfp_weeks = @cfp_weeks.max

View file

@ -270,14 +270,16 @@ class Conference < ActiveRecord::Base
def calculate_items_per_week(start_week, weeks, items)
sum = 0
result = []
last_key = start_week + 1
last_key = start_week - 1
items.each_with_index do |(key, value), index|
# Padding left
if index == 0
result = Array.new(key.to_i - start_week, 0)
# Padding middle
elsif last_key < (key.to_i - 1)
if !items.empty? && start_week > items.keys[0].to_i
start_week = items.keys[0].to_i
weeks += start_week - items.keys[0].to_i + 1
end
items.each do |key, value|
# Padding
if last_key < (key.to_i - 1)
result += Array.new(key.to_i - last_key - 1, sum)
end

View file

@ -70,6 +70,24 @@ describe Conference do
describe '#get_submissions_per_week' do
it 'does calculate correct if cfp start date is altered' do
cfp = create(:call_for_papers)
cfp.start_date = Date.new(2014, 05, 26)
cfp.end_date = Date.new(2014, 05, 26) + 21
subject.call_for_papers = cfp
subject.events += [create(:event, created_at: Date.new(2014, 05, 26) - 7)]
expect(subject.get_submissions_per_week).to eq([1, 1, 1, 1, 1])
end
it 'does calculate correct if cfp end date is altered' do
cfp = create(:call_for_papers)
cfp.start_date = Date.new(2014, 05, 26)
cfp.end_date = Date.new(2014, 05, 26) + 21
subject.call_for_papers = cfp
subject.events += [create(:event, created_at: Date.new(2014, 05, 26) + 28)]
expect(subject.get_submissions_per_week).to eq([0, 0, 0, 0, 1])
end
it 'pads with zeros if there are no submissions' do
cfp = create(:call_for_papers)
cfp.start_date = Date.new(2014, 05, 26)