Commit d1ee43f12952334c5f59960ae8bc7844ddb45696

Authored by Luke Baker
1 parent 706e8359

update CSV output of non-votes to no longer fail

CSV report of non-votes wasn't updated after the Appearance model was
changed from having separate Skip and Vote objects to using Answerable
as a polymorphic relationship.  This fixes that over-sight.
app/models/question.rb
@@ -560,21 +560,21 @@ class Question < ActiveRecord::Base @@ -560,21 +560,21 @@ class Question < ActiveRecord::Base
560 end 560 end
561 when 'non_votes' 561 when 'non_votes'
562 562
563 - self.appearances.find_each(:include => [:skip, :vote, :voter]) do |a| 563 + self.appearances.find_each(:include => [:answerable, :voter]) do |a|
564 # we only display skips and orphaned appearances in this csv file 564 # we only display skips and orphaned appearances in this csv file
565 - next unless a.vote.nil? 565 + next if a.answerable.class == Vote
566 566
567 - #If no skip and no vote, this is an orphaned appearance  
568 - if a.skip.nil?  
569 - prompt = a.prompt  
570 - csv << [ "Orphaned Appearance", a.id, a.voter_id, a.question_id, a.prompt.left_choice.id, a.prompt.left_choice.data.strip, a.prompt.right_choice.id, a.prompt.right_choice.data.strip, a.prompt_id, 'N/A', 'N/A', a.created_at, a.updated_at, 'N/A', '', a.voter.identifier]  
571 -  
572 - else 567 + if a.answerable.class == Skip
573 # If this appearance belongs to a skip, show information on the skip instead 568 # If this appearance belongs to a skip, show information on the skip instead
574 - s = a.skip 569 + s = a.answerable
575 time_viewed = s.time_viewed.nil? ? "NA": s.time_viewed.to_f / 1000.0 570 time_viewed = s.time_viewed.nil? ? "NA": s.time_viewed.to_f / 1000.0
576 prompt = s.prompt 571 prompt = s.prompt
577 csv << [ "Skip", s.id, s.skipper_id, s.question_id, s.prompt.left_choice.id, s.prompt.left_choice.data.strip, s.prompt.right_choice.id, s.prompt.right_choice.data.strip, s.prompt_id, s.appearance_id, s.skip_reason, s.created_at, s.updated_at, time_viewed , s.missing_response_time_exp, s.skipper.identifier] 572 csv << [ "Skip", s.id, s.skipper_id, s.question_id, s.prompt.left_choice.id, s.prompt.left_choice.data.strip, s.prompt.right_choice.id, s.prompt.right_choice.data.strip, s.prompt_id, s.appearance_id, s.skip_reason, s.created_at, s.updated_at, time_viewed , s.missing_response_time_exp, s.skipper.identifier]
  573 +
  574 + else
  575 + # If no skip and no vote, this is an orphaned appearance
  576 + prompt = a.prompt
  577 + csv << [ "Orphaned Appearance", a.id, a.voter_id, a.question_id, a.prompt.left_choice.id, a.prompt.left_choice.data.strip, a.prompt.right_choice.id, a.prompt.right_choice.data.strip, a.prompt_id, 'N/A', 'N/A', a.created_at, a.updated_at, 'N/A', '', a.voter.identifier]
578 end 578 end
579 end 579 end
580 end 580 end
spec/models/question_spec.rb
@@ -384,6 +384,8 @@ describe Question do @@ -384,6 +384,8 @@ describe Question do
384 rows.first.should include("Record ID") 384 rows.first.should include("Record ID")
385 rows.first.should include("Record Type") 385 rows.first.should include("Record Type")
386 rows.first.should_not include("Idea ID") 386 rows.first.should_not include("Idea ID")
  387 + # ensure we have more than just the header row
  388 + rows.length.should be > 1
387 File.delete(filename).should_not be_nil 389 File.delete(filename).should_not be_nil
388 390
389 391