mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-13 19:54:02 +00:00
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|
|
||||
# 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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue