fix complete/incomplete assignment editing bug

fixes CNVS-1501

Test plan:
  * make a complete/incomplete assignment
  * mark some students complete, some students incomplete
  * change the number of points possible on the assignment
  * the complete/incomplete status of each submission should be retained

Change-Id: Ice61d884936c908de977e1f2abdf99cbb26210ae
Reviewed-on: https://gerrit.instructure.com/36377
Reviewed-by: Liz Abinante <labinante@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Anna Koalenz <akoalenz@instructure.com>
Product-Review: Cameron Matheson <cameron@instructure.com>
This commit is contained in:
Cameron Matheson 2014-06-12 16:42:29 -06:00
parent 94ff219c98
commit 27c731a6b9
2 changed files with 14 additions and 4 deletions

View File

@ -636,15 +636,13 @@ class Assignment < ActiveRecord::Base
when "percent"
result = "#{score_to_grade_percent(score)}%"
when "pass_fail"
if self.points_possible.to_f > 0.0
passed = score.to_f == self.points_possible.to_f
if points_possible && points_possible > 0
passed = score > 0
elsif given_grade
# the score for a zero-point pass/fail assignment could be considered
# either pass *or* fail, so look at what the current given grade is
# instead
passed = ["complete", "pass"].include?(given_grade)
else
passed = score.to_f > 0.0
end
result = passed ? "complete" : "incomplete"
when "letter_grade", "gpa_scale"

View File

@ -2450,6 +2450,18 @@ describe Assignment do
@assignment.save!
s.reload.version_number.should == 2
end
it "works for pass/fail assignments" do
student1, student2 = n_students_in_course(2)
a = @course.assignments.create! grading_type: "pass_fail", points_possible: 5
sub1 = a.grade_student(student1, grade: "complete").first
sub2 = a.grade_student(student2, grade: "incomplete").first
a.update_attribute :points_possible, 10
sub1.reload.grade.should == "complete"
sub2.reload.grade.should == "incomplete"
end
end
describe '#graded_count' do