From fc73916e054095b8c15667a3e2f7bb7050401b77 Mon Sep 17 00:00:00 2001 From: Bridger Maxwell Date: Fri, 28 Sep 2012 23:14:55 -0400 Subject: [PATCH] Removed django.conf.settings dependency from graders. --- common/lib/xmodule/xmodule/graders.py | 17 +++++++---------- lms/djangoapps/courseware/grades.py | 2 +- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/common/lib/xmodule/xmodule/graders.py b/common/lib/xmodule/xmodule/graders.py index 291be370d9..132dd81264 100644 --- a/common/lib/xmodule/xmodule/graders.py +++ b/common/lib/xmodule/xmodule/graders.py @@ -6,8 +6,6 @@ import sys from collections import namedtuple -from django.conf import settings - log = logging.getLogger("mitx.courseware") # This is a tuple for holding scores, either from problems or sections. @@ -187,7 +185,7 @@ class CourseGrader(object): __metaclass__ = abc.ABCMeta @abc.abstractmethod - def grade(self, grade_sheet): + def grade(self, grade_sheet, generate_random_scores=False): raise NotImplementedError @@ -207,13 +205,13 @@ class WeightedSubsectionsGrader(CourseGrader): def __init__(self, sections): self.sections = sections - def grade(self, grade_sheet): + def grade(self, grade_sheet, generate_random_scores=False): total_percent = 0.0 section_breakdown = [] grade_breakdown = [] for subgrader, category, weight in self.sections: - subgrade_result = subgrader.grade(grade_sheet) + subgrade_result = subgrader.grade(grade_sheet, generate_random_scores) weightedPercent = subgrade_result['percent'] * weight section_detail = "{0} = {1:.1%} of a possible {2:.0%}".format(category, weightedPercent, weight) @@ -240,7 +238,7 @@ class SingleSectionGrader(CourseGrader): self.short_label = short_label or name self.category = category or name - def grade(self, grade_sheet): + def grade(self, grade_sheet, generate_random_scores=False): foundScore = None if self.type in grade_sheet: for score in grade_sheet[self.type]: @@ -248,7 +246,7 @@ class SingleSectionGrader(CourseGrader): foundScore = score break - if settings.GENERATE_PROFILE_SCORES: # for debugging! + if generate_random_scores: # for debugging! earned = random.randint(2,15) possible = random.randint(earned, 15) percent = float(earned) / possible @@ -306,7 +304,7 @@ class AssignmentFormatGrader(CourseGrader): self.short_label = short_label or self.type self.show_only_average = show_only_average - def grade(self, grade_sheet): + def grade(self, grade_sheet, generate_random_scores=False): def totalWithDrops(breakdown, drop_count): #create an array of tuples with (index, mark), sorted by mark['percent'] descending sorted_breakdown = sorted(enumerate(breakdown), key=lambda x: -x[1]['percent']) @@ -328,8 +326,7 @@ class AssignmentFormatGrader(CourseGrader): scores = grade_sheet.get(self.type, []) breakdown = [] for i in range(max(self.min_count, len(scores))): - print "scores" , scores - if settings.GENERATE_PROFILE_SCORES: # for debugging! + if generate_random_scores: # for debugging! earned = random.randint(2,15) possible = random.randint(earned, 15) percentage = float(earned) / possible diff --git a/lms/djangoapps/courseware/grades.py b/lms/djangoapps/courseware/grades.py index 20eb83dafc..df272d8bbf 100644 --- a/lms/djangoapps/courseware/grades.py +++ b/lms/djangoapps/courseware/grades.py @@ -201,7 +201,7 @@ def grade(student, request, course, student_module_cache=None, keep_raw_scores=F totaled_scores[section_format] = format_scores - grade_summary = course.grader.grade(totaled_scores) + grade_summary = course.grader.grade(totaled_scores, generate_random_scores=settings.GENERATE_PROFILE_SCORES) # We round the grade here, to make sure that the grade is an whole percentage and # doesn't get displayed differently than it gets grades