Merge pull request #189 from ChrisBr/bugfix_item_function
Bugfix conference#calculate_items_per_week
This commit is contained in:
commit
852e2d4243
3 changed files with 29 additions and 9 deletions
|
|
@ -21,11 +21,11 @@ class Admin::ConferenceController < ApplicationController
|
||||||
@conferences.each do |c|
|
@conferences.each do |c|
|
||||||
# Event submissions over time chart
|
# Event submissions over time chart
|
||||||
@submissions[c.short_title] = c.get_submissions_per_week
|
@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
|
# Conference registrations over time chart
|
||||||
@registrations[c.short_title] = c.get_registrations_per_week
|
@registrations[c.short_title] = c.get_registrations_per_week
|
||||||
@registration_weeks.push(c.registration_weeks)
|
@registration_weeks.push(@registrations[c.short_title].length)
|
||||||
end
|
end
|
||||||
|
|
||||||
@cfp_weeks = @cfp_weeks.max
|
@cfp_weeks = @cfp_weeks.max
|
||||||
|
|
|
||||||
|
|
@ -270,14 +270,16 @@ class Conference < ActiveRecord::Base
|
||||||
def calculate_items_per_week(start_week, weeks, items)
|
def calculate_items_per_week(start_week, weeks, items)
|
||||||
sum = 0
|
sum = 0
|
||||||
result = []
|
result = []
|
||||||
last_key = start_week + 1
|
last_key = start_week - 1
|
||||||
|
|
||||||
items.each_with_index do |(key, value), index|
|
if !items.empty? && start_week > items.keys[0].to_i
|
||||||
# Padding left
|
start_week = items.keys[0].to_i
|
||||||
if index == 0
|
weeks += start_week - items.keys[0].to_i + 1
|
||||||
result = Array.new(key.to_i - start_week, 0)
|
end
|
||||||
# Padding middle
|
|
||||||
elsif last_key < (key.to_i - 1)
|
items.each do |key, value|
|
||||||
|
# Padding
|
||||||
|
if last_key < (key.to_i - 1)
|
||||||
result += Array.new(key.to_i - last_key - 1, sum)
|
result += Array.new(key.to_i - last_key - 1, sum)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -70,6 +70,24 @@ describe Conference do
|
||||||
|
|
||||||
describe '#get_submissions_per_week' 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
|
it 'pads with zeros if there are no submissions' do
|
||||||
cfp = create(:call_for_papers)
|
cfp = create(:call_for_papers)
|
||||||
cfp.start_date = Date.new(2014, 05, 26)
|
cfp.start_date = Date.new(2014, 05, 26)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue