mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-17 05:34:04 +00:00
Merge pull request #267 from ChrisBr/bugfix_top_submitter
[Bugfix] conference top submitter now ordered by submissions
This commit is contained in:
commit
678fe38a25
2 changed files with 38 additions and 5 deletions
|
|
@ -304,7 +304,7 @@ class Conference < ActiveRecord::Base
|
|||
# * +hash+ -> person: submissions
|
||||
def self.get_top_submitter(limit = 5)
|
||||
submitter = EventPerson.where('event_role = ?', 'submitter').limit(limit).group(:person_id)
|
||||
counter = submitter.count
|
||||
counter = submitter.order('count_all desc').count
|
||||
calculate_person_submission_hash(submitter, counter)
|
||||
end
|
||||
|
||||
|
|
@ -318,7 +318,7 @@ class Conference < ActiveRecord::Base
|
|||
where('event_role = ? and conference_id = ?', 'submitter', id).
|
||||
limit(limit).group(:person_id)
|
||||
|
||||
counter = submitter.count
|
||||
counter = submitter.order('count_all desc').count
|
||||
Conference.calculate_person_submission_hash(submitter, counter)
|
||||
end
|
||||
|
||||
|
|
@ -656,9 +656,12 @@ class Conference < ActiveRecord::Base
|
|||
# ====Returns
|
||||
# * +hash+ -> person: submissions
|
||||
def self.calculate_person_submission_hash(submitter, counter)
|
||||
result = {}
|
||||
submitter.each do |s|
|
||||
result[s.person] = counter[s.person_id]
|
||||
result = ActiveSupport::OrderedHash.new
|
||||
counter.each do |key, value|
|
||||
submitter = submitter.find_by_id(key)
|
||||
if submitter
|
||||
result[submitter] = value
|
||||
end
|
||||
end
|
||||
result
|
||||
end
|
||||
|
|
|
|||
|
|
@ -6,6 +6,36 @@ describe Conference do
|
|||
|
||||
let(:subject) { create(:conference) }
|
||||
|
||||
# describe '#get_top_submitter' do
|
||||
# # It is necessary to use bang version of let to build roles before user
|
||||
# let!(:organizer_role) { create(:organizer_role) }
|
||||
# let!(:participant_role) { create(:participant_role) }
|
||||
# let!(:admin_role) { create(:admin_role) }
|
||||
#
|
||||
# it 'calculates correct hash with top submitters' do
|
||||
# event = create(:event, conference: subject)
|
||||
# result = {
|
||||
# event.submitter => 1
|
||||
# }
|
||||
# expect(subject.get_top_submitter).to eq(result)
|
||||
# end
|
||||
#
|
||||
# it 'returns the submitter ordered by submissions' do
|
||||
# e1 = create(:event, conference: subject)
|
||||
#
|
||||
# e2 = create(:event, conference: subject)
|
||||
# e3 = create(:event, conference: subject)
|
||||
# e4 = create(:event, conference: subject)
|
||||
#
|
||||
# e3.event_people = [create(:event_person, person: e2.submitter, event_role: 'submitter')]
|
||||
# e4.event_people = [create(:event_person, person: e2.submitter, event_role: 'submitter')]
|
||||
#
|
||||
# expect(subject.get_top_submitter.values).to eq([3, 1])
|
||||
# expect(subject.get_top_submitter.keys).to eq([e2.submitter, e1.submitter])
|
||||
# end
|
||||
#
|
||||
# end
|
||||
|
||||
describe 'program hours' do
|
||||
before(:each) do
|
||||
@long = create(:event_type, length: 100)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue